博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop+Zookeeper+Spark+Hbase集群式部署
阅读量:3943 次
发布时间:2019-05-24

本文共 8154 字,大约阅读时间需要 27 分钟。

前期准备

hadoop-2.7.6.tar.gz

hbase-1.2.6-bin.tar.gz
jdk-8u161-linux-x64.tar.gz
zookeeper-3.4.10.tar.gz
sqoop-1.99.7.tar.gz
spark-2.2.1-bin-hadoop2.7.tgz
kafka_2.11-1.1.0.tgz

修改hostname

在root用户下的主界面运行一下命令:

$ vim /etc/hostname

将localhost修改为姓名缩写和学号后四位然后:wq保存退出。

在每个节点/etc/hosts中加入本机ip和其他节点ip

在root用户下的主界面运行一下命令:

$ vim /etc/hosts

添加以下内容:

127.0.0.1	 localhost10.19.2.197  ljy032610.19.2.209	 pxc030510.19.1.242	 huwei0303

必须保证hosts内每个ip对应的主机名与hostname一致

配置免密登录

代码如下:

$ sudo apt-get install ssh$ ssh-keygen -t rsa$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys$ sudo gedit authorized_keys $ ssh huwei0303

添加完成,效果如图:

在这里插入图片描述

下载资源

  1. 下载JDK

请登录如下网站,下载你想要的版本http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html

  1. 下载Hadoop等其他安装包

需要下载 Hadoop、HBase、Spark、Scala、Sqoop、kafka、Zookeeper

  1. 解压文件

解压命令:

tar -zxvf ****.gz -C /opt/文件夹名
将jdk1.8.0_144文件夹更名为java
将hadoop-2.6.7 文件夹更名为hadoop
其余文件夹同上。

在每个节点配置环境变量

执行以下命令:

$ vim /etc/profile

在文件最后输入以下内容:

export JAVA_HOME=/opt/javaexport HADOOP_HOME=/opt/hadoopexport ZOOKEEPER_HOME=/opt/zookeeperexport HBASE_HOME=/opt/hbaseexport SPARK_HOME=/opt/sparkexport SCALA_HOME=/opt/scalaexport PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:$HBASE_HOME/bin:$SPARK_HOME/bin:$SCALA_HOME/bin:$SQOOP_HOME/bin

配置如图:

在这里插入图片描述
保存退出后需使环境变量生效,执行以下命令:

$ source /etc/profile

然后生效后运行java -version查看jdk配置是否成功

在每个节点创建文件夹并改权限

该文件夹为Hadoop相关文件夹

创建命令:

$ mkdir -p /opt/hadoop

将主节点设置为NTP服务器

一个Hadoop集群就是一个小型局域网,我们需要设定一台NTP服务器作为整个网络的标准时间参考,使用网络(集群)内的所有机器保持时间一致!以下是详细的操作步骤:

  1. 安装ntp软件

执行命令:

$ apt-get install ntp
  1. 修改配置文件

打开文件需要修改的配置文件,执行以下命令:

$ vim /etc/ntp.conf
# Specify one or more NTP serversserver 127.127.1.0

因为是内网,所以用本地时间做为服务器时间,注意这里不是127.0.0.1

在配置文件里找到以下4条并注释掉:

#server 0.ubuntu.pool.ntp.org#server 1.ubuntu.pool.ntp.org#server 2.ubuntu.pool.ntp.org#server 3.ubuntu.pool.ntp.org

增加了NTP服务器自身到时间服务器的同步

fudge 127.127.1.0 stratum 8

增加了一些需要同步的客户端的ip

restrict -4 default kod notrap nomodify nopeer noquery limitedrestrict -6 default kod notrap nomodify nopeer noquery limitedrestrict 10.19.2.209		restrict 10.19.1.242

配置完成如图:

在这里插入图片描述

配置Hadoop

  1. 配置
# The java implementation to use.

修改为自己的JAVA_HOME路径

export JAVA_HOME=/opt/java/jdk-8u171-linux-x64
  1. 配置hdfs-site.xml

配置如图:

在这里插入图片描述

  1. 配置core-site.xml

配置如图:

在这里插入图片描述

  1. 配置mapred-site.xml

配置如图:

在这里插入图片描述

  1. 配置slaves

添加节点的主机名:

ljy0326pxc0305huwei0303

添加完毕后保存退出。

  1. 配置 yarn-site.xml

如图:

