美文网首页
Hive on Spark安装配置

Hive on Spark安装配置

作者: _Kantin | 来源:发表于2021-07-01 20:27 被阅读0次

背景

  • 原来用CDH的时若想使用Hive on Spark,则只需要简单的set一下engine即可。但在开源版本中,想实现上述功能并非容事,下面做下整个操作过程的记录。

部署过程

  • 下载spark源码
    • 由于我使用的hive 2.3.x版本,根据官方的对照边相应的spark为2.0.0,于是在Git上下载了对应的代码后进行编译,编译的目的是去掉Hive jar,得到纯净版的Spark。
  • 编译命令(注:把hadoop版本换成实际版本)
source /etc/profile
./dev/make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.6,parquet-provided"
  • 编译成功
    • 编译成功后在项目的路径下会出现一个名为:spark-2.0.3-SNAPSHOT-bin-hadoop2-without-hive.tgz的包,对其进行解压。
    • 将解压包中的jars目录中的scala-library,spark-core,spark-network-common*这三个jar拷贝到你的$HIVE_HOME的lib下。
    • 将上述解压后的路径设置为SPARK_HOME,配置在 /etc/profile中。
  • spark配置
#进入到SPARK_HOME下的conf目录
cp spark-env.sh.template    spark-env.sh
#在spark-env.sh中添加内容
export SPARK_DIST_CLASSPATH=$(${HADOOP_HOME}/bin/hadoop classpath)
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  • hdfs配置
    • 在hdfs上创建spark_jar包和spark_log
    hdfs dfs -mkdir /tmp/hive2/spark_jar
    hdfs dfs -mkdir /tmp/hive2/spark_log
    
  • 将spark jar拷贝到hdfs路径上
    hdfs dfs  -put  ${SPARK_HOME}/jars/*   /tmp/hive2/spark_jar
    
  • hive中新增配置
    <property>
      <name>spark.home</name>
      <value><your_spark_home></value>
     </property>
     <property>
          <name>spark.master</name>
          <value>yarn-cluster</value>
      </property>
     <property>
          <name>hive.spark.client.channel.log.level</name>
          <value>WARN</value>
     </property>
     <property>
          <name>spark.eventLog.enabled</name>
          <value>true</value>
     </property>
     <property>
          <name>spark.eventLog.dir</name>
          <value>hdfs://<your_hdfs>:8020/tmp/hive2/spark_log</value> 
     </property>
      <property>
          <name>spark.executor.memory</name>
          <value>1g</value>
      </property>
      <property>
          <name>spark.executor.cores</name>
          <value>2</value>
      </property>
      <property>
          <name>spark.executor.instances</name>
          <value>6</value>
      </property>
      <property>
          <name>spark.yarn.executor.memoryOverhead</name>
          <value>150m</value>
      </property>
      <property>
          <name>spark.driver.memory</name>
          <value>4g</value>
      </property>
      <property>
          <name>spark.yarn.driver.memoryOverhead</name>
          <value>400m</value>
      </property>
      <property>
          <name>spark.serializer</name>
          <value>org.apache.spark.serializer.KryoSerializer</value>
      </property>
       <property>
           <name>hive.spark.client.server.connect.timeout</name>
           <value>900000</value>
       </property>
      <property>
            <name>spark.yarn.jars</name>
            <value>hdfs://<your_hdfs>:8020/tmp/hive2/spark_jar/*</value>
      </property>
      <property>
          <name>hive.execution.engine</name>
          <value>spark</value>
      </property>
    
  • 将hive-site.xml拷贝到SPARK_HOME的conf目录下。

部署完成

  • 在直接登录hive client或者beeline执行需要跑MR的sql,即可看到yarn上提交了hive on yarn类型的任务。

相关文章

网友评论

      本文标题:Hive on Spark安装配置

      本文链接:https://www.haomeiwen.com/subject/cbksultx.html