DarkMatter in Cyberspace
  • Home
  • Categories
  • Tags
  • Archives

Spark Computation on CDH Yarn Cluster


部署环境:3台主机 cdh001(主节点), cdh002, cdh003,用户名 algo。

配置用户和权限

sudo groupadd supergroup
sudo useradd -m -s /bin/bash algo
sudo usermod -a -G supergroup algo
su - algo
hadoop fs -mkdir /user/algo

algo用户的HDFS根目录:hdfs://cdh001:8020/user/algo,所有 hadoop fs 命令中的相对路径都以此为根目录。

过程记录

验证 algo 用户可以正常使用 yarn 平台:

yarn node -list
yarn application -list
hadoop fs -put max_current.py .
hadoop fs -ls hdfs://cdh001:8020/user/algo
yarn jar /opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4/jars/hadoop-mapreduce-examples-2.6.0-cdh5.15.1.jar wordcount max_current.py output
hadoop fs -cat output/part-*

algo用户的创建和用户组配置可参考 12.7 笔记。

为 algo 配置 Spark 运行环境,将下面的语句加入到 $HOME/.bash_profile 的 export PATH 之前:

export HADOOP_CONF_DIR=/etc/hadoop/conf
export SPARK_HOME=/opt/cloudera/parcels/SPARK2-2.3.0.cloudera2-1.cdh5.13.3.p0.316101/lib/spark2
export LD_LIBRARY_PATH=/opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4/lib/hadoop/lib/native:$LD_LIBRARY_PATH
PATH=$SPARK_HOME/bin:$PATH

在集群模式下执行 Spark 实例代码(出现权限问题报错):

spark-submit --deploy-mode client \
  --class org.apache.spark.examples.SparkPi \
  $SPARK_HOME/examples/jars/spark-examples_2.11-2.3.0.cloudera2.jar 10

给 algo 用户执行 Spark 任务权限后执行成功:

sudo usermod -a -G spark algo
sudo chmod 775 /var/log/spark2/lineage

CDH 上常用环境变量配置

  • HADOOP_CONF_DIR :/etc/hadoop/conf(一般是一个指向 /etc/hadoop/conf.cloudera.yarn 的链接);

  • SPARK_HOME for Spark 2.x:/opt/cloudera/parcels/SPARK2-2.3.0.cloudera2-1.cdh5.13.3.p0.316101/lib/spark2

  • SPARK_HOME for Spark 1.x:/opt/cloudera/parcels/CDH/lib/spark.

CDH version:

locate '*cdh_version*'
cat /opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4/lib/bigtop-tomcat/cloudera/cdh_version.properties | grep cloudera.cdh.release

计算流程总结

用户 algo 使用 Spark 在 Yarn 集群上并行计算的整体流程: 1. 创建用户账户,配置 Hadoop 权限;

  1. 使用 yarn node -list 和 yarn jar ... 等方法了解 Yarn 集群当前节点数量和位置,确认 Yarn 集群能正常工作;

  2. 通过 $SPARK_HOME/conf/spark-defaults.conf 将默认 master 设置为 yarn;

  3. 通过配置环境变量 HADOOP_CONF_DIR 定义 Yarn 配置文件位置( $HADOOP_CONF_DIR/yarn-site.xml),从而使 Spark 能够使用 Yarn 集群;

  4. 用户提交并行计算任务,其中 client 模式类似于前台执行并行计算,cluster 模式类似于将并行计算设置为 daemon 后台运行。

其他

从 /opt/cloudera/parcels/SPARK2-2.3.0.cloudera2-1.cdh5.13.3.p0.316101/bin/spark2-submit 最后一行 exec $LIB_DIR/spark2/bin/spark-submit "$@" 可以看到, 它将所有参数转给了 /opt/cloudera/parcels/SPARK2-2.3.0.cloudera2-1.cdh5.13.3.p0.316101/lib/spark2/bin/spark-submit.



Published

Dec 11, 2018

Last Updated

Dec 11, 2018

Category

Tech

Tags

  • cdh 2
  • cluster 1
  • spark 21
  • yarn 2

Contact

  • Powered by Pelican. Theme: Elegant by Talha Mansoor