Hive的安装与配置
- Hive 官网地址 http://hive.apache.org/
- 文档查看地址 https://cwiki.apache.org/confluence/display/Hive/GettingStarted
- 下载地址 http://archive.apache.org/dist/hive/
环境准备
Hive组件需要基于Hadoop系统进行安装。因此,在安装Hive组件前,需要确保Hadoop系统能够正常运行。在master节点上实现Hive组件安装。
Hive组件的部署规划和软件包路径如下:
(1)当前环境中已安装Hadoop全分布系统。
(2)本地安装MySQL数据库(账号root,密码1),
(3)MySQL端口号(3306)。
(4)MySQL的JDBC驱动包mysql-connector-java-5.1.47.jar
(5)Hive软件包
解压安装
#把 apache-hive-1.2.1-bin.tar.gz 上传到 linux 的/usr/local/src 目录下
#解压 apache-hive-1.2.1-bin.tar.gz 到/usr/local/src目录下面
tar -zxvf apache-hive-2.3.3-bin.tar.gz -C /usr/local/src
#修改 apache-hive-1.2.1-bin 的名称为 hive
mv apache-hive-hive-2.3.3-bin/ hive
#必须启动 hdfs 和 yarn
sbin/start-dfs.sh
sbin/start-yarn.sh
解决日志 Jar 包冲突
1.修改hive/lib下的log4j文件为.bak
mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak
2.删除hadoop/share/hadoop/yarn/lib下的jline文件
cd /usr/local/src/hadoop/share/hadoop/yarn/lib
rm -rf jline-0.9.94.jar
环境变量自行配置
初始化元数据库
bin/schematool -dbType derby -initSchema
启动hive
hive的简单使用
hive建议配合spark使用了,或者改成1版本,但学习用mr没有错误
#启动 hive
bin/hive
#查看数据库
show databases;
#此时只有一个default数据库,打开默认数据库default
use default;
#显示 default 数据库中的表
show tables;
#创建一张表
create table student(id int, name string);
#显示数据库中有几张表
show tables;
#查看表的结构
desc student;
#向表中插入数据
insert into student values(110,"mysql");
#查询表中数据
select * from student;
#退出 hive
quit;
#读取主机上的文件进行查询
#在/~这个目录下准备数据
#/~目录下创建 文件并添加数据
touch student.txt
vim student.txt
#注意以 tab 键间隔
1 hadoop
2 linux
3 号码
4 的世界
#启动 hive
bin/hive
#显示数据库
show databases;
#使用 default 数据库
use default;
#显示 default 数据库中的表
show tables;
#删除已创建的 student 表
drop table student;
# 创建 student 表, 并声明文件分隔符’\t’
create table student(id int,name string) row format delimited fields terminated by " ";
#加载/opt/module/data/student.txt 文件到 student 数据库表中。
load data local inpath '/opt/module/data/student.txt' into table student;
#Hive 查询结果
select * from student;
结果:
OK
1 dd
2 dm
select location,yaoqiu from test where location = '硕士' order by yaoqiu;
再打开一个客户端窗口启动 hive,会产生 java.sql.SQLException 异常。
原因是,Metastore 默认存储在自带的 derby 数据库中,推荐使用 MySQL 存储 Metastore;
安装mysql可以多个客户端使用hive
安装mysql
彻底卸载mysql
https://www.cnblogs.com/nicknailo/articles/8563456.html
安装mysql
https://shaonaiyi.blog.csdn.net/article/details/89855226
# mysql必须要做的操作
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysql密码' WITH GRANT OPTION;
#刷新
flush privileges;
# 将 MySQL 的 JDBC 驱动拷贝到 Hive 的 lib 目录下
$ cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib
配置hive+mysql
1) 在$HIVE_HOME/conf 目录下新建 hive-site.xml 文件
vim $HIVE_HOME/conf/hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc连接的URL,注意metastore和前面创建的数据库保持一致-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive? createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<!-- jdbc连接的Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- jdbc连接的username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- jdbc连接的password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>1</value>
</property>
</configuration>
配置完后初始化并启动hive
schematool -initSchema -dbType mysql