1摘要

利用虚拟机实现Spark环境搭建,理解掌握大数据分析集群工作原理。

2题目解析

面对海量的各种来源的数据,如何对这些零散的数据进行有效的分析,得到有价值的信息一直是大数据领域研究的热点问题。大数据分析处理平台就是整合当前主流的各种具有不同侧重点的大数据处理分析框架和工具,实现对数据的挖掘和分析,一个大数据分析平台涉及到的组件众多,如何将其有机地结合起来,完成海量数据的挖掘是一项复杂的工作。
在搭建大数据分析平台之前,要先明确业务需求场景以及用户的需求,通过大数据分析平台,想要得到哪些有价值的信息,需要接入的数据有哪些,明确基于场景业务需求的大数据平台要具备的基本的功能,来决定平台搭建过程中使用的大数据处理工具和框架。
1)操作系统的选择。硬件资源有限,可以在个人电脑上安装两台及以上数量的虚拟机作为底层构建平台。
2)搭建Hadoop集群。Hadoop作为一个开发和运行处理大规模数据的软件平台,实现了在大量的廉价计算机组成的集群红对海量数据进行分布式计算。
3)安装和配置spark。Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用分布式并行计算框架。

3算法原理

3.1 Spark简介
Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用分布式并行计算框架。
Spark 拥有Hadoop MapReduce所具有的优点,但和MapReduce的最大不同之处在于,Spark是基于内存的迭代式计算一一Spark的Job处理的中间输出结果可以保存在内存中,从而不再需要读写HDFS。除此之外,一个MapReduce 在计算过程中只有map和reduce两个阶段,处理之后就结束了,而在Spark的计算模型中,可以分为n阶段,因为它的内存是迭代式的,我们在处理完一个阶段以后,可以继续往下处理很多个阶段,而不只是两个阶段。
Spark采用了Scala来编写,在函数表达上Scala有天然的优势,因此在表达复杂的机器学习算法能力方面比其他语言更强且简单易懂。提供各种操作函数来建立起RDD的DAG计算模型。把每一个操作都看成构建一个RDD来对待,而RDD则表示的是分布在多台机器上的数据集合,并且可以带上各种操作函数。
因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。其不仅实现了MapReduce的算子map函数和reduce函数及计算模型,还提供更为丰富的算子,如filter、join、groupByKey等。它是一个用来实现快速而通用的集群计算的平台。
3.2 Spark的优点
1)先进架构。Spark采用Scala语言编写,底层采用了actor model的akka作为通讯框架,代码十分简洁高效;基于DAG图的执行引擎,减少多次计算之间中间结果写到Hdfs的开销;建立在统一抽象的RDD(分布式内存抽象)之上,使得它可以以基本一致的方式应对不同的大数据处理场景。
2)高效。提供Cache机制来支持需要反复迭代的计算或者多次数据共享,减少数据读取的IO开销;与Hadoop的MapReduce相比,Spark基于内存的运算比MR要快100倍,而基于硬盘的运算也要快10倍。
3)易用。Spark提供广泛的数据集操作类型(20+种),不像Hadoop只提供了Map和Reduce两种操作;Spark支持Java,Python和Scala API,支持交互式的Python和Scala的shell。
4)提供整体解决方案。以其RDD模型的强大表现能力,逐渐形成了一套自己的生态圈,提供了full-stack的解决方案;主要包括Spark内存中批处理,Spark SQL交互式查询,Spark Streaming流式计算, GraphX和MLlib提供的常用图计算和机器学习算法。
5)可与Hadoop良好结合。Spark可以使用YARN作为它的集群管理器;读取HDFS,HBase等一切Hadoop的数据。
3.3 Spark整体框架
Spark整体框架如图:

Spark提供了多种高级工具:Shark SQL应用于即席查询(Ad-hoc query)、Spark Streaming应用于流式计算、MLlib应用于机器学习、GraphX应用于图处理。
Spark可以基于自带的standalone集群管理器独立运行,也可以部署在Apache Mesos 和 Hadoop YARN 等集群管理器上运行。
Spark可以访问存储在HDFS、Hbase、Cassandra、Amazon S3、本地文件系统等等上的数据,Spark支持文本文件,序列文件,以及任何Hadoop的InputFormat。

4实验分析

4.1环境条件
虚拟系统环境 Ubuntu64位
JDK版本 Jdk-18.0.1.1
Hadoop版本 Hadoop2.7.7
Scala版本 scala3-3.1.2
Spark版本 spark-3.1.3-bin-hadoop2.7
集群拓扑环境 两台主机
master IP:192.168.154.132
Slave IP:192.168.154.133

