您的位置:首页 > 运维架构

hadoop2.6伪分布+pig0.15+zookeeper3.4.6安装

2015-08-04 10:58 330 查看
一、hadoop2.6伪分布安装请参考:/article/1939417.html

二、pig0.15安装

Pig的介绍


Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-like语言叫Pig Latin,该语言的编译

器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算

提供了一个简易的操作和编程接口.

Pig的运行模式

1.本地模式  

Pig运行于本地模式,只涉及到单独的一台计算机。

2.MapReduce模式  

Pig运行于MapReduce模式,需要能访问一个Hadoop集群,并且需要装上HDFS。

Pig的调用方式

Grunt shell方式:通过交互的方式,输入命令执行任务;

Pig script方式:通过script脚本的方式来运行任务;

嵌入式方式:嵌入java源代码中,通过java调用来运行任务。

Pig的安装

1)下载Pig前往http://mirror.bit.edu.cn/apache/pig/ 下载合适的版本,比如Pig 0.12.02)解压文件到

合适的目录tar –xzf pig-0.12.03)设置环境变量export PIG_INSTALL=/opt/pig-0.12.0export PATH=

$PATH:$PIG_INSTALL/bin4)验证执行以下命令,查看Pig是否可用:

pig –help

进入本地模式:pig –x local

进入MapReduce模式:pig –x mapreduce

三、zookeeper3.4.6安装

获取ZooKeeper安装包


下载地址:http://apache.dataguru.cn/zookeeper

选择一个稳定版本进行下载,我这里下载的是zookeeper-3.4.6版本。

ZooKeeper伪分布式集群安装

伪分布式集群:在一台Server中,启动多个ZooKeeper的实例。

上传并解压安装包解压到相应的目录,重命名

tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local/hadoop

mv zookeeper-3.4.6 zookeeper

创建实例配置文件

cd zookeeper/conf

cp zoo_sample.cfg zoo1.cfg

cp zoo_sample.cfg zoo2.cfg

cp zoo_sample.cfg zoo3.cfg

修改配置文件


实例1的配置:

vi zoo1.cfg

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/hadoop/zookeeper/d_1

clientPort=2181

dataLogDir=/usr/local/hadoop/zookeeper/logs_1

server.1=localhost:2887:3887

server.2=localhost:2888:3888

server.3=localhost:2889:3889

实例2的配置:

vi zoo2.cfg



tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/hadoop/zookeeper/d_2

clientPort=2182

dataLogDir=/usr/local/hadoop/zookeeper/logs_2

server.1=localhost:2887:3887

server.2=localhost:2888:3888

server.3=localhost:2889:3889

实例3的配置:

vi zoo3.cfg



tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/hadoop/zookeeper/d_3

clientPort=2183

dataLogDir=/usr/local/hadoop/zookeeper/logs_3

server.1=localhost:2887:3887

server.2=localhost:2888:3888

server.3=localhost:2889:3889

准备启动环境

mkdir/usr/local/hadoop/zookeeper/d_1

mkdir /usr/local/hadoop/zookeeper/d_2

mkdir /usr/local/hadoop/zookeeper/d_3



mkdir /usr/local/hadoop/zookeeper/logs_1

mkdir /usr/local/hadoop/zookeeper/logs_2

mkdir /usr/local/hadoop/zookeeper/logs_3



echo "1" > /usr/local/hadoop/zookeeper/d_1/myid

echo "2" > /usr/local/hadoop/zookeeper/d_2/myid

echo "3" > /usr/local/hadoop/zookeeper/d_3/myid

启动集群


bin/zkServer.sh start zoo1.cfg

bin/zkServer.sh start zoo2.cfg

bin/zkServer.sh start zoo3.cfg

查看是否启动成功

jps

#看到类似下面的进程就表示3个实例均启动成功

13419 QuorumPeerMain

13460 QuorumPeerMain

13561 Jps

13392 QuorumPeerMain

错误:Error contacting service. It is probably not running

原因和解决办法


1. 没有装nc

yum install nc 或者apt-get install nc,

或者下载netcat的包,本文也有连接,

安装步骤:

a. tar -zxvf netcat***.tar.gz

b. ./configure

c. make

d. make install

OK

2. 打开zkServer.sh,找到

STAT=`echo stat | nc localhost $(grep clientPort "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null|grep Mode`

这行,加上或去掉-q 1(数字1而非字母l) 即可。

3. /etc/hosts里面没有配置localhost

第二个问题一般的机器都没有问题,但是有一种情况没有配置,通过模板导入的虚拟机。

在/etc/hosts里增加下面一行

127.0.0.1 localhost SDN-VM1

运行结果:

JMX enabled by default

Using config: /opt/zookeeper-3.3.3/bin/../conf/zoo.cfg

Mode: follower

4、电脑重启

Java客户端测试

需要引入zookeeper-3.4.6.jar和slf4j-api-1.61.jar这两个jar包。

package com.cjw.demo;

import org.apache.zookeeper.CreateMode;

import org.apache.zookeeper.WatchedEvent;

import org.apache.zookeeper.Watcher;

import org.apache.zookeeper.ZooKeeper;

import org.apache.zookeeper.ZooDefs.Ids;



public class ZooKeeperClient {

public static void main(String[] args) throws Exception {

Watcher watcher = new Watcher() {

@Override

public void process(WatchedEvent event) {

System.out.println(event.toString());

}

};

ZooKeeper zk = new ZooKeeper("192.168.157.22:2181", 3000, watcher);

System.out.println("====创建节点");

zk.create("/cjw", "znode1".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

System.out.println("====查看节点是否安装成功");

System.out.println(new String(zk.getData("/cjw", false, null)));

System.out.println("====修改节点的数据");

zk.setData("/cjw", "cjw2015".getBytes(), -1);

System.out.println("====查看修改的节点是否成功");

System.out.println(new String(zk.getData("/cjw", false, null)));

System.out.println("====删除节点");

zk.delete("/cjw", -1);

System.out.println("====查看节点是否被删除");

System.out.println("节点状态:" + zk.exists("/cjw", false));

zk.close();

}

}

运行结果:

====创建节点

WatchedEvent state:SyncConnected type:None path:null

====查看节点是否安装成功

znode1

====修改节点的数据

====查看修改的节点是否成功

cjw2015

====删除节点

====查看节点是否被删除

节点状态:null配置文件说明

initLimit: follower连接并同步到leader的初始化连接时间,它是通过tickTime的倍数表示。当初始化连接时间超过设置的时间时,则连接失败。

syncLimit: follower和leader之间发送消息时请求和应答的时间长度,如果follower在设置的时间范围内不能和leader通信,那么该follower将被丢弃,它也是按tickTime的倍数进行配置的。

tickTime: 定义心跳的时间间隔,

注:zk的client和server之间也有和web开发类似的session的概念,而zk里最小的session过期时间就是tickTime的两倍

dataDir: 存储在内存中数据库快照功能。

clientPort: 监听客户端连接的端口号

dataLogDir: zk运行的相关日志写入目录,设定了配置,那么dataLog里日志的目录将无效,专门的日志存放

路径,对zk的性能和稳定性有好处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: