搭建Hive数据仓库+python操作Hive

一、Hive安装及服务启动

Hive是基于Hadoop的数据仓库解决方案。由于Hadoop本身在数据存储和计算方面有很好的可扩展性和高容错性,因此使用Hive构建的数据仓库也秉承了这些特性。
简单来说,Hive就是在Hadoop上架了一层SQL接口,可以将SQL翻译成MapReduce去Hadoop上执行,这样就使得数据开发和分析人员很方便的使用SQL来完成海量数据的统计和分析,而不必使用编程语言开发MapReduce那么麻烦。

1、Hive下载

下载安装文件

2、解压安装文件并修改配置

(1)解压安装文件
解压安装文件到指定的的文件夹 /opt/hive

tar -zxf apache-hive-2.3.4-bin.tar.gz -C  opt/hive

(2)设置环境变量

vi /etc/profile

在最下面添加

export HIVE_HOME=/opt/hive
export PATH=$HIVE_HOME/bin:$PATH

(3)Hive集成mysql数据库
由于hive是默认将元数据保存在本地内嵌的 Derby 数据库中,但是这种做法缺点也很明显,Derby不支持多会话连接,因此本文将选择mysql作为元数据存储。
Hive集成mysql数据库
(4)修改安装目录下的conf/hive-site.xml文件(主要是与mysql的连接部分)

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>  <!-- jdbc驱动 -->
</property>
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>  <!-- mysql账号 --> 
</property>
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive-password</value>  <!-- mysql密码 --> 
</property>

(5)修改hive-env.sh

cp hive-env.sh.template hive-env.sh
vi hive-env.sh

添加HADOOP_HOME配置

HADOOP_HOME=/opt/hadoop/hadoop-2.6.4

3、启动Hive

启动Hive的几种方式

二、PyHive安装

方法一:

pip install sasl
pip install thrift
pip install thrift-sasl
pip install PyHive

方法二(推荐):

conda install PyHive

三、PyHive操作Hive数据仓库

连接数据库

from pyhive import hive

conn = hive.Connection(host='192.168.**.**', port=10000, username='****', database='default')
# host主机ip,port:端口号,username:用户名,database:使用的数据库名称
cursor = conn.cursor()

执行查询操作

cursor.execute('select * from tablename limit 10')
for result in cursor.fetchall():
     print(result)

推荐阅读更多精彩内容