利用VMware安装两台Ubuntu x64的虚拟机。实验拓扑如下图所示:

4.2评价方法
搭建Spark大数据分析平台。
1)安装VMware。安装后打开能运行即安装成功。
2)在VMware上安装两台Ubuntu虚拟机。安装好后分别运行测试。
3)在两台虚拟机上配置SSH。然后ssh master,ssh slave连接成功即可。
4)安装配置JDK。配置完成后,运行 java -version能出现正确结果。
5)安装配置Hadoop。配置完成后,Hadoop能正确启动即可。
6)安装配置Scala。配置过程和JDK类似,安装完成即可。
7)安装配置Spark。配置完成后,启动Spark平台,能正常工作。
4.3实验过程
4.3.1 安装两台虚拟机

4.3.2 运行两台虚拟机,分别启动root用户
sudo passwd root #之后按提示输入两次密码,即设置成功。
su root #输入密码,进入root用户
先修改镜像源,如下图,不然执行ifconfig会报错。

apt-get install vim,自带的vi编译器很难用,vim可用性更好。
sudo vi /etc/hostname #修改机器名,一个叫master,一个叫slave。(修改后重启生效)
Sudo vi /etc/hosts #修改hosts配置,两个一样
127.0.0.1 localhost
192.168.154.132 master
192.168.154.133 slave
4.3.3 配置ssh
sudo useradd -m hadoop -s /bin/bash #创建Hadoop新用户
sudo passwd hadoop #设置密码,输入两次即可
sudo adduser hadoop sudo #给hadoop用户赋权限
apt-get install ssh #下载安装ssh
ssh master #先执行一次,不然可能没有~/.ssh路径。之后需要三次密码,随便输都行,反正都是错的
cd ~/.ssh #进入该目录
sudo ssh-keygen -t rsa #生成公钥
cat id_rsa.pub >> ~/.ssh/authorized_keys#在master节点执行
执行后即可无密码连接 ssh master
scp id_rsa.pub hadoop@slave:/home/hadoop/ #进入公钥的目录下,将公钥传输到salve节点
在salve节点执行
cd /home/hadoop #进入id_rsa.pub的路径下
cat id_rsa.pub >> ~/.ssh/authorized_keys #将公钥添加到文件中
之后在master节点执行
ssh slave #即可无密码连接到slave,ssh配置完成
4.3.4 安装JDK
cd /usr
mkdir java #创建文件夹,存放jdk
sudo tar -zxvf jdk.xxx -C /usr/java #将jdk压缩包解压到/usr/java
vi /etc/profile #配置文件,添加以下信息(教程中给的内容有问题,会报错)
export JAVA_HOME=/usr/java/jdk-18.0.1.1 #这里的为自己安装的版本信息
export CLASSPATH= J A V A H O M E / l i b / e x p o r t P A T H = JAVA_HOME/lib/ export PATH= JAVAH​OME/lib/exportPATH=PATH:$JAVA_HOME/bin
source /etc/profile #更新配置文件
java -version #效果如下
sudo chmod 777 /usr/java #设置权限,在slave节点执行
Sudo scp -r /usr/java/jdk.xxx hadoop@slave:/usr/java #传输文件,避免重复配置
在slave节点一样修改配置文件/etc/profile,修改完,jdk配置完成
(这里需要注意,后续要安装spark的话,就把jdk版本降到11一下,不然spark不支持,会一直报错)

4.3.5 安装hadoop
sudo tar hadoop.xxx -C /usr/local #将Hadoop压缩包解压到/usr/local
sudo /usr/local/hadoop.xxx /usr/local/hadoop #文件夹改名
sudo chown -R hadoop:hadoop /usr/local/hadoop #修改文件权限
/usr/local/hadoop/bin/hadoop #测试Hadoop是否可用
cd /usr/local/hadoop/bin/hadoop #进入当前路径,配置后续文件
gedit salves #删除localhost,添加master和slave,这是Hadoop的工作文件,必须将两个及以上的集群机器名都写上。
以下是修改配置文件操作:
vi core-site.xml

fs.defaultFS
hdfs://master:9000

hadoop.tmp.dir
file:/usr/local/hadoop/tmp
Abasefor other temporary directories.

hadoop.proxyuser.spark.hosts

hadoop.proxyuser.spark.groups

vi hdfs-site.xml

dfs.namenode.secondary.http-address
master:50090

dfs.namenode.name.dir
file:/usr/local/hadoop/tmp/dfs/name

dfs.datanode.data.dir
file:/usr/local/hadoop/tmp/dfs/data

dfs.replication
1

