栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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

1、在Linux的Spark中集成Hive

1.1 为什么要集成Hive?

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

1.2 怎么做?

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

export HIVE_HOME=/export/server/hive
export 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/conf
scp ./hive-site.xml node2://$PWD
scp ./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 SparkSession

if __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()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/744939.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号