Spark安装:
1、使用hadoop账户登录
2、在相应的软件包中修改slaves,spark-defaults.conf,spark-env.sh,hive-site.xml
其中:slaves中加入从节点的hostname
spark-defaults.conf中修改:
#主节点设置,多个节点高可用
spark.master spark://hadoop001:7077,hadoop002:7077
##Whether to log Spark events, useful for reconstructing the Web UI after the application has
finished.
Log日志存储位置
#一个类, 用于序列化网络传输或者以序列化形式缓存起来的各种对象
##Spark 应用程序Application
所占的内存大小,这里的Driver
对应Yarn
中的
ApplicationMaster;
spark.driver.memory 1g
## Amount of memory to use per executor process, in the same format as JVM memory strings
(e.g. 512m, 2g).对应的container ---每个处理器可以使用的内存大小
spark.executor.memory 2g
##Directory to use for "scratch" space in Spark, including map output files and RDDs that get
stored on disk. This should be on a fast, local disk in your system. It can also be a commaseparated list of multiple directories on different disks。
NOTE: In Spark 1.0 and later this will be overriden by SPARK_LOCAL_DIRS (Standalone, Mesos) or LOCAL_DIRS (YARN) environment
variables set by the cluster manager.设置多个分散io
##Port for your application's dashboard, which shows memory and workload data
应用程序控制面板端口号
spark.ui.port 44444
##job 运行期间的压缩的相关设置
spark.broadcast.compress true ##广播变量在发送之前是否先要被压缩
spark.rdd.compress false ##是否要压缩序列化的RDD
分区
spark.io.compression.codec snappy ##压缩内部数据使用的编码器
spark.io.compression.snappy.block.size 32768 ##字节为单位
##Default number of tasks to use across the cluster for distributed shuffle operations (groupByKey, reduceByKey, etc) when not set by user.
spark.default.parallelism 12 ##本地机器内核数
spark-env.sh中修改:
Export JAVA_HOME=java home具体位置
export HADOOP_CONF_DIR=hadoop conf具体位置
export SPARK_HOME= spark home具体位置
##master 节点的webui
端口
export SPARK_MASTER_WEBUI_PORT=18080
##worker 节点的webui
端口
export SPARK_WORKER_WEBUI_PORT=18081
export SPARK_WORKER_DIR=……/spark/work
export SPARK_LOG_DIR=/spark
##为pid
文件设置目录, 防止默认/tmp
目录下长时间运行导致的pid
文件丢失。
export SPARK_PID_DIR=/tmp
##为了兼容hive
元数据,设置mysql
连接器
export SPARK_CLASSPATH=$SPARK_CLASSPATH:……/spark/lib/mysql-connector-java-
5.1.23-bin.jar
##这里注意mysql
连接器的版本可以从/hive/lib/里面找到,并将它复制到
/spark/lib 下
##启动参数里设置zookeeper,提供master
节点的高可用
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER Dspark.deploy.zookeeper.url=hadoop001:2181,hadoop002:2181,hadoop003:2181 -
Dspark.deploy.zookeeper.dir=/spark"
##设置这个为了兼容hadoop
下面的一些lib
库,比如snappy
export LD_LIBRARY_PATH=……/hadoop/lib/native
hive-site.xml中修改:
##这个文件的作用主要是为了spark-sql
能够兼容hive
的元数据。
可以用软连接的方式直接指定到$HIVE_HOME/conf/hive-site.xml
cd /……/spark/conf/
ln -s /……/hive/conf/hive-site.xml hive-site.xml
如果 spark-sql 还是启动不了,注意在
Hive 中拷贝一个
log 文件--hive-log4j.properties
过来
在/……/hive/conf
下面
3、将修改好的conf文件scp到其他节点
4、进行启动
……spark/sbin/start-all.sh
5、查看进程
Jps
问题:启动不成功,报错:Could not find or load main class Dspark.deploy.zookeeper.url=namenode0:2181,namenode1:2181,datanode1:2181
原因:修改配置文件的时候产生了一个垃圾文件没有自动删除,对spark启动产生了影响,手动将垃圾文件删除即可