最新消息:天气越来越冷,记得加一件厚衣裳

用户指定Hadoop版本部署Spark 2.4.7

Spark w3sun 1123浏览 0评论

背景

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

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址