Hive基础

一、学习目标

了解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文件里面。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值