Linux下部署Zookeeper+Hadoop+Hbase集群

Posted 独立行走的小黄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下部署Zookeeper+Hadoop+Hbase集群相关的知识,希望对你有一定的参考价值。

1.准备好三台服务器10.230.10.204,10.230.10.203,10.230.10.202

2.在主节点服务器上配置另外两台服务器的免密登入,我是用204作为主节点使用,所以配置另外两台服务器的免密

ssh-keygen -P ''
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.230.10.203
输入密码
测试 ssh 10.230.10.203
exit

ssh-keygen -P ''
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.230.10.202
输入密码
测试 ssh 10.230.10.202
exit

3.修改/etc/hosts文件,添加IP别名,三台都需要添加,还需要修改hostname为本机别名

10.230.10.204 x204

10.230.10.203 x203

10.230.10.202 x202

4.安装Zookeeper

tar -xzvf apache-zookeeper-3.5.8-bin.tar.gz

修改配置文件,一般来说是没有zoo.cfg的,自己创建一个,三台服务器都相同配置

vi conf/zoo.cfg

tickTime=2000
dataDir=/hadoop/apache-zookeeper-3.5.8-bin/data
clientPort=12181
initLimit=5
syncLimit=2
server.1=x204:12888:13888
server.2=x203:12888:13888
server.3=x202:12888:13888

设置myid,没有data文件夹就创建一个,三台服务器配置不同的数字

vi data/myid 写入一个数字

打开防火墙,防火墙关闭了这一步可以省略

firewall-cmd --zone=public --add-port=12181/tcp --permanent
firewall-cmd --zone=public --add-port=13888/tcp --permanent
firewall-cmd --zone=public --add-port=12888/tcp --permanent

systemctl restart firewalld.service

启动Zookeeper,在三台服务器查看状态出现两个follower,一个leader那集群就成功了

使用bin/zkServer sh start  启动zk
使用bin/zkServer sh status 查看zk状态
使用bin/zkServer sh stop   停止zk

 

 

5.安装Hadoop

tar -xzvf hadoop-3.2.1.tar.gz

配置环境变量,三台服务器都相同配置

vi /etc/profile

shift+g 添加到最下面

export HADOOP_HOME=/hadoop/hadoop-3.2.1
export HBASE_LIBRARY_PATH=/hadoop/hadoop-3.2.1/lib/Linux-amd64-64

修改配置文件,三台服务器都相同配置

vi core-site.xml
<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://x204:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/hadoop/hadoop-3.2.1/tmp</value>
    </property>
</configuration>

vi hadoop-env.sh
export HADOOP_PID_DIR=/hadoop/hadoop-3.2.1/tmp
JAVA_HOME=/usr/local/jdk/jdk1.8

vi hdfs-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

vi mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

vi yarn-site.xml
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>x204</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>$yarn.resourcemanager.hostname:18088</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.application.classpath</name>    	
        <value>/hadoop/hadoop-3.2.1/etc/hadoop:/hadoop/hadoop-3.2.1/share/hadoop/common/lib/*:/hadoop/hadoop-3.2.1/share/hadoop/common/*:/hadoop/hadoop-3.2.1/share/hadoop/hdfs:/hadoop/hadoop-3.2.1/share/hadoop/hdfs/lib/*:/hadoop/hadoop-3.2.1/share/hadoop/hdfs/*:/hadoop/hadoop-3.2.1/share/hadoop/mapreduce/lib/*:/hadoop/hadoop-3.2.1/share/hadoop/mapreduce/*:/hadoop/hadoop-3.2.1/share/hadoop/yarn:/hadoop/hadoop-3.2.1/share/hadoop/yarn/lib/*:/hadoop/hadoop-3.2.1/share/hadoop/yarn/*</value>
    </property>
</configuration>

vi workers
x203
x202

vi sbin/start-dfs.sh & sbin/stop-dfs.sh
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

vi sbin/start-yarn.sh & sbin/stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

创建pid目录,和Hadoop同级目录,三台服务器都相同配置

 mkdir /hadoop/pids

启动Hadoop,只需要启动主节点就可以,会带动子节点启动

防火墙开放端口,防火墙关闭了可以忽略

firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --zone=public --add-port=9870/tcp --permanent
firewall-cmd --zone=public --add-port=18088/tcp --permanent
systemctl restart firewalld.service

访问9870端口,子节点看到了就是成功了

先格式化
bin/hdfs namenode -format
启动
sbin/start-dfs.sh
sbin/start-yarn.sh

6.安装HBase

tar -xzvf hbase-2.3.3-bin.tar.gz

修改hbase-env.sh配置,三台服务器都相同配置

export JAVA_HOME=/usr/local/jdk/jdk1.8
export HBASE_PID_DIR=/hadoop/pids
export HBASE_MANAGES_ZK=false

修改hbase-site.xml配置,三台服务器都相同配置

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://x204:9000/hbase</value>
  </property>
  <property>
    <name>hbase.master</name>
    <value>hdfs://x204:60000</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>12181</value>
  </property>
  <property>
    <name>hbase.zookeeper.peerport</name>
    <value>12888</value>
  </property>
  <property>
    <name>hbase.zookeeper.leaderport</name>
    <value>13888</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>x204,x203,x202</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
</configuration>

修改regionservers,三台服务器都相同配置

x204
x203
x202

防火墙开放端口,防火墙关闭了可以忽略

firewall-cmd --zone=public --add-port=12888/tcp --permanent
firewall-cmd --zone=public --add-port=12181/tcp --permanent
firewall-cmd --zone=public --add-port=16010/tcp --permanent
firewall-cmd --zone=public --add-port=16020/tcp --permanent
firewall-cmd --zone=public --add-port=16030/tcp --permanent
firewall-cmd --zone=public --add-port=16000/tcp --permanent
firewall-cmd --zone=public --add-port=8030/tcp --permanent
firewall-cmd --zone=public --add-port=8031/tcp --permanent
firewall-cmd --zone=public --add-port=8032/tcp --permanent
systemctl restart firewalld.service

启动/关闭,启动主节点会带动子节点启动

bin/start-hbase.sh
bin/stop-hbase.sh

 

最后需要注意服务器时间是否同步,hostname是否成功修改。启动遇到问题是正常的,注意排除配置文件。祝君配置成功!!

开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于Linux下部署Zookeeper+Hadoop+Hbase集群的主要内容,如果未能解决你的问题,请参考以下文章

Zookeeper集群安装部署(超详细操作演示)—— Linux

Hadoop基础(三十三):Zookeeper 分布式安装部署

Hadoop 分布式部署 九:分布式协作框架Zookeeper架构 分布式安装部署

虚拟器上部署hadoop常见的一些问题

阿里云ECS服务器部署HADOOP集群:ZooKeeper 完全分布式集群搭建

Hadoop zookeeper HA高可靠集群部署搭建,及错误诊断