zookeeper、hadoop、hbase集群搭建

0、首先创建三台虚拟机,在此基础上搭建分布式集群

创建虚拟机:Mac上安装VMware&搭载CentOS7

三台设备:

           ip                  hostname

    192.168.77.100        server001

    192.168.77.110        server002

    192.168.77.120       server003

版本:zookeeper-3.4.9,hadoop-2.7.6,hbase-1.7.1

1、关闭防火墙,否则集群间无法通信

systemctl status firewalld   //查看防火墙状态

systemctl stop firewalld  //关闭防火墙

systemctl disable firewalld  //禁用防火墙

2、这里我们是从网上将资源下载到Mac主机上,然后再将资源拷贝到虚拟机上

scp -p 22  ware/hadoop-2.7.6.tar.gz  root@192.168.77.120:/var/opt

3、设置主机名和配置主机hosts

设置主机名:

hostnamectl set-hostname server001

查看 vi /etc/hostname

配置主机hosts:

vi /etc/hosts

添加如下内容

192.168.77.100  server001

192.168.77.110   server002

192.168.77.120  server003

4、三台设置间设置ssh免密登录

首先确保开启了ssh,开启后会在/root目录下有.ssh文件夹

每台分别执行ssh-keygen -t rsa,连续按3个回车,在.ssh目录下生成id_rsa和id_rsa.pub

然后分发秘钥:

在server001上执行 ssh-copy-id server002ssh-copy-id server003,其他两台上同理。

至此三台之间就可以通过 ssh server001/002/003进行免密登录了。

5、安装zookeeper

下载地址:http://archive.apache.org/dist/zookeeper/(下载3.4.9)

注意:有的高版本执行会报:找不到或无法加载主类 org.apache.zookeeper.ZooKeeperMain

解压文件:

tar –zxf zookeeper-3.4.7.tar.gz

(1)修改zoo.cfg配置

cd /zookeeper/conf

cp zoo_sample.cfg zoo.cfg

vi zoo.cfg

修改:dataDir=/var/opt/zookeeper/data

末尾添加:

server.1=192.168.77.100:2555:3555

server.2=192.168.77.110:2555:3555

server.3=192.168.77.120:2555:3555

2555是leader端口,3555是follower端口,可以修改。

(2)将server001上的zookeeper文件拷贝到server002和server002上

scp -r /var/opt/zookeeper root@server002:/var/opt

(3)在每台设备上创建id

创建data目录:mkdir data

cd data

vi myid(server001上是1,server002上是2,server003上是3)

(4)分别在三台机器上启动zk

./zkServer.sh start

查看启动状态:

./zkServer.sh status

6、部署Hadoop集群

NameNode 和 SecondaryNameNode 不要安装在同一台服务器。ResourceManager 也很消耗内存,不要和 NameNode、SecondaryNameNode 配置在同一台机器上。

                   

(1)下载的Hadoop文件解压:(1-7都在一个节点上操作)

tar -zxf hadoop-2.7.6.tar.gz

(2)编辑hadoop-env.sh

cd /var/opt/hadoop-2.7.6/etc/hadoop
vi hadoop-env.sh

修改:

export JAVA_HOME=/var/opt/jdk1.8.0_181

export HADOOP_CONF_DIR=/var/opt/hadoop-2.7.6/etc/hadoop

生效:source hadoop-env.sh

(3)编辑core-site.xml

<configuration>
<!-- 指定namenode的地址 -->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://server001:8020</value>
</property>
<!-- 指定hadoop数据的存储目录  -->
<property>
   <name>hadoop.tmp.dir</name>
   <value>/var/opt/hadoop-2.7.6/tmp</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 root -->
<property>
   <name>hadoop.http.staticuser.user</name>
   <value>root</value>
</property>
</configuration>

(4)编辑hdfs-site.xml

<configuration>
<!-- nn web 端访问地址-->
<property>
   <name>dfs.namenode.http-address</name>
   <value>server001:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
   <name>dfs.namenode.secondary.http-address</name>
   <value>server003:9868</value>
</property>
</configuration>

(5)编辑mapred-site.xml

cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<configuration>
<!-- mapreduce的工作模式:yarn -->
  <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
  </property>
</configuration>

(6)编辑yarn-site.xml

<configuration>
<!-- 指定 MR 走 shuffle -->
<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
   <name>yarn.resourcemanager.hostname</name>
   <value>server002</value>
