目录
背景
Spark官网提供spark-2.4.7-bin-without-hadoop.tgz、spark-2.4.7-bin-hadoop2.(6|7).tgz和spark-2.4.7.tgz (源代码)三种类型的压缩包下载,第二种是基于Hadoop 2.6/7的预先编译版,需要与本机安装的Hadoop版本对应。当然不对应的话大部分情况还是能用的不会出现很大问题,有的同学为了省事大多会直接下载这种预编译版本。需要提一句的是Spark自带了Scala环境,所以不需要额外安装,但是JDK 是需要安装的。
指定Hadoop版本
用户指定Hadoop版本来部署Spark有两种方式,一种是用户自己重新打包,一种是下载spark-2.4.7-bin-without-hadoop.tgz通过配置让Spark使用我们制定的Hadoop版本,两种方式官网都有参考,本文只给出后者的部署方式。
Spark通过Hadoop 客户端的库来与HDFS 和 YARN进行交互, 从 Spark 1.4 版本开始,官方提供了“Hadoop free”版本,以便用户可以在指定版本 Hadoop 环境中部署Spark。 如果用户使用指定版本的Hadoop需要修改 SPARK_DIST_CLASSPATH 以包含 Hadoop classpath下的jar。 最方便的方法是在 conf/spark-env.sh 中添加SPARK_DIST_CLASSPATH配置即可:
### in conf/spark-env.sh ### # If 'hadoop' binary is on your PATH # hadoop需要加入到$PATH变量中 export SPARK_DIST_CLASSPATH=$(hadoop classpath) # With explicit path to 'hadoop' binary # 如果hadoop没有加入$PATH变量,可以手动指定`hadoop`命令的绝对路径 export SPARK_DIST_CLASSPATH=$(/path/to/hadoop/bin/hadoop classpath) # Passing a Hadoop configuration directory # 支持指定config目录,两个集群之间配置切换比较方便 export SPARK_DIST_CLASSPATH=$(hadoop --config /path/to/configs classpath)
参考资料
- https://spark.apache.org/docs/2.4.7/index.html
转载请注明:雪后西塘 » 用户指定Hadoop版本部署Spark 2.4.7