spark - 部署和安装

本地环境:

  • hadoop3.0
  • spark2.3

注:由于测试中,换了机器,导致下面的截图,是在两个spark版本(2.2和2.3)的机器上做的,hostname略有不同(hdp1 和 hd1) ,不影响实际结果,下面的配置依然是正确的,实际测试中以自己的hostname,spark版本为准!

 

 

1.下载,解压

 

2.目录结构

bin:本地脚本

sbin:服务端脚本

conf:配置文件

examples:样例代码

jars:依赖包(1.x是在lib目录,很少的几个大包, 2.x是在jars目录下,很多个小包)



 

1.x的lib目录

 

2.x的jars目录


 

 

3.local模式(测试用):

    不用改任何配置,不用启动任何进程(开箱即用)

./spark-shell --master local[2] --name test

 

 

log4j在conf目录下,可以调节log级别,默认info级别


 

(4)standlone模式(spark集群,master/slave主从模式)

    修改conf下的spark-env.sh

export SCALA_HOME=/DATA/sdb/scala-2.11.8
export JAVA_HOME=/etc/alternatives/java_sdk_1.8.0
export SPARK_MASTER_IP=hdp1
export SPARK_WORKER_CORES=31
export SPARK_WORKER_MEMORY=120g
export HADOOP_CONF_DIR=/DATA/sdb/hadoop-3.0.0/etc/hadoop
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native

 

    修改slaves文件(hosts写上去)

hdp1
hdp2
hdp3

    

    启动

./sbin/start-all.sh

 

    jps查看有worker和master两个进程


 

    web ui是在8080



 

    这个模式,修改配置文件需要同步到其他节点

 

(5)spark on yarn模式

  • 不需要启动任何进程
  • 只是把spark作为作业提交的客户端而已
  • 修改配置文件不需要同步到其他节点
  • yarn的Resource Manager 和 Node Manager 要先启动起来
  • spark on yarn是把作业提交到yarn上运行
  • 只在1到2台机器上部署spark即可
  • 所有运行调度交给yarn,通过Resource Manager申请资源,然后再NodeManager上启动container,把spark作业泡在yarn的NodeManager上的container里

    启动命令

./spark-shell  --master yarn

 

    注意:

  • 需要配置hadoop_conf_dir或yarn_conf_dir(否则报错)
  • lib下放mysql驱动包,使用mysql做数据源
  • spark.yarn.jars或spark.yarn.archive需要配置,避免每次都上传jar包到集群

(6)参数

--jars 指定依赖包

 

(7)spark.yarn.jars配置

在spark-defaults.conf文件里添加下面参数,注意一定要写 /* ,不是 /(如果写/,会启动失败,具体如下图)

spark.yarn.jars hdfs://hd1:9000/jars/*


 

验证参数效果:启动 spark-sql --master yarn

<1>不设置这个参数,分析日志,发现会上传两个zip包,一个是conf,一个是libs

下载日志中的libs zip包hdfs://hd1:9000/user/root/.sparkStaging/application_1521429219577_0032/__spark_libs__2446030819495419882.zip 

本地解压后,查看目录里的jar包,和spark目录下的jars完全一致(210个包)


 

 

<2>设置这个参数,分析日志,只会上传一个conf的zip包(2.x版本和1.x版本配置后,日志的输出内容不太一样

 

猜你喜欢

转载自coderlxl201209164551.iteye.com/blog/2413586