python连接hive操作

1:这个问题本来我在暑假就开始想了,因为当时无聊写hive程序进行数据分析,但是后面发现只有hive语句不是很好,程序有点难写,所以我就想能不能像mysql一样就行python连接,并且python更适合搞数据分析,所以我当时就找方法,能不能搞,可惜搞不了,现在发现有可能当时那个python包要配置好多环境,比较复杂,反正没有成功,这几天身体不舒服,我就想了一下,然后发现python里面还有其他连接hive包,一顿操作下来,哈哈成功了,所以我把这个方法分享下,

2:配置本机环境(我电脑是anacoda环境,如果anacoda在服务端,就全部在服务端执行)

安装 pure-sasl
pip install pure-sasl
安装 thrift_sasl
pip install thrift_sasl==0.2.1 --no-deps
安装thrift
pip install thrift_sasl==0.2.1 --no-deps
安装最终的:impyla
pip install impyla
pip install thriftpy

3:配置服务端环境

#启动hadoop
start-all.sh 
#启动hive两个服务
nohup /export/hive/bin/hive --service metastore &
nohup /export/hive/bin/hive --service hiveserver2 &

#不管这个,反正是增加权限的,搞就行了(在用python导数据数据时候权限问题)
hadoop fs -chmod -R 777 /user/hive/warehouse

hadoop fs -chmod -R 777 /   

4:DataSpell里面敲python连接hive代码

from impala.dbapi import connect
#                 服务端名称             连接的数据库可以不要                    
conn = connect(host='master', port=10000, database='db1', auth_mechanism='PLAIN')

#conn = connect(host='master', port=10000, #auth_mechanism='PLAIN',user="root",password="123456",database="db1") 这个也可以

cur = conn.cursor()

#查看数据库
cur.execute('SHOW DATABASES')
print(cur.fetchall())

#查看表
cur.execute('SHOW Tables')
print(cur.fetchall())


#查看tb1表里面数据 因为这个表里面我有数据,不会报错,看你自己有什么库和表
cur.execute('select * from db1.tb1')
print(cur.fetchall())


#创建db2数据库   try   except 把错误包起来,其实也不能说错误吧,无所谓吧 Ctrl+Alt+t 快捷键
try:
    cur.execute('CREATE DATABASE IF NOT EXISTS db2')
except:
    print("创建失败")

# 关闭连接
cur.close()
conn.close()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值