hive2.1.0 on spark1.6.0 on yarn配置

spark安装

版本:hadoop2.6.0  hive-2.1.0  spark-1.6

1、编译spark

因为hive使用的是apache-hive-2.1.0,不需要spark集成的hive,所以需要自己手动编译spark源码,编译过程大约1个小时。

编译前提:

安装scala环境,联网,setting配置成阿里云的

修改sh脚本,修改一下maven_home,$MAVEN_HOME/bin/mvn

然后执行脚本就ok了,官网给出的执行语句是:

./make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.4"

hadoop的2.4和2.6无所谓,只要是2+的基本都可以。

开启spark报错找不到类:

解决办法是在spark-env.sh里面添加 :export SPARK_DIST_CLASSPATH=$(hadoop classpath)

期间可能有的包下载不下来,根据包的地址,手动用迅雷或者其他工具下载,放到maven仓库中,然后在执行脚本。

2、安装spark

首先,配置spark-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_91
export SCALA_HOME=/opt/wangyf05/scala-2.10.7
export HADOOP_HOME=/opt/wangyf05/hadoop-2.6.0-cdh5.7.1
export HADOOP_CONF_DIR=/opt/wangyf05/hadoop-2.6.0-cdh5.7.1/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_MASTER_IP=10.137.187.11
export SPARK_HOME=/opt/wangyf05/spark
export SPARK_LAUNCH_WITH_SCALA=0
export SPARK_WORKER_MEMORY=1g
export SPARK_DRIVER_MEMORY=1g
export SPARK_LIBRARY_PATH=/opt/wangyf05/spark/lib
export SPARK_MASTER_WEBUI_PORT=8086
export SPARK_WORKER_DIR=/opt/wangyf05/spark/work
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_PORT=7078
export SPARK_LOG_DIR=/opt/wangyf05/spark/logs
export SPARK_PID_DIR='/opt/wangyf05/spark/tmp'     这个引号得带着
export export SPARK_DIST_CLASSPATH=$(/opt/wangyf05/hadoop-2.6.0-cdh5.7.1/bin/hadoop classpath)

然后配置spark-defaults.conf

spark.master                         spark://master:7077
spark.eventLog.enabled               true
spark.eventLog.dir                   hdfs://master:9000/directory
spark.serializer                     org.apache.spark.serializer.KryoSerializer
spark.driver.memory                  1g
spark.executor.extraJavaOptions      -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"

配置slaves。可以和hadoop的slaves、works相同配置。

node1
node2

修改hive的hive-site.xml,添加如下,然后cp到spark下的conf下

<property>
<name>spark.home</name>
<value>/opt/wangyf05/spark</value>
</property>
<property>
<name>spark.master</name>
<value>spark://master:7077</value>
</property>
<property>
<name>spark.submit.deployMode</name>
<value>client</value>
</property>
<property>
<name>spark.eventLog.enabled</name>
<value>true</value>
</property>
<property>
<name>spark.eventLog.dir</name>
<value>hdfs://master:9000/directory</value>
</property>
<property>
<name>spark.serializer</name>
<value>org.apache.spark.serializer.KryoSerializer</value>
</property>
<property>
<name>spark.executor.memeory</name>
<value>1g</value>
</property>
<property>
<name>spark.driver.memeory</name>
<value>1g</value>
</property>
<property>
<name>spark.executor.extraJavaOptions</name>
<value>-XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"</value>
</property>

文件夹该创建的创建 tmp  work  logs

需要把spark-assembly-1.6.0-hadoop2.6.0.jar放到hive_home下的lib下

 

3、spark on yarn配置

需要添加这样一句话在spark-env.sh


export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

修改spark-defaults.conf

spark.master                     yarn-cluster

配置yarn-site.xml

<property>
  <name>yarn.resourcemanager.scheduler.class</name>
  <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>

配置hive-site.xml(hive下的和spark下的)

<property>
  <name>spark.master</name>
  <value>yarn-cluster</value>
</property>

最后记得同步各个节点。

重启集群,不启动spark,直接执行hive任务。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值