cp mapred-site.xml.templete mapred-site.xml
vi mapred-site.xml

mapreduce.framework.name
yarn

cp yarn-site.xml.template yarn-site.xml
vi yarn-site.xml

yarn.resourcemanager.hostname
master

yarn.nodemanager.aux-services
mapreduce_shuffle

配置好之后,执行
cd /usr/local
sudo tar -zxf ./hadoop.tar.gz ./hadoop
scp ./hadoop.tar.gz hadoop@salve:/home/hadoop
在slave上执行
sudo tar -zxvf /home/hadoop/hadoop.tar.gz -C /usr/local
sudo chown -R hadoop:hadoop /usr/local/hadoop
4.3.6 启动hadoop
在master节点执行
cd /usr/local/hadoop
bin/hdfs namenode -format #第一次启动需要初始化
sbin/start-dfs.sh #启动服务
sbin/start-yarn.sh

启动成功后如图:

sbin/stop-dfs.sh #结束服务
sbin/stop-yarn.sh
或者sbin/stop-all.sh 直接结束所有服务

4.3.7 配置scala
步骤与配置jdk相同,换一下存储文件即可。
下载安装包并解压到/usr/scala
vi /etc/profile #修改配置文件
export SCALA_HOME=/usr/scala/scala3-3.1.2
export PATH= S C A L A H O M E / b i n : {SCALA_HOME}/bin: SCALAH​OME/bin:PATH
source /etc/profile #更新配置文件,使其生效

4.3.8 配置spark
将压缩包解压到/home/hadoop路径下
vi /etc/profile #修改配置文件
export SPARK_HOME=/home/hadoop/spark-3.1.3-bin-hadoop2.7
export PATH= P A T H : PATH: PATH:SPARK_HOME/bin
export SPARK_EXAMPLES_JAR=$SPARK_HOME/examples/jars/spark-examples_2.12-3.1.3.jar
source /etc/profile #使配置生效
cd /home/hadoop/spark.xxx/conf
cp spark-env.sh.template spark-env.sh
vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk-18.0.1.1
export SCALA_HOME=/usr/scala/scala3-3.1.2
export SPARK_WORKER_MEMORY=2g
export HADOOP_CONF_DIR=/home/hadoop/hadoop/
注意:现在安装的spark安装包内,没有salves文件,应该执行
cp workers.template workers
(workers是spark的工作机器文件,配置好机器后将机器名写入workers中,启动spark就可以看到网页上有几个worker了,配置正确的话)
vi workers
写入master和slave
启动spark
sbin/start-all.sh
停止服务
sbin/stop-all.sh
之后再停止Hadoop服务

4.4结果分析
Cd /home/hadoop/spark.xxx #进入spark工作路径下
Sbin/start-all.sh
结果如图:

5问题与讨论

1.开始修改机器名时,修改完成后须重启虚拟机才能看到修改效果,不然一直显示机器名位ubuntu64。
2.修改hosts配置文件时,第一次执行ifconfig显示的是192.168.154.128和192.168.154.129,后面过几天再次查询的时候就变成了192.168.154.130和192.168.154.131,得再次修改hosts文件。
3.配置ssh生成密钥时,需要执行sudo ssh-keygen -t rsa,给他一个管理员权限,不然会显示生成文件失败。如图:

4.配置JDK的时候,下载的压缩包配置完成都只显示为openJDK,为JDK的阉割版本,后更换最新的ubuntu镜像文件,重新配置,即可。
5.之前配置环境的时候,有一些奇怪的错误,导致后面的spark2始终启动失败,可能是之前配置的路径出错了,所有就在相同路径下删除spark2文件夹,新建spark3,再重新安装,就成功了。
6.配置spark的文件的时候,路径中找不到slaves文件,版本更新后,相同的功能文件叫workers。

附录

文件的相关的安装包的链接如下
链接:https://pan.baidu.com/s/19MJzflroLU5jxNtoNdbckQ
提取码:gasf

