Hadoop+HBase+ZooKeeper分布式集群环境搭建步骤

目录

  • 一、环境说明
    • 2.1 安装JDK
    • 2.2 添加Hosts映射关系
    • 2.3 集群之间SSH无密码登陆
  • 三、Hadoop集群安装配置
    • 3.1 修改hadoop配置
    • 3.2 启动hadoop集群
  • 四、ZooKeeper集群安装配置
    • 4.1 修改配置文件zoo.cfg
    • 4.2 新建并编辑myid文件
    • 4.3 启动ZooKeeper集群
  • 五、HBase集群安装配置
    • 5.1 hbase-env.sh
    • 5.2 hbase-site.xml
    • 5.3 更改 regionservers
    • 5.4 分发并同步安装包
  • 六、启动集群
    • 参考:

      一、环境说明 集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下:
      Hostname IP User Password
      master 192.168.59.133 hadoop 123456
      slave1 192.168.59.134 hadoop 123456
      slave2 192.168.59.135 hadoop 123456
      三个节点均使用CentOS 6.5系统,为了便于维护,集群环境配置项最好使用相同用户名、用户密码、相同hadoop、hbase、zookeeper目录结构。
      注: 可以通过编辑/etc/sysconfig/network文件来修改 hostname 。
      ##二、准备工作

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

      修改配置文件 vim /etc/profile
      export JAVA_HOME=/usr/java/jdk1.8.0_51export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

      然后重新加载配置文件使之生效:
      $ source /etc/profile


      2.2 添加Hosts映射关系
      分别在三个节点上添加hosts映射关系:
      $ vim /etc/hosts

      添加的内容如下:
      192.168.59.133 master
      192.168.59.134 slave1
      192.168.59.135 slave2

      2.3 集群之间SSH无密码登陆
      CentOS默认安装了ssh,如果没有你需要先安装ssh 。
      集群环境的使用必须通过ssh无密码登陆来执行,本机登陆本机必须无密码登陆,主机与从机之间必须可以双向无密码登陆,从机与从机之间无限制。
      2.3.1 设置master无密码自登陆
      【Hadoop+HBase+ZooKeeper分布式集群环境搭建步骤】主要有三步:①生成公钥和私钥、②导入公钥到认证文件、③更改权限
      $ ssh-keygen -t rsa -f ~/.ssh/id_rsa$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys$ chmod 700 ~/.ssh && chmod 600 ~/.ssh/*

      测试,第一次登录可能需要yes确认,之后就可以直接登录了:
      $ ssh localhostLast login: Sat Jul 18 22:57:44 2015 from localhost

      对于 slave1 和 slave2,进行无密码自登陆设置,操作同上。
      2.3.2 设置主机->从机的无密码登录
      $ cat ~/.ssh/id_rsa.pub | ssh hadoop@slave1 'cat - >> ~/.ssh/authorized_keys'

      $ cat ~/.ssh/id_rsa.pub | ssh hadoop@slave2 'cat - >> ~/.ssh/authorized_keys'

      测试:
      [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
      fs.default.namehdfs://master:9000

      3.1.2 hadoop-env.sh
      添加JDK路径:
      export JAVA_HOME=/usr/java/jdk1.8.0_51

      3.1.3 hdfs-site.xml
      dfs.name.dir/home/hadoop/hadoop/name dfs.data.dir/home/hadoop/hadoop/data dfs.replication3

      3.1.4 mapred-site.xml
      mapred.job.trackermaster:9001

      3.1.5 修改masters文件
      master
      3.1.6 修改slaves文件
      slave1
      slave2
      注意:三台机器上都进行相同的配置,都放在相同的路径下。
      使用scp命令进行从本地到远程(或远程到本地)的文件拷贝操作:
      scp -r /home/hadoop/hadoopslave1:/home/hadoopscp -r /home/hadoop/hadoopslave2:/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 xxxx
      3.使用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
      hbase.rootdirhdfs://master:9000/hbase hbase.mastermaster hbase.cluster.distributedtrue hbase.zookeeper.property.clientPort2181 hbase.zookeeper.quorummaster,slave1,slave2 zookeeper.session.timeout60000000 dfs.support.appendtrue


      5.3 更改 regionservers
      在 regionservers 文件中添加slave列表:
      slave1
      slave2

      5.4 分发并同步安装包
      将整个hbase安装目录都拷贝到所有slave服务器:
      $ scp -r /home/hadoop/hbaseslave1:/home/hadoop$ scp -r /home/hadoop/hbaseslave2:/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' for list of supported commands.Type "exit" to leave the HBase ShellVersion 1.0.1.1, re1dbf4df30d214fca14908df71d038081577ea46, Sun May 17 12:34:26 PDT 2015hbase(main):001:0> listTABLE0 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分布式集群环境搭建的文章就介绍到这了,更多相关Hadoop HBase ZooKeeper集群搭建内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

        推荐阅读