hadoop配置zookeeper,zookeeper用于管理hadoop集群的同步性

  hadoop配置zookeeper,zookeeper用于管理hadoop集群的同步性

  00-1010一、环境描述2.1安装JDK2.2添加主机映射关系2.3 SSH集群间无密码登录三、集群间无密码登录。hadoop集群安装配置3.1修改hadoop配置3.2启动Hadoop集群四、ZooKeeper集群安装配置4.1修改配置文件zoo.cfg4.2创建并编辑myid文件4.3启动ZooKeeper集群五、HBase集群安装配置5.1h base-env . sh 5.2h base-site . XML 5.3更改区域服务器5.4分发并同步安装包六。开始群集引用:

  00-1010集群环境至少需要3个节点(即3个服务器设备):1个主节点和2个从节点。这些节点通过局域网连接,可以相互ping通。这里有一个例子。按如下方式配置节点的IP分配:

  hosteipuser password master 192 . 168 . 59 . 133 Hadoop 123456 Slave 1192 . 168 . 59 . 134 Hadoop 123456 Slave 2192 . 168 . 59 . 135 Hadoop 123456三个节点都使用CentOS 6.5系统。为了便于维护,最好使用相同的用户名和集群环境配置项。

  注意:您可以通过编辑/etc/sysconfig/network文件来修改主机名。

  # #二。准备

  00-1010在三台机器上配置JDK环境,下载jdk-8u51-linux-x64.rpm文件并直接安装:

  $ rpm -ivh jdk-8u51-linux-x64.rpm修改配置文件vim /etc/profile:

  export Java _ home=/usr/Java/JDK 1 . 8 . 0 _ 51 export path=$ Java _ home/bin 3360 $ pathexportclass path=. 3360 $ Java _ home/lib/dt . jar 3360 $ Java _ home/lib/tools . jar然后重新加载配置文件即可生效。

  $ source /etc/profile

  00-1010分别在三个节点上添加主机映射关系:

  $ vim /etc/hosts添加的内容如下:

  从属方2

  

目录

