centos7下python连接 hive2

本文档介绍了如何在CentOS7环境下使用Python2.7连接Hive2.3.4。首先,参照官方文档进行设置,过程中会遇到Python安装pyhs2库时缺少sasl头文件的问题。解决方法是通过yum搜索并安装sasl,然后重新安装pyhs2。最后,在PyCharm中运行官方代码并调整为个人配置,成功实现无错误连接。

参考的基础是官方文档:
https://cwiki.apache.org/confluence/display/Hive/Setting+up+HiveServer2#SettingUpHiveServer2-WebUIforHiveServer2
我的环境:

  • python2.7
  • hive2.3.4
  • centos7 64
    根据官网,首先要安装pyh2
>pip install pyhs2

装到一半时会报错,说没有sasl 这个文件(sasl/sasl.h: No such file or directory),那么现在必须安装这个sasl ,首先在yum中搜索

[root@localhost ~]$ yum search sasl|grep dev
cyrus-sasl-devel.i686 : Files needed for developing applications with Cyrus SASL
cyrus-sasl-devel.x86_64 : Files needed for developing applications 
### 安装 Hive 和配置与 MongoDB 集成 #### 一、安装 Hive 为了在 CentOS 上成功安装 Hive,需按照以下方法操作: 1. **下载并解压 Hive** 下载最新版本的 Apache Hive 并将其解压缩至指定路径。可以使用 `wget` 命令完成此过程[^2]。 ```bash wget https://downloads.apache.org/hive/stable/apache-hive-3.1.2-bin.tar.gz tar -xzvf apache-hive-3.1.2-bin.tar.gz -C /usr/local/ ln -s /usr/local/apache-hive-3.1.2-bin /usr/local/hive ``` 2. **设置环境变量** 编辑 `/etc/profile` 文件以添加 Hive 的环境变量,并使更改生效。 ```bash echo 'export HIVE_HOME=/usr/local/hive' >> /etc/profile echo 'export PATH=$PATH:$HIVE_HOME/bin' >> /etc/profile source /etc/profile ``` 3. **配置 Hive 运行环境** 切换到 `$HIVE_HOME/conf/` 目录下编辑必要的文件来定义 Hive 的运行参数。 ```bash cp hive-default.xml.template hive-site.xml vi $HIVE_HOME/conf/hive-site.xml ``` 在 `hive-site.xml` 中增加如下内容以便于后续连接 MySQL 或其他元存储服务(如果需要)。 ```xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> </property> ``` --- #### 二、配置 Hive 与 MongoDB 的集成 要实现 Hive 与 MongoDB 的无缝协作,可以通过 MongoDB 提供的 Hive Connector 来达成目标。 1. **安装 MongoDB-Hive Connector** 下载适用于当前 Hive 版本的 MongoDB-Hive Connector JAR 包,并放置到 Hive 的 lib 路径中。 ```bash mkdir -p $HIVE_HOME/lib/mongo cd $HIVE_HOME/lib/mongo wget https://repo.mongodb.com/artifactory/repo/com/mongodb/mongo-hadoop-core/latest.jar mv latest.jar mongo-hadoop-core-latest.jar ``` 2. **修改 Hive-Site.XML** 更新 `hive-site.xml` 文件以支持 MongoDB 数据源。 ```xml <property> <name>hive.input.format</name> <value>org.apache.hadoop.hive.ql.io.MongoInputFormat</value> </property> <property> <name>hive.output.format</name> <value>org.apache.hadoop.hive.ql.io.MongoOutputFormat</value> </property> <property> <name>hive.mongo.input.uri</name> <value>mongodb://localhost:27017/test.user</value> </property> <property> <name>hive.mongo.output.uri</name> <value>mongodb://localhost:27017/test.new_user</value> </property> ``` 3. **创建外部表映射 MongoDB 数据集合** 使用 Hive CLI 创建一张指向 MongoDB 表的数据结构。 ```sql CREATE EXTERNAL TABLE user_mongo ( name STRING, age INT ) STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler' WITH SERDEPROPERTIES ('mongo.columns.mapping'='{"name":"name","age":"age"}'); ``` 4. **验证数据读写功能** 插入测试记录或者查询已有的文档以确认两者之间的交互正常工作。 ```sql INSERT INTO TABLE user_mongo VALUES('zhangsan', 30); SELECT * FROM user_mongo; ``` --- ### 总结 通过上述步骤,在 CentOS 系统上完成了 Hive 的部署以及与 MongoDB 的联合配置。这使得能够利用 SQL 查询语法处理 NoSQL 数据库中的非结构化信息[^1][^3]。 ```python print("Integration Completed!") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值