在这里插入图片描述

  1. 配置JournalNode

JournalNode的配置是在hdfs-site.xml文件中,

打开文件:

$ vim hdfs-site.xml

在原有的配置下面添加一下内容,需保证所有的内容均在

dfs.nameservices
ljy0326
dfs.ha.namenodes.ljy0326
nn1,nn2
dfs.namenode.rpc-address.ljy0326.nn1
ljy0326:9000
dfs.namenode.http-address.ljy0326.nn1
ljy0326:50070
dfs.namenode.rpc-address.ljy0326.nn2
pxc0305:9000
dfs.namenode.http-address.ljy0326.nn2
pxc0305:50070
dfs.namenode.shared.edits.dir
qjournal://ljy0326:8485;pxc0305:8485;huwei0303:8485/ljy0326
dfs.journalnode.edits.dir
/opt/hadoop/journal
dfs.ha.automatic-failover.enabled
true
dfs.client.failover.proxy.provider.ljy0326
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyPrivider
dfs.ha.fencing.methods
sshfence(ljy0326:22)
dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_rsa

将配置好的文件发送到其他节点:

运行shell命令:

$ scp –r /opt/java/jdk root@huwei0303:/opt/java$ scp –r /opt/java/jdk root@pxc0305:/opt$ scp –r /opt/hadoop/hadoop-2.6.7 root@huwei0303:/opt/hadoop$ scp –r /opt/hadoop/hadoop-2.6.7 root@pxc0305:/opt/hadoop

格式化namenode

在master节点运行shell命令:

$ hadoop namenode –format

提示0,则格式化正常

启动hadoop集群

运行命令:

$ /sbin/start-all.sh

输入命令jps,hadoop启动成功如图:

在这里插入图片描述

配置ZooKeeper

  1. 创建相关文件
$ sudo mkdir -p /usr/local/zkData              //该文件夹为Zookeeper数据文件夹
$ mkdir -p /opt/zookeeper/logs                 //该文件夹存放Zookeeper 日志文件

在ljy0326节点运行shell命令:

$ echo 1 >> /usr/local/zkData/myid

在pxc0305 节点运行shell命令

$ echo 2 >> /usr/local/zkData/myid

在huwei0303 节点运行shell命令

$ echo 3 >> /usr/local/zkData/myid
  1. 配置/opt/zookeeper/conf/zoo.cfg
# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just# example sakes.# 将此处改为原先创建好的目录dataDir=/usr/local/zkData# the port at which the clients will connectclientPort=2181server.1=0.0.0.0:2888:3888server.2=pxc0305:2888:3888server.3=huwei0303:2888:3888

配置完成如图:

在这里插入图片描述
注意此处(3个虚拟机要分别配置)

  • 在pxc0305节点,将此处配置为
server.1=ljy0326:2888:3888server.2=0.0.0.0:2888:3888server.3=huwei0303:2888:3888
  • 在huwei0303节点,将此处配置为
server.1=ljy0326:2888:3888server.2=pxc0305:2888:3888server.3=0.0.0.0:2888:3888
  1. 配置/opt/zookeeper/bin/zkEnv.sh
    找到
if [ "x${ZOO_LOG_DIR}" = "x" ]then    ZOO_LOG_DIR="." fi

将.改为/opt/zookeeper/logs

  1. 将配置文件发送到其他节点
    运行shell命令:
$ scp –r /opt/zookeeper/ root@pxc0305:/opt$ scp –r /opt/zookeeper/ root@huwei0303:/opt
  1. 启动Zookeeper集群

在每个节点运行shell命令:

$ zkServer.sh start

配置HBase

export JAVA_HOME=/opt/java/jdk                                   //更改Java环境变量
  1. 配置hbase-site.xml
//集群中所有RegionServer共享目录
hbase.rootdir
hdfs://ljy0326:9000/hbase
//集群的模式
hbase.cluster.distributed
true
// zookeeper集群的URL配置
hbase.zookeeper.quorum
ljy0326,pxc0305,huwei0303
//指定ljy0326
hbase.master
ljy0326
//客户端与zookeeper的连接端口
hbase.zookeeper.property.clientPort
2181
//客户端与zookeeper的通讯超时时间
zookeeper.session.timeout.ms
1800000
// RegionServer处理IO请求的线程数
hbase.regionserver.handler.count
100
//RegionServer发生Split的阔值
hbase.hregion.max.filesize
2147483648
  1. 配置regionservers
