0%

CDH 使用原生 Apache Spark

CDH 使用原生 Apache Spark


前言

需要使用 Spark 2.x 版本

在 Spark 官网中下载的 Spark 包中是有 spark-submit、spark-shell、spark-sql,但是在 Cloudera 版 Spark 中是没有spark-sql的

安装

官网下载原生 Apache Spark 2.x 版本,直接解压即可

1
2
tar -zxvf spark-2.4.4-bin-hadoop2.7.tgz -C /opt
mv spark-2.4.4-bin-hadoop2.7 spark

设置环境变量 HADOOP_HOME、HADOOP_CONF_DIR、YARN_CONF_DIR、SPARK_HOME

1
2
3
4
5
6
vim /etc/profile
export HADOOP_HOME=/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hadoop
export HADOOP_CONF_DIR=/etc/hadoop/conf
export YARN_CONF_DIR=/etc/hadoop/conf
export SPARK_HOME=/opt/spark
export PATH=$SPARK_HOME/bin:$PATH

支持 Hive

1
cp -r /etc/hive/conf $SPARK_HOME/conf

上传本地的 Spark jar 包到 HDFS 上

1
2
3
4
5
6
hadoop fs -mkdir -p /user/spark/jars
hadoop fs -put ${SPARK_HOME}/jars/* /user/spark/jars

# 在spark-default.conf添加一行,如果HDFS 是 HA 的话,请填 nameserver 地址
# spark.yarn.jars hdfs://nameserver1/user/spark/jars/*
spark.yarn.jars hdfs://master-240:8020/user/spark/jars/*

解决 native 告警

1
2
3
4
5
vim /etc/profile
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native/

vim $SPARK_HOME/conf/spark-env.sh
export LD_LIBRARY_PATH=$JAVA_LIBRARY_PATH

使用

spark-sql

1
2
3
4
5
spark-sql \
--master yarn \
--deploy-mode client \
--executor-memory 1G \
--num-executors 10

spark-shell

1
2
3
4
5
spark-shell \
--master yarn \
--deploy-mode client \
--executor-memory 1G \
--num-executors 10

spark-submit

1
2
3
4
5
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
/opt/spark/examples/jars/spark-examples_2.11-2.4.4.jar 10

最后

如果不知道 HADOOP_HOME 路径

1
hadoop checknative -a


参考链接