关于hadoop:Hadoop-及Spark-分布式HA运行环境搭建

38次阅读

共计 4253 个字符,预计需要花费 11 分钟才能阅读完成。

作者:京东物流 秦彪

工欲善其事必先利其器,在深刻学习大数据相干技术之前,先手动从 0 到 1 搭建一个属于本人的本地 Hadoop 和 Spark 运行环境,对于持续钻研大数据生态圈各类技术具备重要意义。本文旨在站在研发的角度上通过手动实际搭建运行环境,文中不快人快语过多讲述基础知识,联合 Hadoop 和 Spark 最新版本,帮忙大家跟着步骤一步步实际环境搭建。

1. 总体运行环境概览

(1)软件包及应用工具版本介绍表:

技术名称或工具名称 版本 备注
Hadoophadoop-3.3.4.tar.gz
VirtualBox6.0.0 r127566 虚拟机,举荐
CentOScentos7.3
JDKjdk-8u212-linux-x64.tar.gz1.8.0_111
Zookeeperzookeeper-3.6.tar.gz
FileZillaFileZilla_3.34.0 文件传输工具,举荐
MobaXtermMobaXterm_Portable_v10.9SSH 连贯工具,举荐
IdeaIDEA COMMUNITY 2019.1.4 代码 IDE 开发工具,举荐

(2)环境部署与散布介绍表:

主机名 IP 运行的过程
master192.168.0.20QuorumPeerMain、NameNode、DataNode、ResourceManager、NodeManager、JournalNode、DFSZKFailoverController、Master
slave1192.168.0.21QuorumPeerMain、NameNode、DataNode、ResourceManager、NodeManager、JournalNode、DFSZKFailoverController、Master、Worker
slave2192.168.0.22QuorumPeerMain、NameNode、DataNode、JournalNode、NodeManager、Worker

(3)过程介绍:(1 示意过程存在,0 示意不存在)

过程名 含意 masterslave1slave2
QuorumPeerMainZK 过程 111
NameNodeHadoop 主节点 110
DataNodeHadoop 数据节点 111
ResourceManagerYarn 治理过程 110
NodeManagerYarn 工作过程 111
JournalNodeNameNode 同步过程 111
DFSZKFailoverControllerNameNode 监控过程 110
MasterSpark 主节点 110
WorkerSpark 工作节点 111

2. 零碎根底环境筹备

步骤 1:虚拟机中 Linux 零碎装置(略)

VirtualBox 中装置 CentOS7 操作系统

步骤 2:CentOS7 根底配置

(1)配置主机的 hostname

命令:vim/etc/hostname

(2)配置 hosts,命令 vim /etc/hosts

(3)装置 JDK

命令:

rpm -qa | grep java 查看是否有通过 rpm 形式装置的 java

java -version 查看以后环境变量下的 java 版本

1)filezilla 上传安装包,tar -zxvf
jdk-8u212-linux-x64.tar.gz 解压

2)bin 目录的残缺门路:
/usr/local/jdk/jdk1.8.0_212/bin

3)vim /etc/profile 配置 jdk 环境变量

(4)复制主机:

1)利用 VirtualBox 复制性能复制两台主机

2)命令:vi
/etc/sysconfig/network-scripts/ifcfg-eth0,设置相应的网络信息

3)三台主机 IP 别离为:192.168.0.20/21/22

(5)配置三台主机 ssh 无明码登录(略)

(6)装置 zookeeper

1)filezilla 上传安装包,zookeeper-3.4.10.tar.gz 解压

2)bin 目录的残缺门路:
/usr/local/zookeeper/zookeeper-3.4.10/bin

3)vim /etc/profile 配置 jdk 环境变量

4)zookeeper 的配置文件批改,zookeeper-3.4.10/conf/

5)执行命令从 master 节点复制配置到其余两个节点

6)每台机器 zookeeper 目录下新建一个 data 目录,data 目录下新建一个 myid 文件,master 主机寄存标识值 1;slave1 主机标识值为 2;slave3 主机标识值为 3

7)每台机器上命令:zkServer.sh start,启动 ZK,过程名:QuorumPeerMain

3. Hadoop 装置与部署

3.1 装置 Hadoop

1)filezilla 上传安装包,hadoop-3.3.4.tar.gz 解压

2)bin 目录的残缺门路:/usr/local/hadoop/hadoop-3.3.4/bin

3)vim /etc/profile 配置 jdk 环境变量