</property>
<!-- 环境变量的继承 -->
<property>
   <name>yarn.nodemanager.env-whitelist</name>
   <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!-- 开启日志聚集功能 -->
<property>
   <name>yarn.log-aggregation-enable</name>
   <value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
   <name>yarn.log.server.url</name>
   <value>http://server001:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property>
   <name>yarn.log-aggregation.retain-seconds</name>
   <value>604800</value>
</property>
</configuration>

(7)编辑slaves

vi /var/opt/hadoop-2.7.6/etc/hadoop/slaves

添加:
server001
server002
server003

(8)把配置好的hadoop拷贝到其他节点

scp -r hadoop-2.7.6 root@server002:/var/opt/
scp -r hadoop-2.7.6 root@server003:/var/opt/

(9)配置环境变量

vi /etc/profile

末尾添加:

export HADOOP_HOME=/var/opt/hadoop-2.7.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

生效:source /etc/profile

(10)群起集群

vi /var/opt/hadoop-2.7.6/etc/hadoop/workers

添加:
server001
server002
server003

(11)启动Hadoop集群

  如果集群是第一次启动,需要在 hadoop102 节点格式化 NameNode(注意:格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式化)
hdfs namenode -format
• 在server001上启动HDFS
start-dfs.sh

• 在配置了 ResourceManager 的节点()启动 YARN

start-yarn.sh

• web端查看

查看HDFS的namenode:http://192.168.77.100:9870

查看 YARN 的 ResourceManager:http://192.168.77.110:8088

 7、部署HBase

先解压文件:

tar -zxvf hbase-1.3.1-bin.tar.gz

(1)hbase-env.sh 修改内容:

export JAVA_HOME=/var/opt/jdk_1.8.1_144
export HBASE_MANAGES_ZK=false

(2)hbase-site.xml 修改内容:

<configuration>
  <!-- 这个目录是 RegionServer 的共享目录,用来持久化 HBase。特别注意的是 hbase.rootdir 里面的 HDFS 地址是要跟 Hadoop 的 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必须一致 -->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://server001:8020/hbase</value>
  </property>
  <!-- 指定是分布式模式 -->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <!-- 指定master端口,默认也是16000 -->
  <property>
    <name>hbase.master.port</name>
    <value>16000</value>
  </property>
  <!-- 本地文件系统的临时文件夹。可以修改到一个更为持久的目录上。(/tmp会在重启时清除) -->
  <property>
    <name>hbase.tmp.dir</name>
    <value>/var/opt/hbase-1.7.1/tmp</value>
  </property>
  <!-- 列出全部的 ZooKeeper 的主机,用逗号隔开 -->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>server001,server002,server003</value>
  </property>
  <!-- ZooKeeper 快照的存储位置,默认值为 /tmp -->
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/var/opt/zookeeper/zkData</value>
  </property>
</configuration>

(3)配置regionservers

server001
server002
server003

(4)软连接 hadoop 配置文件到 HBase(当然也可以拷贝过来)

ln -s /var/opt/hadoop-2.7.6/etc/hadoop/core-site.xml /var/opt/hbase-1.7.1/conf/core-site.xml
ln -s /var/opt/hadoop-2.7.6/etc/hadoop/hdfs-site.xml /var/opt/hbase-1.7.1/conf/hdfs-site.xml

(5)将配置好的hbase拷贝到其他两台机器

scp -r hbase-1.7.1 root@server002:/var/opt
scp -r hbase-1.7.1 root@server003:/var/opt

(6)启动Hbase集群

先启动三台zookeeper

sh /var/opt/zookeeper/bin/zkServer.sh start

然后在server001上启动HDFS

start-dfs.sh

在server002上启动yarn(也可以不启动)

start-yarn.sh

查看启动状态,jps或是浏览器访问:192.168.77.100:9870

最后在server001上启动hbase,先启动HMaster,再启动HRegionServer

sh /var/opt/hbase-1.7.1/bin/hbase-daemon.sh start master
sh /var/opt/hbase-1.7.1/bin/hbase-daemon.sh start regionserver

查看启动状态,jps或是浏览器访问:192.168.77.100:16010

 

posted @ 2021-10-27 18:07  jingyi_up  阅读(433)  评论(0编辑  收藏  举报