1.环境
spark-1.6.0-cdh5.12.0
centOS6.5
hadoop-2.6.0-cdh5.12.0
jdk1.8.0_144
scala2.12.3
服务器规划
HostName | ServerIP | Remark |
node1.sunny.cn | 192.168.2.11 | Master、Slave |
node2.sunny.cn | 192.168.2.12 | Slave |
node3.sunny.cn | 192.168.2.13 | Slave |
2.下载源码和安装包
下载地址http://archive.cloudera.com/cdh5/cdh/5/
3.配置HOST、SSH免密登录等
4.下载安装Scala
下载地址http://www.scala-lang.org/download/2.12.3.html
下载后解压到/opt/module目录下,然后设置环境变量
export SCALA_HOME=/opt/module/scala-2.10.4
export PATH=$PATH:$SCALA_HOME/bin
执行source使环境变量生效
查看scala版本
scala -version
5.配置Spark环境变量
添加环境变量
vim ~/.bash_profile
SPARK_HOME="/opt/module/spark"
export PATH=$PATH:$SPARK_HOME/bin
执行source使环境变量生效
6.修改配置文件
进入spark/conf目录后都是以template结尾的模版文件
(1)将spark-env.sh.template复制一份为spark-env.sh
cp spark-env.sh.template spark-env.sh
在末尾增加内容
#本机ip或hostname(不同主机配置不同)
SPARK_LOCAL_IP=node1.sunny.cn
#配置spark的local目录
SPARK_LOCAL_DIRS=/usr/sunny/spark/local
#master节点ip或hostname
SPARK_MASTER_IP=node1.sunny.cn
#web页面端口
SPARK_MASTER_WEBUI_PORT=8801
#Worker的cpu核数
SPARK_WORKER_CORES=2
#worker内存大小
SPARK_WORKER_MEMORY=1g
#worker目录
SPARK_WORKER_DIR=/usr/sunny/spark/work
#spark-shell启动使用核数
export SPARK_MASTER_OPTS="-Dspark.deploy.defaultCores=2"
#worker自动清理及清理时间间隔
export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.addDataTtl=604800"
#history server页面端口、备份数、log日志在HDFS的位置(注意,需要在HDFS上新建对应的路径)
export SPARK_HOSTORY_OTPS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=1 -Dspark.history.fs.logDirectory=hdfs://systex/user/spark/applicationHistory"
#配置Spark的log日志目录
SPARK_LOG_DIR=/usr/sunny/spark/log
#配置java路径
export JAVA_HOME=/opt/module/jdk1.8.0_144
#配置scala路径
export SCALA_HOME=/opt/module/scala-2.10.4
#配置hadoop的lib路径
export HADOOP_HOME=/opt/module/hadoop
#配置hadoop的配置路径
export HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop
在配置文件默认的注释中已有配置的提示,可以参考
(2)spark-default.conf.template复制一份为spark-default.conf
cp spark-default.conf.template spark-default.conf
添加内容
#eventLog是否生效(建议开启,可以对已完成的任务记录其详细日志)
spark.eventLog.enabled true
#eventLog是否启用压缩(cpu性能好的情况下建议开启,以减少内存等的占用)
spark.eventLog.compress true
#eventLog的文件存放位置,与spark-env.sh中的history server配置位置一致
spark.eventLog.dir hdfs://systex/user/spark/applicationHistory
#广播块大小
spark.broadcast.blockSize 8m
#Executor的cpu核数
spark.executor.cores 1
#Executor的内存大小
spark.executor.memory 512m
#Executor心跳交换时间间隔
spark.executor.heartbeatInterval 20s
#文件抓取的timeout
spark.files.fetchTimeout 120s
#作业最大失败次数(达到此次数后,该作业不再继续执行,运行失败)
spark.task.maxFailures 3
#设置序列化机制(默认使用java的序列化,但是速度很慢,建议使用Kryo)
spark.serializer org.apache.spark.serializer.KrySerializer
#序列化缓冲大小
spark.kryoserializer.buffer.max 256m
#Akka调度帧大小
spark.akka.frameSize 128
#默认并行数
spark.default.parallelism 20
#最大网络延时
spark.network.timeout 300s
#Spark推测机制(建议开启)
spark.speculation true
(3)slaves.template复制一份为slaves
cp slaves.template slaves
添加所有slave节点的hostname
node1.sunny.cn
node2.sunny.cn
node3.sunny.cn
7.启动
./sbin/start-all.sh
报出错误
查看日志文件
由于长时间没有解决,所以换了一种方式,下载源码编译,然后使用编译后的包重新安装配置