Spark环境搭建
Posted yanceyy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark环境搭建相关的知识,希望对你有一定的参考价值。
Spark官网和下载地址
官网
http://spark.apache.org/
spark-2.2.0源码下载链接
http://archive.apache.org/dist/spark/spark-2.2.0/spark-2.2.0.tgz
spark-2.2.0安装包下载连接
http://archive.apache.org/dist/spark/spark-2.2.0/spark-2.2.0-bin-hadoop2.6.tgz
官方文档
进入官网:http://spark.apache.org/
官网查看编译步骤如下图所示,也可以直接访问http://spark.apache.org/docs/latest/building-spark.html
编译前置条件
自Spark 2.2.0起已删除了对Java 7,Python 2.6和2.6.5之前的旧Hadoop版本的支持。
从2.3.0版本开始,不再支持Scala 2.10。
从Spark 2.4.1开始不支持Scala 2.11,它将在Spark 3.0中删除。
这里以2.2.0为例子
编译环境
jdk8
Scala 2.11.8
mvn 3.5.4
由于maven中没有cdh版本的hadoop版本所以增加cloudera仓库,在spark目录下的pom.xml文件repositories下增加
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
</repository>
设置maven内存
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
编译
mvm编译命令
./build/mvn -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.7.0 -DskipTests clean package
#推荐使用
./dev/make-distribution.sh --name 2.6.0-cdh5.7.0 --tgz -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.7.0
第二个命令,.sh文件中默认把maven内存设置了,跳过测试也默认加上了
编译完成后文件名:
spark-$VERSION-bin-$NAME.tgz
spark-2.2.0-bin-2.6.0-cdh5.7.0.tgz
Spark Local模式环境搭建
这里由于编译比较慢,编译到一半就没进行下去,用的是官网的安装包,下载地址如下:
http://archive.apache.org/dist/spark/spark-2.2.0/spark-2.2.0-bin-hadoop2.6.tgz
解压安装包
tar -zxvf spark-2.2.0-bin-hadoop2.6.tgz -C ~/app/
将spark配置到环境变量
$ vim ~/.bash_profile
export SPARK_HOME=/home/hadoop/app/spark-2.2.0-bin-hadoop2.6
export PATH=$SPARK_HOME/bin:$PATH
$ source ~/.bash_profile
$ echo $SPARK_HOME
启动local模式
$ spark-shell --master local[2]
local[2] 2是指定多少个线程,不加默认单线程
监控页面
http://192.168.175.128:4040
Spark Standalong模式环境搭建
Spark Standalong模式的架构和Hadoop HDFS/YARN类似,
1 master + n worker
修改配置文件
spark-env.sh
$ cd $SPARK_HOME/conf
$ cp spark-env.sh.template spark-env.sh
$ vim spark-env.sh
# master 主机地址
SPARK_MASTER_HOST=hadoop000
# 每个worker节点所占有的CPU核数
SPARK_WORKER_CORES=2
# 每个worker节点能够最大分配给exectors的内存大小
SPARK_WORKER_MEMORY=2g
# 每台机器上开启的worker节点数
SPARK_WORKER_INSTANCES=1
spark-config.sh
$ cd $SPARK_HOME/sbin
$ vim spark-config.sh
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_201
在sbin目录下的spark-config.sh文件下未添加JAVA_HOME的索引.
启动master
$ cd $SPARK_HOME/sbin
$ ./start-all.sh
监控页面
http://192.168.175.128:8081/
多台机器可以修改slaves配置文件
hadoop0:master
hadoop1:worker
hadoop2:worker
slaver:
hadoop2
hadoop3
start-all.sh
会在hadoop0机器上启动master进程,在slaves文件配置的所有hostname的机器上启动worker进程
启动客户端
$ cd $SPARK_HOME/bin
$ spark-shell --master spark://hadoop000:7077
启动后在监控页面可以看到 Running Executors (1)
开发环境使用local即可
简单使用
Spark WordCount统计
scala> val file = spark.sparkContext.textFile("file:///home/hadoop/data/hello.txt")
scala> val wordCounts = file.flatMap(line => line.split(",")).map((word => (word, 1))).reduceByKey(_ + _)
scala> wordCounts.collect
hello.txt中内容
hello,world,hello
hello,world
welcome
执行结果
res1: Array[(String,Int)] = Array((hello,3), (welcome,1), (world,2))
以上是关于Spark环境搭建的主要内容,如果未能解决你的问题,请参考以下文章
Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例附详细代码
Spark MLlib速成宝典基础篇01Windows下spark开发环境搭建(Scala版)
Spark编程环境搭建(基于Intellij IDEA的Ultimate版本)
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段