SparkSql使用spark-sql cli查询Hive里面的数据
https://blog.csdn.net/qq_41489540/article/details/109957066
使用hiveserver2 + beeline
为什么hiveserver2 + beeline???
spark-sql 得到的结果不够友好, 所以可以使用hiveserver2 + beeline
开始操作
1.启动 thrift服务器
在spark的根目录执行
[root@zjj101 spark-2.1.1-bin-hadoop2.7]# sbin/start-thriftserver.sh \
> --master yarn \
> --hiveconf hive.server2.thrift.bind.host=zjj101\
> -–hiveconf hive.server2.thrift.port=10000 ;
starting org.apache.spark.sql.hive.thriftserver.HiveThriftServer2, logging to /root/soft/spark-2.1.1-bin-hadoop2.7/logs/spark-root-org.apache.spark.sql.hive.thriftserver.HiveThriftServer2-1-zjj101.out
[root@zjj101 spark-2.1.1-bin-hadoop2.7]#
说明
sbin/start-thriftserver.sh \
—master yarn \ # 是yarn模式 —hiveconf hive.server2.thrift.bind.host=zjj101\ # 这个是绑定的ip.一般是当前机器 -–hiveconf hive.server2.thrift.port=10000 # 这个是绑定的端口,写10000
2.再开个终端
可以还是连接上面那个服务器
进入到spark的根目录下面
进入beeline
bin/beeline
连接服务器命令
!connect jdbc:hive2://zjj101:10000
然后按照提示输入用户名和密码
默认的用户名和密码是 none none
# 执行 beeline
[root@zjj101 spark-2.1.1-bin-hadoop2.7]# bin/beeline
Beeline version 1.2.1.spark2 by Apache Hive
# 连接beeline服务器
beeline> !connect jdbc:hive2://zjj101:10000
Connecting to jdbc:hive2://zjj101:10000
# 用户名密码,如果没设置的话,默认都是none
Enter username for jdbc:hive2://zjj101:10000: none
Enter password for jdbc:hive2://zjj101:10000: ****
20/11/22 16:44:01 INFO jdbc.Utils: Supplied authorities: zjj101:10000
20/11/22 16:44:01 INFO jdbc.Utils: Resolved authority: zjj101:10000
20/11/22 16:44:01 INFO jdbc.HiveConnection: Will try to open client transport with JDBC Uri: jdbc:hive2://zjj101:10000
Connected to: Apache Hive (version 1.2.1)
Driver: Hive JDBC (version 1.2.1.spark2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
# 随便写个SQL
0: jdbc:hive2://zjj101:10000> show tables;
+-----------+--+
| tab_name |
+-----------+--+
| student |
+-----------+--+
1 row selected (1.049 seconds)
0: jdbc:hive2://zjj101:10000>