pxc0305huwei0303
  1. 将配置文件发送到其他节点
$ scp –r /opt/hbase/ root@pxc0305:/opt$ scp –r /opt/hbase/ root@huwei0303:/opt
  1. 在master节点启动HBase
$ start-hbase.sh

输入命令jps,Hbase启动成功如图:

在这里插入图片描述

搭建spark

  1. 在每个节点创建Spark相关目录:
$ sudo mkdir –p /usr/local/spark                        //该目录用于存放worker信息和日志
  1. 配置spark-env.sh文件

配置如图:

在这里插入图片描述

#在配置slave节点时,将SPARK_LOCAL_IP改为对应的IP地址或者Hostname

  1. 配置spark-defaults.conf

配置如图:

在这里插入图片描述

  1. 配置slaves

#在文件中加入配置信息

pxc0305huwei0303
  1. 将配置文件发送到其他节点

运行shell命令:

$ scp –r /opt/spark/ root@pxc0305:/opt$ scp –r /opt/spark/ root@huwei0303:/opt$ scp –r /opt/scala/ root@pxc0305:/opt$ scp –r /opt/scala/ root@huwei0303:/opt
  1. 启动Spark集群

#在Hadoop集群启动的情况下运行以下命令:

$  /opt/spark/spark-2.2.1/sbin/start-all.sh

搭建kafka

  1. 创建kafka相关目录
$ mkdir /opt/kafka/logs              //存放kafka消息的目录,也可以使用默认的目录
  1. 修改配置文件
$ vim /opt/kafka/ kafka_2.11-1.1.0 /config/server.properties

需要修改的部分:

broker.id=1 //当前机器在kafka机器里唯一标识,与zookeeper的myid相匹配log.dirs=/opt/kafka/logs //存储消息的目录位置
  1. 将配置文件发送到其他节点

运行shell命令:

scp –r /opt/spark/ root@pxc0305:/optscp –r /opt/spark/ root@huwei0303:/opt

切换到pxc0305和huwei0303上修改配置文件:

[root@pxc0305]# vim server.propertiesbroker.id=2[root@ huwei0303]# vim server.propertiesbroker.id=3
  1. 启动kafka集群

保证先启动zookeeper集群

然后在每个节点的、kafka/sbin目录下运行

$ cd /opt/kafka/ kafka_2.11-1.1.0/sbin$ ./kafka-server-start.sh -daemon ../config/server.properties

若成功启动,输入jps可以看到 kafka

搭建sqoop1.99.7

  1. 配置第三方jar引用路径
$ vim /etc/profile$ export SQOOP_SERVER_EXTRA_LIB=$SQOOP_HOME/extra

最后把mysql的驱动jar文件复制到这个目录下。

  1. 配置sqoop.properties文件
org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/opt/hadoop/etc/hadoop  org.apache.sqoop.security.authentication.type=SIMPLE  org.apache.sqoop.security.authentication.handler=org.apache.sqoop.security.authentication.SimpleAuthenticationHandler  org.apache.sqoop.security.authentication.anonymous=true
  1. 验证配置是否有效

使用bin中的sqoop2-tool工具进行验证:

$ bin/sqoop2-tool verify

这个工具也可用于软件升级。若没有什么问题,往下走。

  1. 启动sqoop
$ bin/sqoop2-server start

安装mysql

在ljy0326上运行命令

$ apt-get install mysql-server-5.6

会提示设置root密码,设置完成则运行查看是否成功

检测搭建是否完成

搭建成功后每个节点jps运行截图:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

结果如上图,大功告成

你可能感兴趣的文章
DM模板使用心得
查看>>
进入和退出屏幕模板程序
查看>>
FileManager模块分析
查看>>
嵌入式及手机开发
查看>>
C语言嵌入式系统编程修炼之道
查看>>
MTK定时器消息机制分析
查看>>
MTK芯片
查看>>
SIM卡与USIM
查看>>
拍照手机名词术语小常识
查看>>
手机设计与制造全过程
查看>>
手机研发流程
查看>>
android studio drawable目录的分辨率
查看>>
j2me MIDP2.0已移植到 MT6225 GEMINI 0812 版本上
查看>>
MIDP2.1规范的新特性
查看>>
J2ME开发
查看>>
Java ME平台
查看>>
Unicode 汉字内码表
查看>>
MT6235
查看>>
mtk camera isp
查看>>
j2me 扑克发牌算法实现
查看>>