Spark大数据分析平台搭建相关推荐

  1. 超详攻略!Databricks 数据洞察 - 企业级全托管 Spark 大数据分析平台及案例分析

    简介: 5分钟读懂 Databricks 数据洞察 ~ 更多详细信息可登录 Databricks 数据洞察 产品链接:https://www.aliyun.com/product/bigdata/sp ...

  2. 大数据分析平台搭建方式有哪些

    随着大数据时代的到来,数据价值的概念逐渐深入人心,许多企业开始搭建自己的大数据分析平台,以便在数据洪流中把握行业未来的发展方向.做任何事情之前,首先要设定目标和思路,然后根据确定的目标.思路和实际情况 ...

  3. 【转】使用Apache Kylin搭建企业级开源大数据分析平台

    http://www.thebigdata.cn/JieJueFangAn/30143.html 本篇文章整理自史少锋4月23日在『1024大数据技术峰会』上的分享实录:使用Apache Kylin搭 ...

  4. 基于Hadoop和Spark体系的大数据分析平台构建

    谢谢分享! 转载:http://www.sohu.com/a/249271561_481409 随着大数据.人工智能等技术的快速发展,企业对大数据平台的需求越来越强烈,通过大数据分析技术为企业提供经营 ...

  5. 如何搭建大数据分析平台

    大数据分析平台可以真正帮用户解决井底之蛙,一叶障目的问题,用户通过大数据分析平台可以获得全面的数据信息,发现事物间的关联性,多角度去看待问题,辅助我们做出正确的决策,实现数据价值最大化. 搭建企业的大 ...

  6. 搭建大数据分析平台的必要性

    大数据时代,几乎每一个企业都对数据分析平台趋之若鹜,尤其是在今年疫情爆发之后,更多的企业主意识到了数据所具有的的极大商业价值,以及其作为支撑企业信息智能化的无形资产. 通常来说,企业内部的运营和业务系 ...

  7. 思迈特软件Smartbi:大数据分析平台的搭建和BI平台的区别

    ​大数据是当下朝阳方向,尤其是国家政策在往大数据行业倾斜,各行各业都在进行数据化转型,那就讲讲大数据分析平台是如何搭建的以及和BI平台有什么区别. 一.BI是什么 BI(BusinessIntelli ...

  8. 大数据分析平台如何搭建

    在搭建数据分析平台之前,要先明确业务需求场景以及用户的需求,通过大数据分析平台,想要得到哪些有价值的信息,需要接入的数据有哪些,明确基于场景业务需求的数据平台要具备的基本的功能,从下至上可分为四个层次 ...

  9. CDH大数据平台搭建之SPARK集群搭建

    CDH大数据平台搭建之SPARK集群搭建 一.安装规划 二.下载 三.安装及配置 1.解压 2.修改配置文件 四.启动 五.JPS检查节点 一.安装规划 参考CHD大数据平台搭建之集群规划 二.下载 ...

最新文章

  1. Ubuntu下装QQ2014(http://my.oschina.net/oscfox/blog/315951)
  2. .NET Core VS Code 环境配置
  3. 竹节纱疵的成因及预防措施
  4. 【Excel】多条件查找
  5. paip.提升效率----更改数组LIST对象值for与FOREACH
  6. 迅为iTOP-4418开发板烧写 Android 7.1 镜像
  7. vue将文件/图片/视频批量打包成压缩包,并进行下载
  8. 世界道路协会(PIARC)道路安全手册(RSM)
  9. 透明图片怎么发给别人_新手微商没生意咋办?微商怎么做如何推广?不放弃微信就是等死!...
  10. Tiled有java版本吗_【Cocos2d-X开发学习笔记】开发工具之Tiled地图编辑器的使用
  11. DayDayUp:2018年末施瓦辛格热血演讲《关于成功·成功的真谛》—YouTuBe播放量超1个亿!—学习英文
  12. 如何使用Kumo Java Word Cloud?
  13. 明天就是七夕了,用Python做了个可能会被女朋友打死的礼物!
  14. 2019春第一周编程总结
  15. 来自水库论坛欧成效2014年的总结
  16. 大学计算机系三年论文6000字,计算机论文6000字范文_计算机论文_计算机应用论文...
  17. 微信聊天语音怎么转发?轻松易懂,快速学会
  18. 彩色星球科技冠名著名钢琴艺术家吴牧野世界巡演《肖邦圆舞曲全集》长沙站演出...
  19. 小行星轨道 matlab,小行星轨道问题的建模与求解数学建模论文.doc
  20. DES密钥的校验位(parity bit)

热门文章

  1. Web项目实战 | 购物系统v2.0 | 开发记录(九)Controller层返回数据的封装 | 商品批量操作 | 五表联立实现商品搜索
  2. WPScan基本使用(wordpress)
  3. 嵌入式,单片机,ARM,Android底层开发之间的关系
  4. 【云原生】基于Kubernetes开发的阿里云ACK之可观测监控
  5. 【随风丶逆风】2021年终总结
  6. 疫情降低财务和社交幸福感;洲际酒店集团发起全球清洁安全承诺 | 美通企业日报...
  7. 金山实习日记·第二天(2008-07-15)
  8. AM系列微机保护测控装置 安科瑞 张宇洁
  9. HOG人体检测原理详解
  10. android基础开关机流程