欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

在Linux的Spark中集成Hive,以及在Pycharm中集成Hive(附案例)

时间:2023-04-22
1、在Linux的Spark中集成Hive

1.1 为什么要集成Hive?

因为在Linux中的Spark安装包,默认是不能直接读取hive的表的,需要集成hive才能读取hive的库和表。

1.2 怎么做?

1、先配置hive环境变量,打开 vim /etc/profile,然后添加两行代码:

export HIVE_HOME=/export/server/hiveexport PATH=$HIVE_HOME/bin:$PATH

2、然后启动hive的metastore

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

3、将metastore的进程端口号告诉给Spark,在spark/conf/的hive-site.xml文件中(可以从hive/conf/hive-site.xml文件拷贝过来即可),里面需包括以下的内容:

hive.metastore.warehouse.dir /user/hive/warehouse hive.metastore.uris thrift://node1:9083

4、将mysql的驱动jar包拷贝到spark/jars目录中

5、将hive-site.xml分发到另外的机器上。

cd /export/server/spark/confscp ./hive-site.xml node2://$PWDscp ./hive-site.xml node3://$PWD

6、如何验证?

进入spark-sql界面

show databases; --查询的是hive的数据库use default;show tables;--展示hive的default库下的所有表。

进入pyspark会话

spark.sql('show databases;').show()

如果查询的数据没有表头字段名,则在hive-site.xml中补充一句

hive.cli.print.header true


2、在Pycharm中集成Hive

1、在SparkSession中写上3句话

      .config('hive.metastore.uris', 'thrift://node1.itcast.cn:9083')       .config('hive.metastore.warehouse.dir', '/user/hive/warehouse')       .enableHiveSupport()

2、测试代码

from pyspark.sql import SparkSessionif __name__ == '__main__': # 1-创建上下文对象 spark = SparkSession.builder .appName('test') .master('local[*]') .config('spark.sql.shuffle.partitions', '6') .config('hive.metastore.uris', 'thrift://node1.itcast.cn:9083') .config('hive.metastore.warehouse.dir', '/user/hive/warehouse') .enableHiveSupport() .getOrCreate() spark.sql('show databases').show() spark.sql('use test_db').show() spark.sql('select count(1) from t_log_clean').show()

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。