安装Hive
1、上传解压
上传 apache-hive-2.3.9-bin.tar.gz 到 /opt/
解压压缩包:
[root@zhaohui01 opt]# tar zxvf apache-hive-2.3.9-bin.tar.gz
2、修改配置文件
-
修改hive-env.sh.template 文件为 hive-env.sh
-
在 hive-env.sh 添加如下环境变量
HADOOP_HOME=/opt/hadoop-2.7.7 HIVE_CONF_DIR=/opt/hive-2.3.9/conf JAVA_HOME=/opt/jdk-1.8
-
修改hive-default.xml 文件为 hive-site.xml
<?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://zhaohui01:3306/metastore</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> </configuration>
-
下载mysql驱动到lib
[root@zhaohui01 lib]# wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar
-
在bin目录下初始化驱动
[root@zhaohui01 hive-2.3.9]# cd bin/ [root@zhaohui01 bin]# ./schematool -initSchema -dbType mysql
3、配置环境变量
echo 'export HIVE_HOME=/opt/hive-2.3.9' >> /etc/profile echo 'export PATH=$HIVE_HOME/bin:$PATH' >> /etc/profile source /etc/profile
4、启动hive
-
hive提供了控制台操作方式
# hive 用于启动终端 hive
- 连接jdbc
1、本地连接直接到 /opt/hive-2.3.9/bin/ 目录下执行 hiveserver2 命令
[root@zhaohui01 bin]# hiveserver2
2、在另一个终端查看进程,出现 RunJar 说明服务开启
3、查看进程和端口号
-
# 查看进程 [root@zhaohui01 ~]# ps -ef | grep 5099 root 5099 2320 6 16:46 pts/0 00:00:17 /opt/jdk-1.8/bin/java -Xmx256m -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/opt/hadoop-2.7.7/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/opt/hadoop-2.7.7 -Dhadoop.id.str=root -Dhadoop.root.logger=INFO,console -Djava.library.path=/opt/hadoop-2.7.7/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Xmx512m -Dproc_hiveserver2 -Dlog4j.configurationFile=hive-log4j2.properties -Djava.util.logging.config.file=/opt/hive-2.3.9/conf/parquet-logging.properties -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /opt/hive-2.3.9/lib/hive-service-2.3.9.jar org.apache.hive.service.server.HiveServer2 root 5375 5304 0 16:51 pts/1 00:00:00 grep --color=auto 5099 # 查看端口号 [root@zhaohui01 ~]# netstat -nap | grep 5099 tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 5099/java tcp 0 0 0.0.0.0:10002 0.0.0.0:* LISTEN 5099/java tcp 0 0 192.168.235.10:47514 192.168.235.10:3306 ESTABLISHED 5099/java tcp 0 0 192.168.235.10:47522 192.168.235.10:3306 ESTABLISHED 5099/java tcp 0 0 192.168.235.10:47520 192.168.235.10:3306 ESTABLISHED 5099/java tcp 0 0 192.168.235.10:47512 192.168.235.10:3306 ESTABLISHED 5099/java unix 2 [ ] STREAM CONNECTED 256986 5099/java unix 3 [ ] STREAM CONNECTED 257052 5099/java unix 2 [ ] STREAM CONNECTED 252575 5099/java unix 3 [ ] STREAM CONNECTED 257051 5099/java
-
JDBC 连接使用 10000 端口号
-
hive提供JDBC服务器的远程连接方式
beeline> ! connect jdbc:hive2://zhaohui01:10000
报错原因:没有root权限
解决方式:修改hdfs的访问权限
修改hadoop core-site.xml文件
<property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property>
-
分发配置文件,并重启HDFS集群
sscp /opt/hadoop-2.7.7/etc/hadoop/core-site.xml /opt/hadoop-2.7.7/etc/hadoop/ start-dfs.sh
-
使用hiveserver2 开启hive的JDBC服务器
-
hive提供beeline客户端连接hive2服务
[root@zhaohui01 bin]# beeline Beeline version 2.3.9 by Apache Hive # 连接JDBC beeline> ! connect jdbc:hive2://zhaohui01:10000 Connecting to jdbc:hive2://zhaohui01:10000 # 输入username Enter username for jdbc:hive2://zhaohui01:10000: # 输入password Enter password for jdbc:hive2://zhaohui01:10000: Connected to: Apache Hive (version 2.3.9) Driver: Hive JDBC (version 2.3.9) Transaction isolation: TRANSACTION_REPEATABLE_READ # 查看数据库 0: jdbc:hive2://zhaohui01:10000> show databases; +----------------+ | database_name | +----------------+ | db_hive | | db_test01 | | default | +----------------+ 3 rows selected (1.378 seconds) # 退出客户端 0: jdbc:hive2://zhaohui01:10000> !exit
4.数据库连接工具远程连接 IDEA