一、学习目标
了解Hive的作用和又是
能够进行Hive的环境搭建
熟悉Hive的客户端操作
掌握Hive数据类型
掌握Hive的数据库和表操作
掌握Hive的数据分区
理解Hive的数据分桶
了解Hive的视图(view)
二、什么是Hive?
基于Hadoop的数据仓库解决方案
将结构化的数据文件映射为数据库表
提供类sql的查询语句HQL(Hive Query Language)
Hive让更多的人使用Hadoop
Hive成为Apache顶级项目
三、Hive的优势和特点(不能做实时,能做离线)
提供了一个简单的优化模型
HQl类SQl语法,简化MR(MaperReduce)开发
支持在不同的计算框架上运行
支持在HDFS和HBase上临时查询数据
支持用户自定义函数、格式
常用于ETL操作和BI
稳定可靠(真实生产环境)的批处理
有庞大活跃的社区
写数仓一般不用hive
四、Hive元数据管理
记录数据仓库中的模型数据
存储在关系数据库中,默认Derby(轻量级内嵌sql数据库适合测试和演示,实际生产使用mysql)
HCatalog将Hive元数据共享给其他应用程序。
五、安装hive教程
(1)下载hive压缩包
链接:https://pan.baidu.com/s/1gzTxBQsXEF429CqsqiR-MA
提取码:dq8i
(2)解压hive压缩包
tar –zxvf apache-hive-1.2.2.bin.tar.gz
(3)移动压缩后的文件,到soft文件夹下,改名为hive110
(4)在/opt/soft/hive110/conf文件夹下创建文件 hive-site.xml
touch hive-site.xml
(5)使用vim 修改hive-site.xml添加文件头
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
(6)在hive-site.xml中的configuration中加入一下配置根据注释自定义修改
<!-- 在configuration中加入配置 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/usr/soft/apache-hive-1.2.2-bin/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<!-- 如果是远程mysql数据库的话需要在这里写入远程的IP或hosts -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</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>ok</value>
</property>
(7)设置hive环境变量
#进入环境变量
vim /etc/profile
#hive env
export HIVE_HOME=/opt/soft/hive110
export PATH=$PATH:$HIVE_HOME/bin
(8)使用 Xftp 可视化工具 打开装有hive的服务器,进入/opt/soft/hive110/lib文件夹下
将mysql驱动包存放到里面
(9)运行hive 初始化命令
schematool -dbType mysql -initSchema
(10)查看mysql数据库是否 存在一个hive的数据库
mysql -u root -p
#输入你的mysql 密码
show databases;
#查看你所有的数据库
结果显示:
六、开启hive教程(一定要把hadoop启动)
1.启动hadoop
start-all.sh
使用jps查看进程号
查看是否是这么多进程如果不是用一下两条命令重启yarn
stop-yarn.sh #停止yarn
start-yarn.sh #启动yarn
jps #查看进程
2.启动hive
hive --service hiveserver2 #启动服务
3.登录hive方式(2种)
--1、
--2、
七、安装Zeppelin
下载zeppelin压缩包
链接:https://pan.baidu.com/s/1A8i-p4JoZ-XjUhHyPE9aFw
提取码:wvuw
1、解压Zeppelin
tar -zxf zeppelin-0.8.1-bin-all.tgz
2、移动Zeppelin文件夹
mv zeppelin-0.8.1-bin-all soft/zeppelin081
3、修改soft/zeppelin081/conf/zeppelin-site.xml
#生成zeppelin-site.xml
cp zeppelin-site.xml.template zeppelin-site.xml
#修改
vim zeppelin-site.xml
八、配置hive解释器
1.拷贝hive文件到zeppelin
cd /opt/soft/hive110/conf/
cp hive-site.xml /opt/soft/zeppelin081/conf/
cp /opt/soft/hadoop260/share/hadoop/common/hadoop-common-2.6.0-cdh5.14.2.jar /opt/soft/zeppelin081/interpreter/jdbc/
cp /opt/soft/hive110/lib/hive-jdbc-1.1.0-cdh5.14.2-standalone.jar /opt/soft/zeppelin081/interpreter/jdbc/
2.通过 Xftp 可视化工具 将java-json.jar 拖入到 /opt/soft/zeppelin081/lib下
3.启动hive
4.配置zeppelin环境变量
#zeppelin env
export ZEPPELIN_HOME=/opt/soft/zeppelin081
export PATH=$PATH:$ZEPPELIN_HOME/bin
5.启动zeppelin
zeppelin-daemon.sh start
打开浏览器,输入Ip:8080
这样就算初步成功了。
六、配置hive
用户名密码是之前配置的hive的用户名密码,我准备都是root
点击save保存后
搜索hive能看见就行了
六、使用解释器
1.%hive
使用hive解释器
2.show databases
查看数据库
3.创建数据库
create database mydemo
4.创建表
这边创建表的时候,表名前面可以看到表名前面有个数据库名,如果没有这个数据库名就会发生以下情况:
表文件夹与数据库文件夹同一目录
如果出现这个错误:java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:An exception was thrown while adding/shialidating class(es) : Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT instead
在你连接的mysql数据库里面运行这两条数据
alter database hive character set latin1;
flush privileges;
5.插入多条数据
这个过程会有点长
可以在数据库上看到表结构,但是数据在hadoop文件里面。