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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。