写点什么

Hadoop 及 Spark 分布式 HA 运行环境搭建

  • 2023-02-21
    北京
  • 本文字数:2385 字

    阅读完需:约 8 分钟

Hadoop 及Spark 分布式HA运行环境搭建

作者:京东物流 秦彪

工欲善其事必先利其器,在深入学习大数据相关技术之前,先手动从 0 到 1 搭建一个属于自己的本地 Hadoop 和 Spark 运行环境,对于继续研究大数据生态圈各类技术具有重要意义。本文旨在站在研发的角度上通过手动实践搭建运行环境,文中不拖泥带水过多讲述基础知识,结合 Hadoop 和 Spark 最新版本,帮助大家跟着步骤一步步实践环境搭建。

1. 总体运行环境概览

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



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



(3)进程介绍:(1 表示进程存在,0 表示不存在)


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. 后记

大数据技术日新月异,得益于互联网技术加持下的商业和工业模式变革。人们日益增长的对生活生产便捷性、数字化、智能化的需求,催生了数据爆炸式的增长,推动了大数据技术推陈出新。作为新时代的程序开发者,必须掌握一定的大数据基础知识才能适应时代的要求,本文只是一个引子,从自身实践的角度帮助初学者认识大数据,并基于此搭建自己属于自己的开发环境,希望大家能够在此基础上继续钻研有所建树。

发布于: 刚刚阅读数: 3
用户头像

拥抱技术,与开发者携手创造未来! 2018-11-20 加入

我们将持续为人工智能、大数据、云计算、物联网等相关领域的开发者,提供技术干货、行业技术内容、技术落地实践等文章内容。京东云开发者社区官方网站【https://developer.jdcloud.com/】,欢迎大家来玩

评论

发布
暂无评论
Hadoop 及Spark 分布式HA运行环境搭建_大数据_京东科技开发者_InfoQ写作社区