妚簫尐 发表于 2024-3-8 03:28:06

使用python连接hive数仓

1 版本参数

查看hadoop和hive的版本号
ls -l /opt
# 总用量 3
# drwxr-xr-x11 rootroot227 1月26 19:23 hadoop-3.3.6
# drwxr-xr-x10 rootroot205 2月12 18:53 hive-3.1.3
# drwxrwxrwx.4 rootroot   32 2月11 22:19 tmp查看java版本号
java -version
# java version "1.8.0_391"
# Java(TM) SE Runtime Environment (build 1.8.0_391-b13)
# Java HotSpot(TM) 64-Bit Server VM (build 25.391-b13, mixed mode)查看mysql版本号
mysql --version
# mysqlVer 8.0.35 for Linux on x86_64 (MySQL Community Server - GPL)2 启动环境

启动hadoop集群
start-all.sh
# WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER.
# Starting namenodes on
# 上一次登录:三 3月6 23:34:59 CST 2024tty1 上
# Starting datanodes
# 上一次登录:三 3月6 23:37:56 CST 2024pts/0 上
# Starting secondary namenodes
# 上一次登录:三 3月6 23:38:01 CST 2024pts/0 上
# Starting resourcemanager
# 上一次登录:三 3月6 23:38:30 CST 2024pts/0 上
# Starting nodemanagers
# 上一次登录:三 3月6 23:39:01 CST 2024pts/0 上查看hadoop集群状态
jps|sort
# 2337 NameNode
# 2548 DataNode
# 3161 ResourceManager
# 3379 NodeManager
# 5654 Jps启动hiveserver2服务
nohup hiveserver2 &
# 7486
# (pyspark) (base) # nohup: 忽略输入并把输出追加到"nohup.out"
# 检测hiveserver2状态
jps|grep 7486
# 7486 RunJar检测thrift端口号状态
netstat -anp|grep 10000
# tcp6    0    0 :::10000    :::*    LISTEN    7486/java3 安装环境

安装python第三方库
conda install sasl
conda install thrift
conda install thrift-sasl
conda install pyhive
conda install sqlalchemy
conda install pandas使用everything检索sasl2文件夹并打开该文件夹
在open git bash here窗口查看sasl2里面的文件
ls
# saslANONYMOUS.dll*saslLOGIN.dll*saslPLAIN.dll*   saslSQLITE.dll*
# saslCRAMMD5.dll*    saslNTLM.dll*   saslSASLDB.dll*saslSRP.dll*
# saslDIGESTMD5.dll*saslOTP.dll*    saslSCRAM.dll*创建C:/CMU/bin/sasl2文件夹
拷贝当前文件夹的dll文件到C:/CMU/bin/sasl2文件夹中
mkdir -p C:/CMU/bin/sasl2
cp ./* C:/CMU/bin/sasl2/4 读取数据

编写python脚本连接hive数仓
import pandas as pd
from pyhive import hive
from sqlalchemy import create_engine

engine = create_engine('hive://root:ml123456@ml:10000/default?auth=LDAP')
df = pd.read_sql_query('show databases',con=engine)
df.head()能看到数据库名记录就证明连接成功

来源:https://www.cnblogs.com/mlcode/p/18060136/pyhive
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 使用python连接hive数仓