Hadoop_Hive远程模式部署/beeline客户端的连接使用

使用beeline客户端

Hadoop_Hive远程模式/hive客户端继续

与本地模式不同的是,远程模式只需要安装hive即可,不需要对其进行hive-site.xml的配置

启动metastore服务

hive本地模式和远程模式都要用的服务

启动方式:

使用hive的bin目录下的hive命令:bin/hive --service metabase

启动hiveserver2服务

hiveserver2又简称 HS2 是hive远程模式,beeline要用到的服务

不知道诸佬是否还记得我们之前在配置hadoop102的hive-site.xml时添加过一下这段code

<!-- H2S运行绑定host -->
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
        <!-- 此处的10000就是hiveserver2需要占用的端口需要保证在启动此服务前此端口没有被占用 -->
    </property>
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop102</value>
    </property>

这段code就是用来把hiveserver2(HS2)绑定到host(hadoop102)的,正常情况下,这些都是我们配置好的

启动方式:

使用hive的bin目录下的hive命令:bin/hive --service hiveserver2

hiveserver2服务启动比较慢,可能会显示几个ID后才能完全启动

启动不成功会造成后续beeline客户端连接不到hadoop102

检查是否启动成功的方式很简单,就是看HS2的端口是否被HS2占用了,使用命令sudo netstat -anp|grep 10000,在此命令查询到任何信息前都可视作没有启动成功

使用beeline客户端连接到hadoop102

还记得hadoop中的core-site.xml中的code吗

<!-- 整合hive -->
    <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
    </property>
    <property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
    </property>

用做整合hive

到此正常情况下,这些配置都是正常的,所以我们可以直接在集群打开,两个服务启动后连接hadoop102了

在hadoop103中运行beeline

在hive根目录下使用bin/beeline即可

进入beeline后使用命令! connect jdbc:hive2://hadoop102:10000访问1000端口来连接到hadoop102

会让输入账号密码,账号密码都是如上我们之前在hadoop102的core-site.xml中设置的,根据上面的code,账号就是root,密码就是空

回车

观察到

Hadoop_Hive远程模式部署/beeline客户端的连接使用

恭喜连接成功了

如果连接失败则可检查上述的两段代码处是否配置正确,修改之后切记一定要重启集群后再尝试连接

但本蒟蒻在此wa了无数次,背后原因令人&%¥#@

我在登录时输入root和密码空后显示一堆错误

后来也没查找到原因,但本蒟蒻注意到自己平时都是在使用cheetah这个用户进行操作的,可能这里输入root会有问题吧,于是我又回到core-site.xml中添加了cheetah用户和密码空,保存,重启集群,再试一遍,过了!离谱,不管了

不管这里是用什么用户登录的,要确保此用户对HDFS有读写权,这样才能更改或查询HDFS中的内容

番外_更加好的hivesql编程体验

在beeline中编写sql,没有任何提示,很不方便

后续本蒟蒻会用DataGrip(DG)来继续hive的学习

配置DataGrip

加载Apache Hive 启动文件

Database栏一般在(DG)的侧边栏中

Hadoop_Hive远程模式部署/beeline客户端的连接使用

加载hive的驱动

Hadoop_Hive远程模式部署/beeline客户端的连接使用

注意驱动版本需要与自己的hive版本一致。

创建新会话

Hadoop_Hive远程模式部署/beeline客户端的连接使用

Hadoop_Hive远程模式部署/beeline客户端的连接使用

这样就可以在会话中进行sql编写了,至于其他的功能,就请诸佬探索吧

??\(\mathcal{The}\) \(\mathcal{End}\)??

Hadoop_Hive远程模式部署/beeline客户端的连接使用

上一篇:RUST入门.md


下一篇:转一个 数学吧 的 帖 : 世界上最邪门的东西