当前位置:   article > 正文

linux中运行yarn命令,在Yarn上运行spark-shell和spark-sql命令行

启动yarn --master yarn-client

如果你已经有一个正常运行的Hadoop Yarn环境,那么只需要下载相应版本的Spark,解压之后做为Spark客户端即可。

需要配置Yarn的配置文件目录,export HADOOP_CONF_DIR=/etc/hadoop/conf 这个可以配置在spark-env.sh中。

运行命令:

cd $SPARK_HOME/bin

./spark-shell \

--master yarn-client \

--executor-memory 1G \

--num-executors 10

注意,这里的–master必须使用yarn-client模式,如果指定yarn-cluster,则会报错:

Error: Cluster deploy mode is not applicable to Spark shells.

因为spark-shell作为一个与用户交互的命令行,必须将Driver运行在本地,而不是yarn上。

其中的参数与提交Spark应用程序到yarn上用法一样。

启动之后,在命令行看上去和standalone模式下的无异:

d8cffbe5400c05274cee3b865f1b3490.png

在ResourceManager的WEB页面上,看到了该应用程序(spark-shell是被当做一个长服务的应用程序运行在yarn上):

e9f694df7aea9b37d93c30465f1a0be5.png

点击ApplicationMaster的UI,进入到了Spark应用程序监控的WEB页面:

96b8afffed2e5844315c8f23348228d3.png

spark-sql On Yarn

spark-sql命令行运行在yarn上,原理和spark-shell on yarn一样。只不过需要将Hive使用的相关包都加到Spark环境变量。

将hive-site.xml拷贝到$SPARK_HOME/conf

2.export HIVE_HOME=/usr/local/apache-hive-0.13.1-bin 添加到spark-env.sh

3.将以下jar包添加到Spark环境变量:

datanucleus-api-jdo-3.2.6.jar、datanucleus-core-3.2.10.jar、datanucleus-rdbms-3.2.9.jar、mysql-connector-java-5.1.15-bin.jar

可以在spark-env.sh中直接添加到SPARK_CLASSPATH变量中。

运行命令:

cd $SPARK_HOME/bin

./spark-sql \

--master yarn-client \

--executor-memory 1G \

--num-executors 10

即可在yarn上运行spark-sql命令行。

6b42eb7b7b27f2058b14da996a20cdfa.png

在ResourceManager上的显示以及点击ApplicationMaster进去Spark的WEB UI,与spark-shell无异。

54cc77ada4ecf7b57011d0eb875d4e2c.png

这样,只要之前有使用Hadoop Yarn,那么就不需要搭建standalone的Spark集群,也能发挥Spark的强大威力了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/265931?site
推荐阅读
相关标签
  

闽ICP备14008679号