就在昨天,北京时间5月30日20点多。Spark 1.0.0最终公布了:Spark 1.0.0 released
依据官网描写叙述,Spark 1.0.0支持SQL编写:Spark SQL Programming Guide
个人认为这个功能对Hive的市场的影响非常小。但对Shark冲击非常大。就像win7和winXP的关系,自相残杀嘛?
这么着急的公布1.x 版是商业行为还是货真价实的体现,让我们拭目以待吧~~~~
本文是CSDN-撸大湿原创,如要转载请注明出处,谢谢:http://blog.csdn.net/tntzbzc/article/details/27817189
进入今天的正题:Spark 1.x onYarn (Hadoop 2.4)
源代码编译
我的測试环境:
- 系统: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&HQLclient。也是个不错的选择。
# --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压缩包
把这个包copy到你想部署的文件夹并解压。
特别注意:仅仅须要把解压包copy到yarn集群中的随意一台。一个节点就够了,不须要在全部节点都部署。除非你须要多个Client节点调用spark作业。
在这里我们不须要搭建独立的Spark集群,利用Yarn Client调用Hadoop集群的计算资源。
mv 解压后的文件夹/conf/spark-env.sh.template 解压后的文件夹/conf/spark-env.sh
编辑spark-env.sh
export HADOOP_HOME=/opt/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
SPARK_EXECUTOR_INSTANCES=4
SPARK_EXECUTOR_CORES=1
SPARK_EXECUTOR_MEMORY=1G
SPARK_DRIVER_MEMORY=2G
SPARK_YARN_APP_NAME="Spark 1.0.0"
这是我的配置,配置和之前的几个版本号略有不同,但大差不差。
用Yarn Client调用一下MR中的经典样例:Spark版的word count
这里要特别注意。SparkContext有变动。之前版本号wordcount样例中的的第一个參数要去掉。
为了方便。我把 SPARK_HOME/lib/spark-assembly-1.0.0-hadoop2.4.0.jar 复制到了HDFS中进行调用。(直接调用本地磁盘也是能够的)
SPARK_JAR="hdfs://master001.bj:9000/jar/spark/spark-assembly-1.0.0-hadoop2.4.0.jar" ./bin/spark-class org.apache.spark.deploy.yarn.Client --jar ./lib/spark-examples-1.0.0-hadoop2.4.0.jar --class org.apache.spark.examples.JavaWordCount --args hdfs://master001.bj:9000/temp/read.txt --num-executors 50 --executor-cores 1 --driver-memory 2048M --executor-memory 1000M --name "word count on spark"
执行结果在stdout中查看
速度还行吧,用6台节点/50个core计算4.3GB文件,用时31秒。
今天就到这吧,有时间还的把那篇神经网络继续写下去,下次再见