SparkSQL操纵Hive(二):环境部署

7 篇文章 0 订阅
4 篇文章 0 订阅

为了尝试SparkSQL操纵Hive,首先要进行一些环境上的部署。

基本配置

相关版本如下所示:
系统:Ubuntu 16.04.5
jdk: 1.8
scala: 2.11.8
spark: spark-2.2.0-bin-hadoop2.7
hadoop: hadoop-2.7.3
hive: apache-hive-2.2.0-bin
spark和hadoop按普通的安装方式即可。
安装hive可以参考《Hive 2.2.0安装配置》

Hive配置

  1. 修改hive的conf目录下的hive-site.xml配置。
    1)hive.metastore.uris
 <property>
	<name>hive.metastore.uris</name>
	<value>thrift:// master:9083</value>
</property>

2)hive.metastore.schema.verification

<property>
     <name>hive.metastore.schema.verification</name>
     <value>false</value>
 <description>

如果此处不设置为false,在后面启动spark-sql时,将会报如下错误。此处解决方法参考了《Spark-SQL连接Hive》

WARN metadata.Hive: Failed to access metastore. This class should not accessed in runtime.

Exception in thread “main” java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

Caused by: MetaException(message:Version information not found in metastore. )

  1. 后台启动Hive metastore。此语句会输出相应的进程号。
hive --service metastore  1>/dev/null  2>&1  &

Spark配置

  1. 将hive-site.xml和hdfs-site.xml放在spark的conf目录下。
  2. 将hive的lib目录下mysql connector的jar,比如mysql-connector-java-5.1.22-bin.jar复制到spark的jars目录下。
  3. 修改spark_env.sh文件,添加hive相关的配置。参考配置如下:
export SPARK_HOME=/home/lw/opt/spark/spark-2.2.0
export JAVA_HOME=/home/lw/opt/java/jdk1.8.0_111
export SCALA_HOME=/home/lw/opt/scala/scala-2.11.8
export HADOOP_HOME=/home/lw/opt/hadoop/hadoop-2.7.3
export HADOOP_CONF_DIR=/home/lw/opt/hadoop/hadoop-2.7.3/etc/hadoop
export HIVE_CONF_DIR=/home/lw/opt/hive/hive-2.2.0
export CLASSPATH=$CLASSPATH:/home/lw/opt/hive/hive-2.2.0/lib
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=7788 -Dspark.history.fs.logDirectory=hdfs://localhost:9000/historyForSpark2.2.0"
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077

SparkSQL连接Hive测试

运行spark-sql,执行一些hive sql语句。
在这里插入图片描述

如果输出情况与hive一样,则说明连接成功。可以直接通过SparkSQL操作hive。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值