分享

Spark 1.0.0最新发布 Spark on yarn 部署(hadoop 2.4)实践

阅读本文首先需要知道什么是Spark,然后再阅读下面内容

问题导读:
1.二进制包是否有32位于64位之分?
2.Spark是否为一服务器,多客户端?
扩展:
3.spark与hadoop的关系是什么?





Spark 1.0.0终于发布了:Spark 1.0.0 released

源码编译
测试环境:
系统:Centos 6.4 - 64位
Java:1.7.45
Scala:2.10.4
Hadoop:2.4.0 社区版

Spark 1.0.0 源码地址http://d3kbcqa49mib13.cloudfront.net/spark-1.0.0.tgz

解压源码,在根去根目录下执行以下命令(sbt编译我没尝试)
./make-distribution.sh --hadoop 2.4.0 --with-yarn --tgz --with-hive

几个重要参数
--hadoop :指定Hadoop版本
--with-yarn yarn支持是必须的
--with-hive 读取hive数据也是必须的,反正我很讨厌Shark,以后开发们可以在Spark上自己封装SQL&HQL客户端,也是个不错的选择。
#      --tgz: Additionally creates spark-$VERSION-bin.tar.gz
#      --hadoop VERSION: Builds against specified version of Hadoop.
#      --with-yarn: Enables support for Hadoop YARN.
#      --with-hive: Enable support for reading Hive tables.
#      --name: A moniker for the release target. Defaults to the Hadoop verison.

不想自己编译的话直接下载二进制包吧:
Spark 1.0.0 on Hadoop 1 / CDH3, CDH4 二进制包:http://d3kbcqa49mib13.cloudfront.net/spark-1.0.0-bin-hadoop1.tgz
Spark 1.0.0 on Hadoop 2 / CDH5, HDP2 二进制包:http://d3kbcqa49mib13.cloudfront.net/spark-1.0.0-bin-hadoop2.tgz

进过漫长的等待,在源码跟目录下会生成一个tgz压缩包     

1.jpg


把这个包copy到你想部署的目录并解压。
特别注意:只需要copy你的yarn集群中的任意一台。一台就够了,不需要全部都部署,除非你需要多个Client节点调用作业。
在这里我们不需要搭建独立的Spark集群,利用Yarn Client调用Hadoop集群的计算资源。
  1. mv 解压后的目录/conf/spark-env.sh.template 解压后的目录/conf/spark-env.sh
复制代码



编辑spark-env.sh

2.jpg


  1. export HADOOP_HOME=/opt/hadoop
  2. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
  3. SPARK_EXECUTOR_INSTANCES=4
  4. SPARK_EXECUTOR_CORES=1
  5. SPARK_EXECUTOR_MEMORY=1G
  6. SPARK_DRIVER_MEMORY=2G
  7. SPARK_YARN_APP_NAME="Spark 1.0.0"
复制代码



这是我的配置,配置和之前的几个版本略有不同,但大差不差。

用Yarn Client调用一下MR中的经典例子:Spark版的word count
这里要特别注意,SparkContext有变动,之前版本wordcount例子中的的第一个参数要去掉。

3.jpg


  1. SPARK_JAR="hdfs://master001.bj:9000/jar/spark/spark-assembly-1.0.0-hadoop2.4.0.jar" \
  2. ./bin/spark-class org.apache.spark.deploy.yarn.Client \
  3. --jar ./lib/spark-examples-1.0.0-hadoop2.4.0.jar \
  4. --class org.apache.spark.examples.JavaWordCount \
  5. --args hdfs://master001.bj:9000/temp/read.txt \
  6. --num-executors 50 \
  7. --executor-cores 1 \
  8. --driver-memory 2048M \
  9. --executor-memory 1000M \
  10. --name "word count on spark"
复制代码




运行结果在stdout中查看

4.jpg


速度还行吧,用6台节点/50个core计算4.3GB文件,用时31秒。








本文撸大湿原创,转:http://blog.csdn.net/tntzbzc/article/details/27817189


已有(1)人评论

跳转到指定楼层
junzi234 发表于 2014-6-11 12:41:07
恩恩 学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条