4)批改配置文件共 6 个:hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 和 workers

文件 1:hadoop-env.sh;减少 jdk 环境变量

文件 2:core-site.xml;配置长期目录及 zookeeper 信息

文件 3:hdfs-site.xml;配置 hdfs 信息

文件 4:mapred-site.xml;配置 mapreduce 和 dfs 权限信息

文件 5:yarn-site.xml;配置 yarn 资源调度信息

文件 6: worker 文件寄存以后的 worker 节点名,复制到每一个虚拟机中

3.2 启动 Hadoop

1)应用命令:hadoop-daemon.sh start journalnode 启动 journalnode 过程(每个节点执行)

2)应用命令:hadoop-daemon.sh start namenode 启动 namenode 过程(master、slave1 节点上执行)

3)应用命令:hadoop-daemon.sh start datanode 在所有节点上启动 datanode 过程

4)应用命令:start-yarn.sh 在 master 上启动 yarn

5)应用命令:hdfs zkfc -formatZK 在 ZK 上生成 ha 节点

6)应用命令:hadoop-daemon.sh start zkfc 启动 DFSZKFailoverController 过程,在 master 节点执行

a. 拜访 HDFS 的治理页面

http://192.168.0.20:50070 此处 192.168.0.20 为 namenode 节点的 Active 节点

http://192.168.0.21:50070 此处 192.168.0.20 为 namenode 节点的 standby 节点

3.3 验证 HDFS 应用

应用命令:hdfs dfs -ls / 查看 HDFS 中文件

应用命令:hdfs dfs -mkdir /input 在 HDFS 上创立目录

应用命令:hdfs dfs -put ./test.txt /input 将本地文件上传到 HDFS 指定目录

应用命令:hdfs dfs -get /input/test.txt ./tmp 将 HDFS 文件复制到本地目录

应用命令:hdfs dfs -text /input/test.txt 查看 HDFS 上的文本文件

web 端浏览 HDFS 目录

3.4 验证 MapReduce 的 wordcount 案例

(1)先通过命令将带有文本内容的 test2.txt 文件上传到 HDFS

(2)对 HDFS 上 test2.txt 文件执行 wordcount 统计,后果放回 HDFS 新目录,命令:

hadoop jar /usr/local/hadoop/hadoop-3.3.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount /input/test2.txt /out

4. Spark 装置与部署

4.1 装置 Scala

(1)装置 scala

上传 scala 压缩包解压,应用命令:

scala -version 查看以后环境变量下的 scala 版本

(2)拷贝 scala 目录和环境变量到其余两台机器

应用命令:

scp -r /usr/local/scala root@slave1:/usr/local/

scp /etc/profile root@slave1:/etc/profile

4.2 装置 Spark

(1)上传 spark 压缩包解压,批改配置文件

命令:vim
/usr/local/spark/spark-3.3.1/conf/spark-env.sh

(2)新建 worker 目录,写入 master 机器名称

4.3 启动 Spark

(1)在 master 的 spark 装置目录下启动 spark

命令:

cd /usr/local/spark/spark-3.3.1/sbin

./start-all.sh

(2)在 slave1 同样目录启动 master 过程

命令:./start-master.sh

(3)拜访 spark 治理页面 ui

4.4 验证 Spark 的 wordcount 案例

(1)执行命令:

cd /usr/local/spark/spark-3.3.1/bin

./spark-shell –master spark://master:7077

(3)从 HDFS 读取数据执行自定义 wordcount 代码,后果写入 HDFS,命令:

sc.textFile(“hdfs://master:9000/input/test2.txt”).flatMap(_.split(” “)).map(word=>(word,1)).reduceByKey(_+_).map(pair=>(pair.\_2,pair.\_1)).sortByKey(false).map(pair=>(pair.\_2,pair.\_1)).saveAsTextFile(“hdfs://master:9000/spark_out”)

(4)输入后果:

5. 后记

大数据技术突飞猛进,得益于互联网技术加持下的商业和工业模式改革。人们日益增长的对生存生产便捷性、数字化、智能化的需要,催生了数据爆炸式的增长,推动了大数据技术新陈代谢。作为新时代的程序开发者,必须把握肯定的大数据基础知识能力适应时代的要求,本文只是一个引子,从本身实际的角度帮忙初学者意识大数据,并基于此搭建本人属于本人的开发环境,心愿大家可能在此基础上持续钻研有所建树。

正文完
 0