20171205
基金项目:江阴职业技术学院课题(
17EJS25
)江苏省软件服务外包实训基子课题(
2017PPZYAR19
)
作者简介:刘萍女江苏江阴江阴职业技术学院计算机科学系讲师(江苏 江阴
214400
)
刘 萍 基HadoopSpark数处理台构建研究
计算机应
2018
年
第
3
期
第
39
卷
总第
279
期(然科学)学报
基HadoopSpark
数处理台构建研究
刘 萍
摘 :着数时代更利数需构建数处理台进行数分析Ha⁃
doop 数领域流行数处理台集分布式计算存储理体生态系统Hadoop
MapReduce框架负责分布式计算目前流行Spark框架MapReduce类似分布式计算
台相MapReduceSpark速度更快提供功更丰富Spark计算台身没提供
分布式存储理Spark计算赖Hadoop生态系统中分布式文件系统HDFS集群资源理器
Hadoop YarnSparkHadoop相结合构建数处理台提高算法运行效率处理规模研
究搭建Hadoop集群Spark集群完成数处理台构建搭建集群运行实现单词
词频统计Word Count程序验证数处理台搭建成功
关键词:Spark数处理台Hadoop
中图分类号:TP391 文献标识码:A 文章编号:10087974(2018)03008306
DOI:1013877jcnkicn221284201806021
着
2008
年
9
月
4
日然(
Nature
)杂志刊
登名
Big Data
专辑数时代正
式宣告
现行业充分利
数需构建分布式数处理台通数
分析结果驱动决策数密集型企业带
丰厚利润[
16
]
构建高效分布式数
处理台数研究基础
文结合
数领域流行
Hadoop
框架
Spark
框架
构建高效数处理台
1 HadoopSpark简介
目前数领域流行处理台
Hadoop
集分布式计算存储理体生
态系统规模行数处理算法提供运行
环境
Hadoop
生态系统核心分布式文件系统
(
Hadoop Distributed File System
简 称
HDFS
)
MapReduce
框架
HDFS
海量数提供存储
MapReduce
框架海量数提供行计算
Ha⁃
doop
工作原理:作业分解成更务
数进行分区务实例处理
分区务实例行执行[
7
]
Hadoop
MapReduce
框架局限性
仅支持
Map
Reduce
两种操作处理效率低
Map
中间结果写入磁盘
Reduce
写入
HDFS
·· 832018
年 第
3
期(然科学)学报
MapReduce
间通
HDFS
交换数务调度
启动开销法充分利存
Map
端
Reduce
端均需排序适合迭代计算(机器
学图计算等)交互式处理(数挖掘)流
式处理(点击日志分析)
目前流行
Spark
[
8
]轻量基存计
算开源集群计算框架
Spark
采
MapRe⁃
duce
类 似 编 程 模 型 支 持
Java
Scala
Python
等种编程语言
Spark
中数高度
抽象存储弹性分布式数集(
Resilient
Distributed Dataset
简称
RDD
)中
RDD
支持粗粒
度写操作读操作
RDD
精确条
记录
RDD
作分布式索引
Spark中操作称算子
Spark
仅实现
MapReduce
类
Map
函数算子类
Reduce
函数
算子提供更丰富算子
Filter
Join
Groupby
等
Spark
高效灵活框架时进行批处
理流式计算交互式计算
MapReduce
快
10~
100
倍
Spark RDD
缓存存中次
RDD数集操作结果保存存操
作直接存中读取数省
MapRe⁃
duce
中量磁盘
IO
操作明显提升迭代算
法中常见机器学交互式数挖掘算法
性
Spark
提 供 丰 富
API
代 码 量
MapReduce
少
2~5
倍编程员说易
Spark
身没提供分布式文件系统
Spark
分析赖
Hadoop
分布式文件
系统
HDFS
外部资源调度
Spark
需
Hadoop
生态系统中
Yarn
进行集群资源
理
基存计算
Spark
Hadoop
相互结合
提高算法运行效率处理规模
文创建
Hadoop
集群
Spark
集群完成数处理
台构建
2 Hadoop集群Spark集群搭建
21 准备工作
(
1
)准备
Linux
操作系统机器干
选
Redhat
Ubuntu
CentOS
等
果装
Windows
PC
机
Virtual Box
者
VMWare
搭 建
Linux
虚拟机
文
CentOS 65
搭建三节点
Hadoop
集群
VMWare
安装三台虚拟机先
装完台然该虚拟机基础克隆出外
两台
克隆出机器需进行网络配置
克隆
Linux
虚拟机网卡法网
(
2
)步时间
ping wwwbaiducom
ping通运行命令步时间:
crontab e
0 1 * * * usrsbinntpdate cnpoolntporg
配置时间动步时动时间服务
器步时间
果
ping
通需修改网络相
关配置暂时面种方式:三节点
分运行
date
命令查时间否步
步 三 台 虚 拟 机 运 行 :
date s
20171212 09
:
30
:
00
’直接指定时间某
固定值处
20171212 09
:
30
:
00
’
(
3
)配置虚拟机机名
命令
vi
etcsysconfignetwork
分设置
master
结点
外两节点
slave01
slave02
然修改机名
IP
映射关系
ifconfig
命令查虚
拟机
IP
少
IP
配置机名
应关系三台虚拟机配置
(
4
)配置集群
Hosts
命令
vi etchosts
文
master
节点配置图
1
示
然
通 命 令 :
scp etchosts slave01
:
etc
scp
etchosts slave02
:
etc
三台虚拟机
hosts
文
件保持致
图1 master节点配置
(
5
)设置
SSH
免密码登录
设置目:启
动
Hadoop
集群方便需设置
Master
节点
Slave
节点免密码登录
Master
节点执
行命令
sshkeygen t rsa
结束生成两文件
id_rsa
(私钥)
id_rsapub
(公钥)公钥命令
sshcopyid {
机器
hostname}
拷贝
免密登录目标机器
文命令完成
免 密 登 录 :
sshcopyid master
sshcopyid
·· 84刘 萍 基HadoopSpark数处理台构建研究
slave01
sshcopyid slave02(
6
)关闭服务器防火墙
命令
service
iptables status
查防火墙状态
防火墙没关
闭运行命令
service iptables stop
关闭防火墙接
着运行命令
chkconfig iptables off
防火墙开
机动启动
查防火墙状态应
该:
iptables
:
Firewall is not running(
7
)安装
JDK
配置环境变量等
虚拟
机安装
Hadoop
Java
开发
Hadoop
编译需
JDK命令
mkdirusrjava
创建文件夹然
jdk
安装包传该文件夹中命令
tarxzvf
jdk170_71Cusrjava
解压缩
jdk
安装包
usr
java
然配置环境变量
22 Hadoop集群搭建
Hadoop
安装方式包括三种:
(
1
) 动 安 装 部 署
开 源
Apache
Ambari
支持
Apache Hadoop
集群理监
控
米
Minos
Minos
Python
语言开
发
Hadoop
集群部署监控
开发
理米公司
Hadoop
HBase
ZooKeeper
集群等
开源:
Cloudera Manager
微软
Autopi⁃
lot
谷歌
Borg
腾讯公司
Torca
等
(
2
)
RPM
包安装部署
该方式
Apache
Hadoop
原始版提供基原始版实现
发行版
HDP
CDH
提供
HDP
Hortonworks
公
司发行版
CDH
Cloudera
公司
Hadoop
发
行版生产环境商公司开源发行版
(
HDP
CDH
)较方便
Hadoop
生
态系统中软件包起户会面
版选择问题拥完善文档方
进行独特优化
(
3
)
JAR
包安装部署版均提供
方式安装部署较灵活安装部署者求
较高需配置适合数研究阶
段
文采
Apache Hadoop 261 JAR
包安装部
署果采
HDP
CDH
版仿操作安
装部署方式模样
root
户权限误操作容易造成
损失
Hadoop
某功允许
root
户操
作
非
root
户安装
Hadoop
面详细
介绍三节点
Hadoop
集群搭建[
9
]
(
1
)
Hadoop
安装包传虚拟机户根
目录
(
2
)进 入 根 目 录 命 令
tar xzvf ha⁃
doop261targz
解压缩
Hadoop
安装包
(
3
)配置环境变量命令
vi ~bash_pro⁃
file
然 该 文 件 中 增 加
export HADOOP_
HOMEhomezkpkhadoop261
export PATH
HADOOP_HOMEbin
:
HADOOP_HOMEsbin
:
PATH
命令
source~bash_profile
配置
环境变量生效
运行
Hadoop version
命令显示版
:
Hadoop 261
证明变量已生效
(
4
)修改
Hadoop
配置文件
配置文件存放
homezkpkhadoop261etchadoop
路径需配
置路径六文件分
hadoopenvsh
coresitexml
hdfssitexml
mapredsitexml
yarnsitexml
slaves
面配置文件具体
配置作详细介绍
配 置 文 件
hadoopenvsh
JA⁃
VA_HOME
变量进行设置具体设置:
export
JAVA_HOMEusrjavajdk170_71配置文件
coresitexml
面
master
指
节点机名
:
master
:
9000
配置文件
hdfssitexml
前两
slave节点副数配置成
2
·· 852018
年 第
3
期(然科学)学报
配置文件
mapredsitexml
具体示:
配置文件
yarnsitexml
具体示:
:
18040
:
18030
:
18025
:
18141
:
18088
配置
slaves
slaves
文件里面记录集群里
DataNode
机名
vi slaves
命令具体
配置容:
slave01 slave02(
5
)
master
已配置完
Hadoop
文件
夹拷贝
slave01
slave02
户根目录
拷贝
时文
master
slave01
slave02
户
zkpk
master
拷 贝
slave01
slave02时命令:
scp r ~hadoop261slave01
:
~
scpr~hadoop261slave02
:
~
master
slave01
slave02
户 名 命 令:
scp r ~hadoop261zkpk@slave01
:
~
scp r ~
hadoop261zkpk@slave02
:
~
指定拷贝
zkpk
户
zkpk
登录
slave01
slave02
户名
(
6
) 命 令 :
scp ~bash_profile zk⁃
pk@slave01
:
~
scp ~bash_profile zk⁃
pk@slave02
:
~
master
~bash_profile
文件
拷贝两虚拟机
命令
source ~
bash_profile
分
slave01
slave02
环境
变量生效
(
7
)分
master
slave01
slave02
执行命
令
mkdirphomezkpkhadoopdata
创建目录
(
8
)格式化
namenode
master
节点运行
hdfs namenode
–
format(
9
)启 动
Hadoop
集 群
master
运 行
startallsh验证
Hadoop
集群否搭建成功通
三种方式:
master
执行:
jps
命令会进程:
nameno⁃
de
secondarynamenode
resourcemanager
slave01
02
执行:
jps
命令进程:
datanode
nodemanager
表示
Hadoop
集群启动成功
浏 览 器 访 问
master
:
18088
master
:
50070
检查
Yarn
HDFS
否正常出现正常
界面
说明
Hadoop
集群启动成功
执行安装包里示例程序:
cd hadoop261sharehadoopmapreducehadoop jar hadoopma⁃
preduceexamples261jar pi 10 10
输出:
Estimated value
of Pi is 320000000000000000000
果
3
验证步骤没问题说明
集群正常启动
23 Spark集群搭建
(
1
)传
Spark161binhadoop26tgz
解
压安装包
Linux
命令
tar zxvf spark
161binhadoop26tgz C homezkpk
解压安装
包指定位置
(
2
)命令进入
Spark
安装目录进行配置
命 令
cd conf
进 入
conf
目 录 命 令 :
mv
sparkenvshtemplate sparkenvsh
进行重命名
然修改文件命令:
vi sparkenvsh
开配置
文 件该配置文件中添加配置 中
master
节点机名
·· 86刘 萍 基HadoopSpark数处理台构建研究
export JAVA_HOMEusrjavajdk170_71
export SPARK_MASTER_IPmaster
export SPARK_MASTER_PORT7077
然保存退出
接重命名修改
slaves
template
文件操作命令:
mv slavestemplate slaves
vi slaves该文件中添加子节点
worker
节点
位置文两节点机名分
slave01
slave02
具体配置:
slave01
slave02保存退出
配置
Spark
拷贝
节点命令示:
scp r spark161binhadoop26 zkpk@slave01
:
~
scp r spark161binhadoop26 zkpk@slave02
:
~
(
3
)启动
Spark
集群
进入
homezkpkspark161binhadoop26
sbin
目录运行:
startallsh分三台节点运行
jps
分进程
master
worker
worker浏览器中查
master
:
8080
出现图
2
示界面说明
Spark
安装配置成功
图2 Spark运行界面
3 验证Hadoop集群Spark集群
Word Count
数编程入门程序实现
输入文件中单词出现次数统计应
海量文词频检索
实现单词词频统计
Word Count
算法[
10
]种典型分组聚集算法
该
算法首先文分词形成键值中间值键
单词身值
1
然数进行聚集具
相键值进行加输出结果
文
Word Count
验证搭建
Hadoop
集群
Spark集群否成功
该算法数集节选网络
说
Spark
需
HDFS
数初始化
Spark
RDD
然
RDD
中 字 符 串 分 词 生 成 新
RDD
新生成
RDD
转化
Key Value RDD
进
行行计算新生成
Key Value RDD
进行规
约然出结果
采
Scala
语言
Eclipse
实
现具体代码:
object WordCount {
def main
(
args
:
Array
[
String
])
{
val conf new SparkConf
()
setAppName
(
WordCount
)
val sc new SparkContext
(
conf
)
val lines
:
RDD
[
String
]
sctextFile
(
args
(
0
))
val words
:
RDD
[
String
]
linesflatMap
(
_split
(
))
val wordAndOne
:
RDD
[(
String
Int
)]
wordsmap
((
_
1
))
val counts
:
RDD
[(
String
Int
)]
wordAndOnereduceByKey
(
_ + _
)
val sortedCounts
:
RDD
[(
String
Int
)]
countssortBy
(
__2
false
)
sortedCountssaveAsTextFile
(
args
(
1
))
scstop
()
}
}
该代码包集群运行
运行程:
①
传文件
HDFS
目录
HDFS
创建输入文件夹
hadoop fs mkdir p word⁃
countinput
②
传文件集群
input
目录
ha⁃
doop fs put ~file* wordcountinput
查集群文
件目录
hadoop fs ls wordcountinput
③Word Count
程序包成缀名
jar
压
缩文件
WordCountjar
进入压缩文件文件
夹里
file
输入文件
output
输出
文件夹例说明
Spark
程序运行命令执行
sparksubmit master yanrclient class WordCount ~spark
WordCountjar
hdfs
:
master
:
9000wordcountinputfile
hdfs
:
master
:
9000wordcountsparkoutput
命令查运行结果
hadoop fs ls
wordcountsparkoutput
部分结果图
3
示
·· 872018
年 第
3
期(然科学)学报
图3 部分运行结果
4 总结
Hadoop
MapReduce
Spark
分布式
计算框架
Spark
框架批处理流式计算交互
式计算等方面相
Hadoop MapReduce
具优
越性
Spark
框架身没提供分布式文件
系统
Spark
分析赖
Hadoop
中分布
式文件系统
HDFS
Spark
需
Hadoop
生
态系统中
Yarn
进行资源理
Hadoop
Spark
相结合构建高效数处理
台
文搭建
Hadoop
集群
Spark
集群完成
数处理台构建
通集群运行
实现单词词频统计
Word Count
程序验证
数处理台搭建成功
目前高校陆续开
设数专业文初建数分析专业具
定参考意义未研究数分析算法
搭建数处理台应相关算法解
决实际问题
参考文献:
[
1
]清李宁罗文娟
数机器学算法综
述[
J
]
模式识工智
2014
27
(
4
):
327336
[
2
]梁吉业
数挖掘面挑战思考[
J
]
计算
机科学
2016
43
(
7
):
12
[
3
]米允龙米春桥刘文奇
海量数挖掘程相关
技术研究进展[
J
]
计算机科学探索
2015
9
(
6
):
641659
[
4
]黄宜华
数机器学系统研究进展[
J
]
数
2015
1
(
1
):
2847
[
5
]
Landset S
Khoshgoftaar T M
Richter A N A sur⁃
vey of open source tools for machine learning with big data
in the Hadoop ecosystem
[
J
]
Journal of Big Data
2015
2
(
1
):
24
[
6
]
Shan S Big data classification
:
problems and chal⁃
lenges in network intrusion prediction with machine learning
[
J
]
ACM Sigmetrics Performance Evaluation Review
2014
41
(
4
):
7073
[
7
]宋杰孙宗哲毛克明等
MapReduce
数处
理台算法研究进展[
J
]
软件学报
2017
28
(
3
):
514543
[
8
]
Zaharia M
Chowdhury M
Franklin MJ
etal Spark
:
Cluster computing with working sets
[
C
]
Usenix Confer⁃
ence on Hot Topics in Cloud ComputingUS ENIX Associa⁃
tion
2010
[
9
]安建瑞
基
MapReduce
户移动轨迹序列模
式挖掘算法研究[
D
]
山东:山东理工学
2016
[
10
]
Issa JA Performance evaluation and estimation
model using regression method for hadoop Word Count
[
J
]
IEEE Access
2015
3
:
27842793
(责编辑:王前)
Construction Research of Big Data Processing Platform
Based on Hadoop and Spark
LIU Ping(Department of computer ScienceJiangyin Polytechnic CollegeJiangyinJiangsu 214400
China)
Abstract:
This research builds the Hadoop cluster and the Spark cluster
and completes the construction of
the large data processing platform Finally
the Word Count program for word frequency statistics
is run on the built cluster
which verifies the success of the large data processing platform
Key Words:
Spark
Big data processing platform
Hadoop
·· 88
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档