一、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
二、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)