Spark集群搭建
来源:互联网 发布:知乎 长青春痘 编辑:程序博客网 时间:2024/06/01 07:55
spark集群搭建需要使用到Hadoop环境,所以在搭建spark集群之前,需要先搭建Hadoop环境,可以参考之前写的 Hadoop—HA集群搭建
一、准备工作
除了上面所说的Hadoop环境外,spark集群搭建还需要配置scala环境,scala环境的配置类似于jdk配置,比较简单,只需下载对应版本的包,解压,在配置文件中添加SCALA_HOME环境变量就可以了,这里就不在做详细说明。
搭建环境:CentOS release 6.5 (Final) + jdk1.8.0_131 + scala-2.11.7
这里使用三台服务器来搭建,分别为node1、node2、node3;
对应的ip为:192.168.1.11、192.168.1.12、192.168.1.13
二、spark具体配置
我这里使用的是spark-2.2.0-bin-hadoop2.6,对应的是Hadoop2.6的版本,首先去spark官网:http://spark.apache.org/downloads.html下载所需的版本,解压到指定目录,我这里是解压到/home/hadoop/app下,解压后目录结构如下:
进入conf目录下,需要配置的文件总共有三个,如下图:
1)配置spark-env.sh
spark-env.sh主要配置spark集群启动时的相关参数,执行
cp spark-env.sh.template spark-env.shvi spark-env.sh//配置以下信息#指定jdkexport JAVA_HOME=/home/hadoop/app/jdk1.8.0_131#指定masterexport SPARK_MASTER_IP=node1 #指定结点使用内核数export SPARK_WORKER_CORES=2#指定结点使用内存数export SPARK_WORKER_MEMORY=1g#配置hadoop的配置路径export HADOOP_CONF_DIR=/home/hadoop/app/hadoop-2.6.5/etc/hadoop
这里采用最简配置,其他参数设置均采用默认值,需要设置其他的可参考下面参数配置信息:
#本机ip或hostname SPARK_LOCAL_IP=node1#配置spark的local目录 SPARK_LOCAL_DIRS=/home/hadoop/app/#master节点ip或hostname SPARK_MASTER_IP=node1#web页面端口 SPARK_MASTER_WEBUI_PORT=8080 #spark-shell启动使用核数 export SPARK_MASTER_OPTS="-Dspark.deploy.defaultCores=4" #Worker的cpu核数 SPARK_WORKER_CORES=2 #worker内存大小 SPARK_WORKER_MEMORY=8g #worker目录 SPARK_WORKER_DIR=/opt/data/spark/work #worker自动清理及清理时间间隔 export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.appDataTtl=604800"#history server页面端口、备份数、log日志在HDFS的位置export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://node1:9000/tmp/spark/applicationHistory" #配置Spark的log日志目录 SPARK_LOG_DIR=/opt/data/spark/log #配置java路径 export JAVA_HOME=/usr/local/jdk1.8.0_91/ #配置scala路径 export SCALA_HOME=/usr/local/scala-2.10.4/ #配置hadoop的lib路径 export HADOOP_HOME=/home/hadoop/app/hadoop-2.6.5/lib/native #配置hadoop的配置路径 export HADOOP_CONF_DIR=/home/hadoop/app/hadoop-2.6.5/etc/hadoop
2)配置spark-defaults.conf
spark-defaults.conf主要用于配置spark集群自己的相关信息,执行
cp spark-defaults.conf.template spark-defaults.conf vi spark-defaults.conf
里面的默认配置信息为:
# spark.master spark://master:7077# spark.eventLog.enabled true# spark.eventLog.dir hdfs://namenode:8021/directory# spark.serializer org.apache.spark.serializer.KryoSerializer# spark.driver.memory 5g# spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
在采用最简配置时,上述配置都不需要修改,其他参数设置参考如下:
#eventLog是否生效(建议开启,可以对已完成的任务记录其详细日志) spark.eventLog.enabled true #eventLog是否启用压缩(cpu性能好的情况下建议开启,以减少内存等的占用) spark.eventLog.compress true #eventLog的文件存放位置,与spark-env.sh中的history server配置位置一致,这两个位置必须手动创建# hadoop fs -mkdir -p /tmp/spark/applicationHistory,否则spark启动失败 spark.eventLog.dir hdfs://node1:9000/tmp/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 6 #设置序列化机制(默认使用java的序列化,但是速度很慢,建议使用Kryo) spark.serializer org.apache.spark.serializer.KryoSerializer #序列化缓冲大小 spark.kryoserializer.buffer.max 256m #Akka调度帧大小 spark.akka.frameSize 128 #默认并行数 spark.default.parallelism 20 #最大网络延时 spark.network.timeout 300s #Spark推测机制(建议开启) spark.speculation true
3)配置slaves文件
配置结点信息,由于机器数量限制,这里node1既做主节点,又做从节点
node1node2node3
三、启动spark集群
spark-2.2.0-bin-hadoop2.6/sbin 目录下
//启动master和slavesstart-all.sh //停止master和slaves stop-all.sh
jps检查是否运行成功,如果master节点出现Master,worker节点出现Worker说明运行成功!
四、spark-submit提交作业任务
代码需要提交到spark运行,使用命令
./spark-submit --class cn.test.TestDemo --master spark:node1:7077 --executor-memory 2g --num-executors 5 /home/hadoop/jobs/testdemo-0.0.1-SNAPSHOT.jar
spark-submit 在默认情况下它会从Spark文件夹的conf/spark-defaults.conf读取参数,如果配置了spark.master, 你就可以不用在调用spark-submit脚本时设置–master参数,如果你不清楚配置项来自哪里,你可以使用–verbose打印详细的调试信息
以上都是自己在学习过程中的总结整理,如果有错误的地方,欢迎留言指正。
- 搭建spark-hadoop集群
- 搭建Spark分布式集群
- spark集群搭建
- hadoop+spark集群搭建
- 搭建Spark分布式集群
- spark测试集群搭建
- Spark集群搭建
- 搭建spark集群
- 搭建Spark集群
- Spark集群环境搭建
- spark集群搭建
- spark集群搭建
- Spark集群搭建
- Hadoop+Spark集群搭建
- 搭建Spark集群
- Spark集群的搭建:
- Spark集群环境搭建
- Spark集群搭建
- Enabling L2TP over IPSec on Ubuntu 16.04
- springboot 返回json格式数据时间格式配置
- 【个人笔记】2017-12-13小记-html
- 解决maven工程compile failure的问题
- Winform开发中使用FastReport基本操作创建与设计
- Spark集群搭建
- Failed to resolve directive: el vue2报错 (vue v-sl)
- Oracle systemstate dump介绍
- python3 文件的读取和通用操作
- php接口开发简单实例
- jstat
- jquery文档操作
- 【资料合集】2017云栖大会•苏州峰会回顾合集:PDF下载
- Spring中bean的作用域