8、Hive数据仓库——环境搭建及简单使用

21 篇文章 4 订阅


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安装步骤请点击下方靓仔原创博客链接:

  大数据之在Liunx中安装MySQL


三、搭建Hadoop框架(分布式版本)

  具体Hadoop安装步骤请点击下方靓仔原创博客链接:
  Hadoop搭建(分布式版本)


四、搭建Zookeeper集群 (可省略)

  具体Zookeeper安装步骤请点击下方靓仔原创博客链接:
  Hadoop框架Zookeeper简介、搭建及简单使用


五、安装Hive数据仓库

前提是:mysql和hadoop必须已经成功启动了
可以选择将Zookeeper集群停掉不影响 zkServer.sh stop

1、验证MySQL和Hadoop是否安装成功

MySQL和Hadoop能正常相应就没问题

2、在MySQL中创建hive元数据库

警告!必须把编码设置为latin1编码,否则安装会造成版本上的冲突

mysql -uroot -p123456
create database hive character set "latin1";
show databases;
exit

3、上传Hive的安装包和JDBC驱动包


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
  • Hive的目录结构如下

5、配置Hive环境变量

#复制当前路径
pwd
/usr/local/soft/hive-1.2.1

#在文件末尾新增
HIVE_HOME=/usr/local/soft/hive-1.2.1
$HIVE_HOME/bin:

#保存退出
:wq
#刷新环境变量
source /etc/profile

#输入hi按TAB键可以补出hive命令就配置成功了
[root@master hive-1.2.1]# hi
history         hive            hive-config.sh  hiveserver2

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

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
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
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

2、在hive中创建test1数据库

create database test1;

3、切换test1数据库

use test1;

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 ',';

5、创建score表

create table score(
    id bigint comment '学生id',
    score_id bigint  comment '科目id',
    score int comment '学生成绩'
) comment '学生成绩表'  
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

6、查看students表信息

desc students;

7、查看score表信息

desc score;

8、利用可视化工具Navicat Premium 查看

  • 在COLUMNS_V2中可以查看到我们的表

9、这个时候我们访问HDFS的Web UI (master:50070)

这个时候只有表并没有数据


10、上传数据

1、在soft目录下新建data目录用来存放数据
#创建目录
mkdir data
cd data/
2、安装lrzsz 方便数据直接拖放到shell中
#安装lrzsz 
yum install lrzsz
3、上传student.txt数据到hdfs
hdfs dfs -put students.txt /user/hive/warehouse/test1.db/students/
4、上传score.txt数据到hdfs
hdfs dfs -put score.txt /user/hive/warehouse/test1.db/score
5、查询students表数据
#记住用select *  查询数据的时候记得加上 limit  (数据太大)
select * from students limit 10;
6、查询score表数据
#记住用select *  查询数据的时候记得加上 limit  (数据太大)
select * from score limit 10;

至此,在Hadoop上搭建Hive仓库就完成了


到底啦!关注靓仔欣赏靓仔更多的作品q(≧▽≦q)

  • 12
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liangzai2048

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值