介绍
为了让 java 程序可以连接 hive,执行sql,需要配置、启动 hiveserver2
修改 hive-site.xml
在 hive-site.xml 文件中添加如下配置信息:
<!-- 指定 hiveserver2 连接的 host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>localhost</value>
</property>
<!-- 指定 hiveserver2 连接的端口号 -->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
修改 core-site.xml
允许用 root 用户登录hive,否则下面用 beeline 客户端连接不上hive
执行下面命令:
vim $HADOOP_HOME/etc/hadoop/core-site.xml
增加下面内容:
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
重启hadoop
停止:
stop-dfs.sh
stop-yarn.sh
启动:
start-dfs.sh
start-yarn.sh
启动 metastore
依赖 metastore 服务
hive --service metastore
启动 hiveserver2 服务(前台方式)
hive --service hiveserver2
或者
hiveserver2
启动 beeline 客户端连接hive
beeline -u jdbc:hive2://localhost:10000 -n root
解释:
- 用
root
登录,在上面 core-site.xml 配置
执行结果如下:
执行命令
show tables;
执行结果如下:
启动 hiveserver2 服务(后台方式)
使用前台方式启动服务,窗口不能关闭,可以用后台方式启动
nohup hive --service hiveserver2 2>&1 &
解释:
-
nohup
: 放在命令开头,表示不挂起,也就是关闭终端进程也继续保持运行状态 -
/dev/null
:是 Linux 文件系统中的一个文件,被称为黑洞,所有写入改文件的内容 都会被自动丢弃 -
2>&1
: 表示将错误输出 重定向 到标准输出上
第一个2表示错误输出,另外0表示标准输入,1表示标准输出 -
&
: 放在命令结尾,表示后台运行
一般会组合使用: nohup [xxx 命令操作]> file 2>&1 &,表示将 xxx 命令运行的结 果输出到 file 中,并保持命令启动的进程在后台运行。
执行结果:
[1] 24742
[root@hadoop1 ~]# nohup: 忽略输入并把输出追加到"nohup.out"
敲回车后,就可以继续输入命令
只能通过 kill 关闭
后台方式运行,只能通过 kill关闭
先执行 jps
查看java进程,如下:
7792 NameNode
8209 SecondaryNameNode
8514 ResourceManager
21122 RunJar
7957 DataNode
30614 Jps
89234 RunJar
8680 NodeManager
metastore 和 hiveserver2都显示RunJar ,此时不能辨别谁是谁
然后通过 kill
命令关闭:
kill -9 21122