Spark整合Hive

前言

Spark on Hive : 写spark sql,要查询的数据在hive表中

Hive on Spark : 写Hive SQL,最后通过spark引擎运行在集群中 提高Hive SQL的执行速度,替换计算引擎

hive默认包含的计算引擎(mr、tez、spark)

准备工作:在hive中创建一张表

create table t_user(
id int,
name string,
age int
)
row format delimited 
fields terminated by '\t';

load data local inpath '/opt/user.log' into table t_user;

在SparkSQL中访问 Hive

步骤1: 修改hive-site.xml配置文件

<property>
    <name>hive.metastore.uris</name>
    <value>thrift://hadoop10:9083</value>
</property>

步骤2:启动Metastore

nohup hive --service metastore >> /root/hive2.log 2>&1 &

如果未配置Metastore,在hive的配置文件中hive-site.xml添加以下代码问

配置文件所在路径参考(/opt/installs/hive3.1.2/conf/hive-site.xml)

	<property>
		<name>hive.metastore.uris</name>
		<value>thrift://hadoop11:9083</value>
	</property>

步骤3: 编写代码(本地运行)集群上只需将代码中的“.master("local[*]") \”去掉

创建SparkSession的时候,记得添加.enableHiveSupport()

from pyspark.sql import SparkSession
if __name__ == '__main__':
    spark = SparkSession.builder \
                .config('hive.metastore.uris','thrift://hadoop11:9083') \
                .config('spark.sql.warehouse.dir','hdfs://hadoop12:8020/user/hive/warehouse') \
                .master("local[*]") \
                .appName('测试spark连接hive').enableHiveSupport().getOrCreate()

    # spark.sql('use ods')
    spark.sql('select * from ods.t_user').show()

    spark.stop()

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值