CentOS默认安装了ssh。如果没有,需要先安装ssh。

 

  必须通过ssh无密码登录来使用集群环境。本机必须无密码登录,主从机必须能双向无密码登录。从机之间没有限制。

  2.3.1设置主无密码自助登录

  主要有三个步骤:生成公钥和私钥,将公钥导入认证文件,更改权限。

  $ ssh-keygen-t rsa-f ~/。ssh/id _ rsa $ cat ~/。ssh/id _ rsa.pub ~/。ssh/authorized _ keys $ chmod700 ~/。ssh chmod600 ~/。ssh/*测试,第一次登录可能需要yes确认,然后

  $ SSH localhost上次登录: Satjul 18 22:57:44 2015来自localhost对于slave1和slave2,设置免密码自助登录。操作同上。

  2.3.2设置主从机无密码登录

  $猫~/。ssh/id _ RSA . pub ssh Hadoop @ slave 1 cat-~/。ssh/authorized_keys$ cat ~/。ssh/id _ RSA . pub ssh Hadoop @ slave 2 cat-~/。 ssh/authorized_keys

  e>测试:

  

[hadoop@master ~]$ ssh hadoop@slave1Last login: Sat Jul 18 23:25:41 2015 from master[hadoop@master ~]$ ssh hadoop@slave2Last login: Sat Jul 18 23:25:14 2015 from master

2.3.3 设置从机->主机的无密码登录

 

  分别在slave1、slave2上执行:

  

$ cat ~/.ssh/id_rsa.pub ssh hadoop@master cat - >> ~/.ssh/authorized_keys

 

  

三、Hadoop集群安装配置

这里会将hadoop、hbase、zookeeper的安装包都解压到/home/hadoop/个人主文件夹下,并重命名为hadoop、hbase、zookeeper。

 

  

 

  

3.1 修改hadoop配置

配置文件都在~/hadoop/etc/目录下

 

  3.1.1 core-site.xml

  

<configuration><property><name>fs.default.name</name><value>hdfs://master:9000</value></property></configuration>

3.1.2 hadoop-env.sh

 

  添加JDK路径:

  

export JAVA_HOME=/usr/java/jdk1.8.0_51

3.1.3 hdfs-site.xml

 

  

<configuration><property><name>dfs.name.dir</name><value>/home/hadoop/hadoop/name</value></property><property><name>dfs.data.dir</name><value>/home/hadoop/hadoop/data</value></property><property><name>dfs.replication</name><value>3</value></property></configuration>

3.1.4 mapred-site.xml

 

  

<configuration><property><name>mapred.job.tracker</name><value>master:9001</value></property></configuration>

3.1.5 修改masters文件

 

  

master

 

  

3.1.6 修改slaves文件

 

  

slave1slave2

 

  

注意:三台机器上都进行相同的配置,都放在相同的路径下。

 

  使用scp命令进行从本地到远程(或远程到本地)的文件拷贝操作:

  

scp -r /home/hadoop/hadoop slave1:/home/hadoopscp -r /home/hadoop/hadoop slave2:/home/hadoop

 

  

3.2 启动hadoop集群

进入master的~/hadoop目录,执行以下操作:

 

  

$ bin/hadoop namenode -format

格式化namenode,第一次启动服务前执行的操作,以后不需要执行。

 

  然后启动hadoop:

  

$ sbin/start-all.sh

通过jps命令能看到除jps外有5个进程:

 

  

$ jps4866 NodeManager4370 NameNode4899 Jps4648 SecondaryNameNode4779 ResourceManager4460 DataNode

 

  

四、ZooKeeper集群安装配置

解压zookeeper-3.3.2.tar.gz并重命名为zookeeper。

 

  

 

  

4.1 修改配置文件zoo.cfg

进入~/zookeeper/conf目录:

 

  

$ cp zoo_sample.cfg zoo.cfg

拷贝zoo_sample.cfg文件为zoo.cfg,并编辑如下:

 

  

dataDir=/home/hadoop/zookeeper/dataserver.1=192.168.59.133:2888:3888server.2=192.168.59.134:2888:3888server.3=192.168.59.135:2888:3888

 

  

4.2 新建并编辑myid文件

在dataDir目录下新建myid文件,输入一个数字(master为1,slave1为2,slave2为3):

 

  

$ mkdir /home/hadoop/zookeeper/data$ echo "1" > /home/hadoop/zookeeper/data/myid

同样使用scp命令进行远程复制,只不过要修改每个节点上myid文件中的数字。

 

  

 

  

4.3 启动ZooKeeper集群

在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本:

 

  

$ ~/zookeeper/bin/zkServer.sh start

1.如果启动报类似异常:QuorumCnxManager@384] - Cannot open channel to 2 at election address slave-02/192.168.0.178:3888 是可以忽略的,因为该服务启动时会尝试连接所有节点,而其他节点尚未启动。通过后面部分可以看到,集群在选出一个Leader后,最后稳定 了。其他结点可能也出现类似问题,属于正常。

 

  2.关闭防火墙。在hadoop集群环境(linux系统)中最好关闭防火墙,不然会出现很多问题,例如namenode找不到datanode等。如果不关闭防火墙,客户端使用API操作HDFS以及ZooKeeper,可能就会出现下面常见的两种异常:

  使用API操作HDFS时会出现异常:java.net.NoRouteToHostException: No route to host使用API操作ZK时会出现异常:org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for xxxx3.使用root权限登陆后,输入关闭防火墙命令:

  

$ /etc/init.d/iptables stop$ service iptables stop

修改禁用selinux: /etc/selinux/config文件,设置"SELINUX=disabled"

 

  

 

  

五、HBase集群安装配置

解压hbase-1.0.1.1-bin.tar.gz并重命名为hbase。

 

  

 

  

5.1 hbase-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_51export HBASE_CLASSPATH=/home/hadoop/hadoop/etc/hadoop/export HBASE_MANAGES_ZK=false

 

  

5.2 hbase-site.xml

<configuration><property><name>hbase.rootdir</name><value>hdfs://master:9000/hbase</value></property><property><name>hbase.master</name><value>master</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.zookeeper.property.clientPort</name><value>2181</value></property><property><name>hbase.zookeeper.quorum</name><value>master,slave1,slave2</value></property><property><name>zookeeper.session.timeout</name><value>60000000</value></property><property><name>dfs.support.append</name><value>true</value></property></configuration>

 

  

5.3 更改 regionservers

在 regionservers 文件中添加slave列表:

 

  

slave1slave2

 

  

 

  

5.4 分发并同步安装包

将整个hbase安装目录都拷贝到所有slave服务器:

 

  

$ scp -r /home/hadoop/hbase slave1:/home/hadoop$ scp -r /home/hadoop/hbase slave2:/home/hadoop

 

  

六、启动集群

1. 启动ZooKeeper

 

  

~/zookeeper/bin/zkServer.sh start

2. 启动hadoop

 

  

~/hadoop/sbin/start-all.sh

3. 启动hbase

 

  

~/hbase/bin/start-base.sh

4. 启动后,master上进程和slave进程列表

 

  

[hadoop@master ~]$ jps6225 Jps2897 SecondaryNameNode # hadoop进程2710 NameNode # hadoop master进程3035 ResourceManager # hadoop进程5471 HMaster # hbase master进程2543 QuorumPeerMain # zookeeper进程
[hadoop@slave1 ~]$ jps4689 Jps2533 QuorumPeerMain # zookeeper进程2589 DataNode # hadoop slave进程4143 HRegionServer # hbase slave进程

5. 进入hbase shell进行验证

 

  

[hadoop@master ~]$ hbase/bin/hbase shell2015-07-20 00:42:11,725 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableHBase Shell; enter help<RETURN> for list of supported commands.Type "exit<RETURN>" to leave the HBase ShellVersion 1.0.1.1, re1dbf4df30d214fca14908df71d038081577ea46, Sun May 17 12:34:26 PDT 2015hbase(main):001:0> listTABLE 0 row(s) in 1.6950 seconds=> []hbase(main):002:0> status2 servers, 0 dead, 1.0000 average loadhbase(main):003:0>

 

  

参考:

[1] www.smalldeng.blog.51cto.com/1038075/1329290[2] www.marysee.blog.51cto.com/1000292/629405

 

  到此这篇关于Hadoop+HBase+ZooKeeper分布式集群环境搭建的文章就介绍到这了,更多相关HadoopHBaseZooKeeper集群搭建内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: