本文档相关软件的版本:spark-1.0.2、hadoop2.4.0和hive-0.13.0
一、编译打包
1、准备
将 hadoop gateway所使用的 hadoop 相关配置文件(*-site.xml)放到 spark 的代码里的 core/src/main/resources/下进行打包,否则可能会出现找不到rm以及 nn 等情况。
2、打发布包
spark的编译方式有多种,这里只讲解用脚本使用maven进行编译打包的方法,在用编译打包之前需要给maven进程配置足够内存:
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m”
spark默认编译包不支持hive,需要在编译的时候需要通过--with-hive指定,在spark源代码路径下执行:
./make-distribution.sh --hadoop 2.4.0 --with-yarn --tgz —with-hive
运行完成之后会生成一个发布包:spark-1.0.2-bin-2.4.0.tgz
二、部署
1、拷贝spark-1.0.2-bin-2.4.0.tgz包到部署节点并解压
2、拷贝hive的配置hive-site.xml文件到conf/目录下
3、拷贝mysql-connector-java-5.1.15-bin.jar包到lib/目录下
4、上传lib/spark-assembly-1.0.2-hadoop2.4 .0.jar文件到hdfs目录hdfs://ns1//spark/jars下
5、配置conf/spark-env.sh,内容如下:
export SPARK_JAR=hdfs://ns1//spark/jars/spark-assembly-1.0.2-hadoop2.4 .0.jar
export HADOOP_CONF_DIR=/usr/local/hadoop-2.4.0/etc/hadoop
export YARN_CONF_DIR=/usr/local/hadoop-2.4.0/etc/hadoop
export SPARK_YARN_USER_ENV="CLASSPATH=/usr/local/hadoop-2.4.0/etc/hadoop/"
export SPARK_SUBMIT_LIBRARY_PATH=/usr/local/hadoop-2.4.0/lib/native/
export SPARK_CLASSPATH=$SPARK_CLASSPATH:/usr/local/spark-1.0.2/lib/mysql-connector-java-5.1.15-bin.jar
配置conf/spark-defaults.conf,内容如下:
spark.yarn.historyServer.address 10.39.5.23:18080
spark.eventLog.enabled true
spark.eventLog.dir hdfs://ns1/spark/logs
三、启动spark的history server
执行:
./sbin/start-history-server.sh hdfs://ns1/spark/logs/
四、验证
1、spark安装目录下执行:
./bin/spark-shell --master yarn --num-executors 4 --driver-memory 2g --executor-memory 2g --executor-cores 1
2、spark-shell启动成功之后分别执行以下三行命令
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
import hiveContext._
hql("select * from mds_user_info limit 1”).collect().foreach(println)
如果执行成功,说明hive on spark部署成功
======================================
也可以参考我同事的blog: