Spark 编译

首先什么是Spark
在这里插入图片描述
上面是官网的截图,第一句话就说了:spark是一个应用于大数据的分析引擎
因此,spark是一个用于数据处理的执行引擎
速度
上面图中很明确的体现了Spark的速度
官方给出的速度是Hadoop的100倍,当然,这个数据并不是绝对的,但是在绝大部分情况下的确是Spark要比Hadoop快,而原理上来讲其实主要是Hadoop的计算是由MapReduce担当的,而MapReduce是分为map和reduce两部分进行的,其中每一个map和reduce又都需要task进程,而进程意味着开启与销毁等等上的性能问题。并且Hadoop计算过程中其实会产生很多中间数据,类似于WC的XXX,1这种也加大了负担。
对比来看Spark,Spark是基于线程的,理论上会比MapReduce好用,并且Spark基于内存的计算也使得其拜托了磁盘的束缚(其实就是没有中间数据)
易用性
Spark可以快速的使用JAVA,Scala,Python,R甚至是用SQL来进行编程,比MapReduce的编程效率要高很多
通用性
Spark结合了SparkSQL,SparkStreaming,GraphX,MILB,因此根据不同需求你可以选择不同的组件进行处理
跑在任何地方
Spark可以跑在各种地方:yarn,Mesos,K8S,standalone甚至是在云上,而且可以访问各种数据源(当你会使用以后sqoop就可以不用了)

编译

官网其实给出了几个预编译版本:
在这里插入图片描述
但是并不建议使用,因为在正常的工作环境下很有可能需要你针对某个模块去进行修改编译,因此,学会自己编译是很有必要的

注意:我自己用的是Hadoop2.6.0

下载
下载源码
在上边选择source code也行,选择github下载也可以
在Git clone下用git branch -v来查看版本,git checkout指定一个版本。
下载完成以后根据官方文档进行编译 点此查看
最开始我们可以看到2.4.0的要求
The Maven-based build is the build of reference for Apache Spark. Building Spark using Maven requires Maven 3.5.4 and Java 8. Note that support for Java 7 was removed as of Spark 2.2.0.
也就是我们要用maven的版本在 3.5.4以上,JDK要1.8以上
在这里插入图片描述
解压以后我们发现里边会自带一个mvn,但是我建议还是使用自己下载的mvn进行编译,毕竟自己的用着还是舒服(以后开发好多都需要用到mvn)
这里我用的自己的mvn 3.6.0
这是官网给出的编译代码:

./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes

很长一段,拆开来看我们可以看见他使用的是dev下边的脚本,我们去脚本里看看
在这里插入图片描述
返回来看代码--name这个名字代表了我们编译完成后最终jar包的名字
而后边的--pip代表的是python,--r是R语言,--tgz是是否打成tgz的包
再后边的-PXXX分别代表的是pom.xml文件中的Hadoop,hive等等一系列的东西
在这里插入图片描述但是我们发现Hadoop默认版本是2.7,但是我一直用的都是2.6怎么办
这样我们就需要另外一个参数将他传进去-Dhadoop.version=2.6.0-cdh5.7.0这样我们就表明了Hadoop的版本是CDH5.7的2.6.0了
在这里插入图片描述
也就是在这里指定了Hadoop的版本
但是我们又发现里边没有cdh的版本怎么办,那么我们只能去指定mvn曾库添加cloudera的仓库
记得放在第一行,他会默认尝试这个仓库的

<repository>
	<id>cloudera</id>
	<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>

最后我们的代码就变成了

./dev/make-distribution.sh --name 2.6.0-cdh5.7.0 --tgz -Phive -Phive-thriftserver -Pyarn -Dhadoop.version=2.6.0-cdh5.7.0

这样就可以运行了
但是我们发现他很快就会卡住,等一段时间就可以继续了,其实,那是它再检查环境变量,如果想让他更快我们可以把这些手动配置进去
在make-distribution.sh脚本中添加

VERSION=2.4.0
SCALA_VERSION=2.11
SPARK_HADOOP_VERSION=2.6.0-cdh5.7.0
SPARK_HIVE=1

注释掉下边这些
在这里插入图片描述
成功以后会生成一个spark-2.4.0-bin-2.6.0-cdh5.7.0.tgz这个文件,我们可以发现他的命名组成,这里不过多赘述

IDEA添加Spark依赖
我们编程不可能一直都在Linux系统中,所以我们会用到IDEA,pom.xml中添加
在这里插入图片描述这些依赖就可以用了 ,PS:我这里的版本是调用的,方便一些,类似于上边编译的pom一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值