EMR 配置 Hive on Spark

芒果2年前技术文章743

Hive3 on spark 集成
前置条件
hadoop yarn环境正常
oracle jdk 1.8版本
1、spark2 下载准备
https://archive.apache.org/dist/spark/spark-2.4.5/spark-2.4.5-bin-without-hadoop.tgz
解压到opt目录
hive3环境配置
export SPARK_HOME=/opt/spark-2.4.5-bin-without-hadoop
export SPARK_CONF_DIR=/opt/spark-2.4.5-bin-without-hadoop/conf
export SPARK_DIST_CLASSPATH=$HADOOP_HOME/etc/hadoop/*:$HADOOP_HOME/share/hadoop/common/lib/*:$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/hdfs/lib/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/yarn/lib/*:$HADOOP_HOME/share/hadoop/yarn/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*:$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/tools/lib/*
hive-site.xml
  <!-- Spark2 依赖库位置,在YARN 上运行的任务需要从HDFS 中查找依赖jar 文件 -->
  <property>
    <name>spark.yarn.jars</name>
    <value>${fs.defaultFS}/spark-jars/*</value>
  </property>
  
  <!-- Hive3 和Spark2 连接超时时间 -->
  <property>
    <name>hive.spark.client.connect.timeout</name>
    <value>30000ms</value>
  </property>
<property>
        <name>spark.executor.cores</name>
        <value>1</value>
    </property>
    <property>
        <name>spark.executor.memory</name>
        <value>1g</value>
    </property>
    <property>
        <name>spark.driver.memory</name>
        <value>1g</value>
    </property>
    <property>
        <name>spark.yarn.driver.memoryOverhead</name>
        <value>102</value>
    </property>
<property>
    <name>spark.shuffle.service.enabled</name>
    <value>true</value>
</property>
<property>
    <name>spark.eventLog.enabled</name>
    <value>true</value>
</property
spark-defaults.conf
spark.master=yarn
spark.eventLog.dir=hdfs:///user/spark/applicationHistory
spark.eventLog.enabled=true
spark.executor.memory=1g
spark.driver.memory=1g
spark 依赖库配置
cd /opt/spark-2.4.5-bin-without-hadoop/jars
mv orc-core-1.5.5-nohive.jar orc-core-1.5.5-nohive.jar.bak
//上传jar包到hdfs
hdfs dfs -rm -r -f /spark-jars
hdfs dfs -mkdir /spark-jars
cd /opt/spark-2.4.5-bin-without-hadoop/jars
hdfs dfs -put * /spark-jars
hdfs dfs -ls /spark-jars
hdfs dfs -mkdir /user/spark
hdfs dfs -mkdir /user/spark/applicationHistory
//拷贝jar包到hive
cp scala-compiler-2.11.12.jar scala-library-2.11.12.jar scala-reflect-2.11.12.jar spark-core_2.11-2.4.5.jar spark-network-common_2.11-2.4.5.jar spark-unsafe_2.11-2.4.5.jar spark-yarn_2.11-2.4.5.jar /opt/dtstack/Hive/hive_pkg/lib/
连接beeline进行测试
cd $HIVE_HOME
./bin/beeline -u 'jdbc:hive2://emr1:10000/default'
set hive.execution.engine=spark;
insert into  test1 values(1); 

EB4FC879-09D5-4FEF-B490-6D1291452B59.png



Ps:
问题1:
java.lang.IllegalArgumentException: Required executor memory (1024), overhead (384 MB), and PySpark memory (0 MB) is above the max threshold (1024 MB) of this cluster
解决问题1:
Hive-site:
<property>
        <name>spark.yarn.executor.memoryOverhead</name>
        <value>4096</value>
    </property>


相关文章

数据湖技术之iceberg(一)数据湖的概念

数据湖技术之iceberg(一)数据湖的概念

1  数据湖概念1.1.  什么是数据湖数据湖是一个集中式的存储库,允许你以任意规模存储多个来源、所有结构化和非结构化数据,可以按照原样存储数据,无需对数据进行结构化处理,并运行不...

zookeeper部署

安装前准备修改环境变量在所有zk节点都要执行 1. 编辑/etc/profile文件vim /etc/profile 内容如下:export ZOOKEEPER_HOME=/opt/zookeeper...

Flinksql Kafka 接收流数据并打印到控制台

Flinksql Kafka 接收流数据并打印到控制台

本文目的使用Flink SQL创建一个流处理作业,将来自Kafka主题"dahua_picrecord"的数据写入到另一个表”print_table”控制台中。使用sql-client前 需要启动ya...

Hive中小表与大表关联(join)的性能分析

经常看到一些Hive优化的建议中说当小表与大表做关联时,把小表写在前面,这样可以使Hive的关联速度更快,提到的原因都是说因为小表可以先放到内存中,然后大表的每条记录再去内存中检测,最终完成关联查询。...

开源大数据集群部署(四)Freeipa部署(kerberos+ldap)

开源大数据集群部署(四)Freeipa部署(kerberos+ldap)

1、 FreeIPA介绍Kerberos协议只是一种协议标准的框架,而MIT Kerberos则是实现了该协议的认证服务,是Kerberos的物理载体。将它与Hadoop服务进行集成便能够很好地解决安...

GET和POST请求的区别

GET和POST请求的区别GET请求GET /books/?sex=man&name=Professional HTTP/1.1 Host: www.wrox.com User-Agent...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。