1. 环境要求
hive1.x版本兼容hadoop1.x和2.x
①必须已经安装JDK,在环境变量中有JAVA_HOME
②必须已经安装了HADOOP,在环境变量中有HADOOP_HOME
③hive解压即可
④建议配置HIVE_HOME到/etc/profile
a)可以直接在任意路径使用bin目录下的工具
b)默认hive在启动时,读取HIVE_HOME/conf中的配置文件
$ export HIVE_HOME = {{pwd}}
$ export PATH = $HIVE_HOME/bin:$PATH
hive只是个客户端,安装在任意机器(安装了java和hadoop)即可
注意:hive基于hadoop,在启动hive之前,必须先启动hadoop(hdfs,yarn)
2. Hive Cli 启动
使用的默认自带的derby数据库
bin/hive
3. HiveServer2 启动
3.1 安装Mysql
-
上传rpm包,检测当前机器是否已经安装了mysql
rpm -qa | grep mysql
rpm -qa | grep MySQL
-
卸载之前安装的残留包
sudo rpm -e --nodeps mysql-libs-x.y.z
-
安装服务端
sudo rpm -ivh MySQL-server-XXX.x86_64.rpm
-
安装客户端
sudo rpm -ivh MySQL-client-XXX.x86_64.rpm
-
如果是5.6的mysql,需要先为root@localhost设置密码:
-
查看随机生成的密码:
sudo cat /root/.mysql_secret
-
启动服务:
sudo service mysql start
-
mysql -uroot -p
刚查询的随机密码
-
mysql >
SET PASSWORD=password('密码')
提供一个可以从任意机器访问mysql服务实例的用户
查询当前有哪些用户:
select host,user,password from mysql.user;
删除除了localhost的所有用户
delete from mysql.user where host <> 'localhost';
修改root用户可以从任意机器登录:
update mysql.user set host='%' where user='root';
刷新权限
flush privileges;
重启服务:
sudo service mysql restart
验证本机登录:
sudo mysql -uroot -p密码
验证从外部地址登录:
sudo mysql -h hadoop103 -uroot -p密码`在这里插入代码片`
查看当前连接的线程:
sudo mysqladmin processlist -uroot -p密码
3.2 修改hive元数据的存储目录
- 在$HIVE_HOME/conf/目录下编辑hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop102:3306/metastore?createDatabaseIfNotExist=true</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>password</value>
<description>password to use against metastore database</description>
</property>
</configuration>
- 将mysql的驱动包,拷贝到$HIVE_HOME/lib下
mysql-connector-java-5.1.27-bin.jar
3.3 启动hive支持JDBC连接的服务
-
在hive中,hive使用hiveserver2服务作为支持JDBC连接的服务端!
-
先启动hiveserver2 设置后台运行
bin\hiveserver2 &
-
Beeline连接
bin/beeline
!connect 'jdbc:hive2://hadoop103:10000'
之后回车,输入用户名,密码随意!
[atguigu@hadoop101 apache-hive-1.2.1]$ `hiveserver2 &`
[1] 11042
[atguigu@hadoop101 apache-hive-1.2.1]$ `beeline `
Beeline version 1.2.1 by Apache Hive
beeline> `!connect 'jdbc:hive2://hadoop101:10000'`
Connecting to jdbc:hive2://hadoop101:10000
Enter username for jdbc:hive2://hadoop101:10000: `atguigu`
Enter password for jdbc:hive2://hadoop101:10000:
Connected to: Apache Hive (version 1.2.1)
Driver: Hive JDBC (version 1.2.1)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://hadoop101:10000>` show databases;`
OK
+----------------+--+
| database_name |
+----------------+--+
| default |
+----------------+--+
1 row selected (2.348 seconds)