文章目录
Hive数据仓库——环境搭建及简单使用
Hive的安装和使用
我们Hadoop框架版本的约定
JAVA_HOME=/usr/local/soft/jdk1.8.0_171
HADOOP_HOME=/usr/local/soft/hadoop-2.7.6
HIVE_HOME=/usr/local/soft/hive-1.2.1
一、Linux的JDK的安装 (已经安装过JDK可以跳过此步骤)
具体JDK安装步骤请点击下方靓仔原创博客链接:
Hadoop环境搭建之克隆前的准备及Linux的JDK的安装
二、离线安装MySQL(已经安装过MySQL可以跳过此步骤)
具体MySQL安装步骤请点击下方靓仔原创博客链接:
三、搭建Hadoop框架(分布式版本)
具体Hadoop安装步骤请点击下方靓仔原创博客链接:
Hadoop搭建(分布式版本)
四、搭建Zookeeper集群 (可省略)
具体Zookeeper安装步骤请点击下方靓仔原创博客链接:
Hadoop框架Zookeeper简介、搭建及简单使用
五、安装Hive数据仓库
前提是:mysql和hadoop必须已经成功启动了
可以选择将Zookeeper集群停掉不影响 zkServer.sh stop
1、验证MySQL和Hadoop是否安装成功
![](https://i-blog.csdnimg.cn/blog_migrate/f4c55a54ea95cf85e095c9e8b69efda2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5f3a43061e9daada87729ee5ca2c2d1e.png)
MySQL和Hadoop能正常相应就没问题
2、在MySQL中创建hive元数据库
警告!必须把编码设置为latin1编码,否则安装会造成版本上的冲突
mysql -uroot -p123456
create database hive character set "latin1";
show databases;
exit
![](https://i-blog.csdnimg.cn/blog_migrate/3b297bfb0210e0038e8d93bb4f942777.png)
3、上传Hive的安装包和JDBC驱动包
![](https://i-blog.csdnimg.cn/blog_migrate/28d9e6c481b412c77607ccf9de9ca7ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/13e6b63d20824a1b389517d70563b08a.png)
4、解压Hive的安装包并修改目录名称
#解压Hive的安装包
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /usr/local/soft/
#切换到soft目录
cd /usr/local/soft/
#修改目录名称
mv apache-hive-1.2.1-bin/ hive-1.2.1
![](https://i-blog.csdnimg.cn/blog_migrate/87fc8f7b92e4505a6bb308a57ac425b7.png)
- Hive的目录结构如下
![](https://i-blog.csdnimg.cn/blog_migrate/3a5b843d7f233e024ee1974695eff4a2.png)
5、配置Hive环境变量
#复制当前路径
pwd
/usr/local/soft/hive-1.2.1
#在文件末尾新增
HIVE_HOME=/usr/local/soft/hive-1.2.1
$HIVE_HOME/bin:
#保存退出
:wq
![](https://i-blog.csdnimg.cn/blog_migrate/f30af7125d1636cdacfd7ff7a86dfe6e.png)
#刷新环境变量
source /etc/profile
#输入hi按TAB键可以补出hive命令就配置成功了
[root@master hive-1.2.1]# hi
history hive hive-config.sh hiveserver2
![](https://i-blog.csdnimg.cn/blog_migrate/6c79360ade45a4a54bcfbeb5c06240a2.png)
6、进入hive-1.2.1/conf目录,复制备份文件并重命名
#进入hive-1.2.1/conf目录
cd conf/
#复制备份文件并重命名
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
![](https://i-blog.csdnimg.cn/blog_migrate/8256e00e1962b504540bd46f0c1f82fb.png)
7、配置hive的配置文件
hive的配置文件比较大,在linux中查找某项配置比较难,可以先将hive-site.xml文件复制到windows用文本编辑打开,然后ctrl+f查关键字修改,修改之后再放回到hive 的conf目录。
7.1、修改hive-env.sh
#修改hive-env.sh
vim hive-env.sh
#再最后一行加入三行内容(大家根据自己的目录和实际情况来添加)
HADOOP_HOME=/usr/local/soft/hadoop-2.7.6
JAVA_HOME=/usr/local/soft/jdk1.8.0_171
HIVE_HOME=/usr/local/soft/hive-1.2.1
![](https://i-blog.csdnimg.cn/blog_migrate/7ce895777e06137fcd44f420f2e7c0e3.png)
7.2、修改hive-site.xml
通过/对要修改的地方进行查找修改
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.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>
<property>
<name>hive.querylog.location</name>
<value>/usr/local/soft/hive-1.2.1/tmp</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/usr/local/soft/hive-1.2.1/tmp</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/usr/local/soft/hive-1.2.1/tmp</value>
</property>
7.3、拷贝mysql驱动到$HIVE_HOME/lib目录下
#切换到hive-1.2.1目录
cd /usr/local/soft/hive-1.2.1/
#拷贝mysql驱动到$HIVE_HOME/lib目录下
cp /usr/local/moudle/mysql-connector-java-5.1.49.jar ./lib/
#打开lib目录查看
cd lib/
ls
![](https://i-blog.csdnimg.cn/blog_migrate/6671df67df049b04536b1a74135c54b4.png)
7.4、将hive的jline-2.12.jar拷贝到hadoop对应目录下
#hive的 jline-2.12.jar 位置在
/usr/local/soft/hive-1.2.1/lib/jline-2.12.jar
#hive的jline-2.12.jar拷贝到hadoop下
cp /usr/local/soft/hive-1.2.1/lib/jline-2.12.jar /usr/local/soft/hadoop-2.7.6/share/hadoop/yarn/lib/
8、启动Hive
#第一次启动的时候比较慢
hive
#退出
exit;
quit;
9、修改mysql元数据库hive,让其hive支持utf-8编码以支持中文
#登录mysq
mysql -u root -p123456
#切换到hive数据库
use hive;
#1、修改字段注释字符集
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
#2、修改表注释字符集
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
#3、修改分区表参数,以支持分区键能够用中文表示
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
#4、修改索引注解(可选),没有建立索引执行这个命令会报错
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
六、测试hive
1、启动hive
hive
![](https://i-blog.csdnimg.cn/blog_migrate/ae100ffd8191a3799fd892432e15a951.png)
2、在hive中创建test1数据库
create database test1;
![](https://i-blog.csdnimg.cn/blog_migrate/1d03861e052f30687949512b48596d2a.png)
3、切换test1数据库
use test1;
![](https://i-blog.csdnimg.cn/blog_migrate/5b6363b56924eea979b3cb820249e22a.png)
4、创建students表
create table students(
id bigint comment '学生id',
name string comment '学生姓名',
age int comment '学生年龄',
gender string comment '学生性别',
clazz string comment '学生班级'
) comment '学生信息表'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
![](https://i-blog.csdnimg.cn/blog_migrate/4127b3027d444f29b35a3a5a3e111589.png)
5、创建score表
create table score(
id bigint comment '学生id',
score_id bigint comment '科目id',
score int comment '学生成绩'
) comment '学生成绩表'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
![](https://i-blog.csdnimg.cn/blog_migrate/fad4ca7f7832ed1840a9b707e70a21c7.png)
6、查看students表信息
desc students;
![](https://i-blog.csdnimg.cn/blog_migrate/551d4253a7fdbdac2e82cca72e2932fe.png)
7、查看score表信息
desc score;
![](https://i-blog.csdnimg.cn/blog_migrate/3ac16d2d5f94b921bcc937e2a30cad20.png)
8、利用可视化工具Navicat Premium 查看
- 在COLUMNS_V2中可以查看到我们的表
![](https://i-blog.csdnimg.cn/blog_migrate/4b7913f21d8d2e99bdc60aaebd5faed1.png)
9、这个时候我们访问HDFS的Web UI (master:50070)
![](https://i-blog.csdnimg.cn/blog_migrate/f58bdafa87e83d02fb7927277a9e9ad6.png)
这个时候只有表并没有数据
![](https://i-blog.csdnimg.cn/blog_migrate/587396c941a99d5cf53bda7090ebe4b2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2e086cef087d366d2571211291079181.png)
10、上传数据
1、在soft目录下新建data目录用来存放数据
#创建目录
mkdir data
cd data/
2、安装lrzsz 方便数据直接拖放到shell中
#安装lrzsz
yum install lrzsz
![](https://i-blog.csdnimg.cn/blog_migrate/3db3814845c01bfaacda4e90000f4ada.png)
3、上传student.txt数据到hdfs
hdfs dfs -put students.txt /user/hive/warehouse/test1.db/students/
![](https://i-blog.csdnimg.cn/blog_migrate/c4ce53ea30a9deef7c24004989ff0916.png)
4、上传score.txt数据到hdfs
hdfs dfs -put score.txt /user/hive/warehouse/test1.db/score
![](https://i-blog.csdnimg.cn/blog_migrate/79ad02ff5bb75d6a3d03ca01d21b88d1.png)
5、查询students表数据
#记住用select * 查询数据的时候记得加上 limit (数据太大)
select * from students limit 10;
![](https://i-blog.csdnimg.cn/blog_migrate/36a576ad0f4a49b0e6a7be6eba9894fd.png)
6、查询score表数据
#记住用select * 查询数据的时候记得加上 limit (数据太大)
select * from score limit 10;
![](https://i-blog.csdnimg.cn/blog_migrate/604d7626189c6ea5cdb77d78e0f7dc73.png)
至此,在Hadoop上搭建Hive仓库就完成了
到底啦!关注靓仔欣赏靓仔更多的作品q(≧▽≦q)