Hadoop 及Spark 分布式HA运行环境搭建
作者:京东物流 秦彪
工欲善其事必先利其器,在深入学习大数据相关技术之前,先手动从0到1搭建一个属于自己的本地Hadoop和Spark运行环境,对于继续研究大数据生态圈各类技术具有重要意义。本文旨在站在研发的角度上通过手动实践搭建运行环境,文中不拖泥带水过多讲述基础知识,结合Hadoop和Spark最新版本,帮助大家跟着步骤一步步实践环境搭建。
1. 总体运行环境概览
(1) 软件包及使用工具版本介绍表:
| 技术名称或工具名称 | 版本 | 备注 |
|---|---|---|
| Hadoop | hadoop-3.3.4.tar.gz | |
| VirtualBox | 6.0.0 r127566 | 虚拟机,推荐 |
| CentOS | centos7.3 | |
| JDK | jdk-8u212-linux-x64.tar.gz | 1.8.0_111 |
| Zookeeper | zookeeper-3.6.tar.gz | |
| FileZilla | FileZilla_3.34.0 | 文件传输工具,推荐 |
| MobaXterm | MobaXterm_Portable_v10.9 | SSH连接工具,推荐 |
| Idea | IDEA COMMUNITY 2019.1.4 | 代码IDE开发工具,推荐 |
(2)环境部署与分布介绍表:
| 主机名 | IP | 运行的进程 |
|---|---|---|
| master | 192.168.0.20 | QuorumPeerMain、NameNode、DataNode、ResourceManager、NodeManager、JournalNode、DFSZKFailoverController、Master |
| slave1 | 192.168.0.21 | QuorumPeerMain、NameNode、DataNode、ResourceManager、NodeManager、JournalNode、DFSZKFailoverController、Master、Worker |
| slave2 | 192.168.0.22 | QuorumPeerMain、NameNode、DataNode、JournalNode、NodeManager、Worker |
(3)进程介绍:(1表示进程存在,0表示不存在)
| 进程名 | 含义 | master | slave1 | slave2 |
|---|---|---|---|---|
| QuorumPeerMain | ZK进程 | 1 | 1 | 1 |
| NameNode | Hadoop主节点 | 1 | 1 | 0 |
| DataNode | Hadoop数据节点 | 1 | 1 | 1 |
| ResourceManager | Yarn管理进程 | 1 | 1 | 0 |
| NodeManager | Yarn 工作进程 | 1 | 1 | 1 |
| JournalNode | NameNode同步进程 | 1 | 1 | 1 |
| DFSZKFailoverController | NameNode监控进程 | 1 | 1 | 0 |
| Master | Spark主节点 | 1 | 1 | 0 |
| Worker | Spark工作节点 | 1 | 1 | 1 |
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. 后记
大数据技术日新月异,得益于互联网技术加持下的商业和工业模式变革。人们日益增长的对生活生产便捷性、数字化、智能化的需求,催生了数据爆炸式的增长,推动了大数据技术推陈出新。作为新时代的程序开发者,必须掌握一定的大数据基础知识才能适应时代的要求,本文只是一个引子,从自身实践的角度帮助初学者认识大数据,并基于此搭建自己属于自己的开发环境,希望大家能够在此基础上继续钻研有所建树。
Hadoop 及Spark 分布式HA运行环境搭建的更多相关文章
- Hadoop+HBase+ZooKeeper分布式集群环境搭建
一.环境说明 集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下: Hostname IP ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十)安装hadoop2.9.0搭建HA
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
- Spark 1.6.1分布式集群环境搭建
一.软件准备 scala-2.11.8.tgz spark-1.6.1-bin-hadoop2.6.tgz 二.Scala 安装 1.master 机器 (1)下载 scala-2.11.8.tgz, ...
- Hadoop基础教程-运行环境搭建
一.Hadoop是什么 一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoop实现了一个分布式 ...
- Hadoop完全分布式集群环境搭建
1. 在Apache官网下载Hadoop 下载地址:http://hadoop.apache.org/releases.html 选择对应版本的二进制文件进行下载 2.解压配置 以hadoop-2.6 ...
- Hadoop运行环境搭建
Hadoop运行环境搭建 更改为阿里的Centos7的yum源 #下载wget yum -y install wget #echo 下载阿里云的yum源配置 Centos-7.repo wget - ...
- Hadoop详解(02)Hadoop集群运行环境搭建
Hadoop详解(02)Hadoop集群运行环境搭建 虚拟机环境准备 虚拟机节点数:3台 操作系统版本:CentOS-7.6-x86-1810 虚拟机 内存4G,硬盘99G IP地址分配 192.16 ...
- Hadoop系列003-Hadoop运行环境搭建
本人微信公众号,欢迎扫码关注! Hadoop运行环境搭建 1.虚拟机网络模式设置为NAT 2.克隆虚拟机 3.修改为静态ip 4. 修改主机名 5.关闭防火墙 1)查看防火墙开机启动状态 chkcon ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(三)安装spark2.2.1
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
随机推荐
- C温故补缺(七):函数指针与回调函数
函数指针与回调函数 函数指针就是指向函数调用栈地址的指针,定义时须和函数的返回值类型,参数类型相同 如: #include<stdio.h> int max(int x,int y){ r ...
- Linux下用rm误删除文件的三种恢复方法
Linux下用rm误删除文件的三种恢复方法 对于rm,很多人都有惨痛的教训.我也遇到一次,一下午写的程序就被rm掉了,幸好只是一个文件,第二天很快又重新写了一遍.但是很多人可能就不像我这么幸运了.本文 ...
- 将 Vue.js 项目部署至静态网站托管,并开启 Gzip 压缩
摘要:关于使用 Nginx 开启静态网站 Gzip 压缩的教程已经有很多了,但是好像没几个讲怎么在对象存储的静态网站中开启 Gzip 压缩.其实也不复杂,我们一起来看下~ 本文分享自华为云社区< ...
- DHorse的链路追踪
目前,DHorse的链路追踪功能是通过SkyWalking来实现.实现原理是DHorse在部署应用时,通过指定SkyWalking的Agent来收集服务的调用链路信息.下面就来具体看一下DHorse如 ...
- 通过Shell脚本自动安装Hive&JDBC测试&提供CDH5网盘地址
〇.参考地址 1.Linux下编写脚本自动安装hive https://blog.csdn.net/weixin_44911081/article/details/121227024?ops_requ ...
- 【Spark】Day03-Spark SQL:DataFrame、DataSet、sql编程与转换、项目实战(区域热门商品)
一.概述 1.介绍 将Spark SQL转换成RDD,然后提交到集群执行[对比hive] 提供2个编程抽象:DataFrame&DataSet 可以使用SQL和DatasetAPI与Spark ...
- ChatGPT 可以联网了!浏览器插件下载
Twitter 用户 An Qu 开发了一款新的 Chrome 插件帮助 ChatGPT 上网,安装插件以后 ChatGPT 就可以联!网!了! 简单来说开启插件后,他可以从网上搜索信息,并且根据用户 ...
- 如何通过C#合并Word文档?
合并Word文档可以快速地将多份编辑好的文档合在一起,避免复制粘贴时遗漏内容,以及耗费不必要的时间,同时,也方便了人们阅读或者对其进行再次修改.例如,在我们进行团队作业的时候,每个人都会有不同的分工, ...
- 个人电脑公网IPv6配置
一.前言 自己当时以低价买的阿里ECS云服务器马上要过期了,对于搭建个人博客.NAS这样服务器的需求购买ECS服务器成本太高了,刚好家里有台小型的桌面式笔记本,考虑用作服务器,但是公网IPv4的地址实 ...
- ob-myfreemp3
网站 aHR0cDovL3Rvb2wubGl1bWluZ3llLmNuL211c2ljLw== 打开之后随便搜一个歌手的名字或歌曲(这里搜林俊杰) m/api/search,可以看到数据全在这里 全 ...