1.进入hive安装目录下的conf文件夹,更改hive-site.xml配置文件
其中配置参考hive安装中的配置hive-site.xml
你会发现/usr/hive/apache-hive-2.3.4-bin/conf/并没有hive-site.xml文件
直接新建一个就行
我的环境中已经配置了Hive-MetaStore,所以我这个文件之前就新建过了,如果是你新安装的hive ,那么你要自己新建一个hive-site.xml文件
整个文件完整内容如下:
其中粗体字部分是和hiveserver2有关的重要配置
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<!-- 这是hiveserver2 -->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property><property>
<name>hive.server2.thrift.bind.host</name>
<value>127.0.0.1</value>
</property></configuration>
2.配置hadoop中的core-site.xml文件
core-site.xml完整代码如下:
绿色粗体代码部分是核心配置
name标签中的hadoop.proxyuser.${用户名}.groups
这个${用户名}就是增加允许用来连接hiveserver2的username
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
--><!-- Put site-specific property overrides in this file. -->
<configuration>
<!-- 指定HDFS老大(namenode)的通信地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/hadoop-temp</value>
</property>
<!-- 如果连接不上10000 --><property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.chenjun.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.chenjun.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hive.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hive.groups</name>
<value>*</value>
</property></configuration>
第三步,启动HiveServer2
#以nohup形式启动hiveserver2
cd $HIVE_HOME
nohup hiveserver2>> hiveserver2.log 2>&1 &
回车之后
切换到root ,看看10000端口的进程是不是起来了
lsof -i:10000
如上图所示,可以看到 进程已经起来了
访问一下 localhost:10002 看看能不能打开
可以看到服务确实启动了
第四步,启动Zeppelin,并且配置和HiveServer2相关的解释器(Interpreter)
Zeppelin安装只需启动一个shell文件就完成了,及其简单 ,此处略去安装步骤
然后会进入一个表单填写的界面
hiveserver2-jdbc解释器配置,只需填写四处即可
1. default.driver 填写 org.apache.hive.jdbc.HiveDrivera
2. default.url 填写 jdbc:hive2://localhost:10000/test
3. default.user 填写 chenjun
4.Dependencies部分,把驱动加入到Dependencies中 ,如下图,
注意:
第三项的user填写必须要和之前上面提到的core-site.xml配置的user一样!
第四项的版本必须兼容你的hive版本 ,比如我hive是2.3.4, 自然使用了2.3.4的jar驱动
配置完成之后保存, 然后在Zeppelin中新建一个notebook
然后就说编写SQL,进行测试
此处我预先建了一张表 t_plate_num_report (车辆信息表)
等待执行完毕,自动展示图表