全部版块 我的主页
论坛 数据科学与人工智能 大数据分析 spark高速集群计算平台
4047 0
2016-06-12

一、hive 的历史价值

1)hive是hadoop上的killApplication,hive是hadoop上的数据仓库,hive同时兼具有数据仓库中的存储引擎和查询引擎的作用,而sparksql是一个更加出色和高级的查询引擎。所以在现在企业级应用中,sparksql+hive成为了业界使用大数据最为高效和流行的趋势。

2)hive是facebook推出的。只要是为了不懂java代码编码的人员也能通过sql来驾驭hadoop集群进行分布式数据的多维度分析,甚至可以通过web界面来直接操作hive(通过hive来驾驭hadoop),这对于市场营销人员,系统管理员,数据分析至关重要。

3)hive 的核心把hive 自己的sql语言即hql语言翻译为mapreduce代码,然后交给hadoop集群执行,也就是说hive本身是一个单机版的软件!!!

4)由于是通过写hql来完成业务需求的,所以相对于编写mapreduce而已非常的方便简易和灵活,能够非常轻易的满足业务的需求和多变的场景。

5)Hive几乎存在一切使用大数据的公司中!


二、Hive的本质到是什么?

1)Hive是分布式数据仓库,同时又是查询引擎,所以Spark SQL取代只是Hive查询引擎,在企业实际生产环境下Hive + Spark SQL是目前最为经典的数据分析组合;

2)Hive本身就是一个简单单机版本的软件,主要负责:

a)把HQL翻译成Mapper(s)-Reducer-Mapper(s)的代码; 并且可能产生很多MapReduce的Job;

b)把生产的MapReduce代码及相关资源打包成为Jar并发布到Hadoop集群中且进行运行(这一切都是自动的)。


三、hive 的架构设计

1)Hive的架构图

OU}NCOF4C0](N%Y(H2~~UXL.png

2)Hive中的数据只是元数据,所谓元数据就是hive要操作数据的描述信息,该metastore默认存储在derby中,但是derby不能被生成环境下的多用户去使用,所以生产环境下一般最常用的是mysql来存储hive 的元数据。

3)Hive要操作的数据是由hive 的配置文件决定的。在生产环境下该数据位于hdfs 上(其实也就是hdfs上的普通文件而已,只不过是按照hive的方式组织一下)。

4)从hive的角度来看,数据就是一张张的table,我们的操作就是基于sql来多维度的查询table。

5)人们一直努力用hive来取代传统的数据仓库,但是以失败告终。因为hive太慢啦!!!所以业界目前趋势上黄金组合是hive(数据仓库的存储引擎)+sparksql(分析查询引擎)。

6)Hql会被hive解释,优化并生成查询计划,一般情况下查询计划会被转化为mapreduce任务。

7)但是形如select * from table不会转化成为mapreduce 任务。

8)Hive 有索引吗? 没有!!!


四、Hive的安装实战

Hive只在一个节点上安装即可

1)上传tar包

2)解压

复制代码

3)更名

复制代码

4)配置mysql 5.6

1)

复制代码

B@EQX3`X{C7_H]08B)TH4L4.png

2)卸载

复制代码

3)安装mysql

复制代码

4)启动mysql

复制代码

HINYU6H}3))E(Z$YE`[$`4K.png

复制代码

IN@YW~4L[O44IFOEQU(MET6.png

5)修改mysql的密码(注意:删除匿名用户,允许用户远程连接)

复制代码

`]Y8(UQVD)T3YHP2G}JU.png

点击回车

N)I_IMU28JF@]BI$(MC211K.png

设置新密码

N`4]{$C43JR0AP`QA~LUFVC.png

6)登录mysql 用自己设置的新密码

复制代码

G91LNYE]NSQ`(TEM_BO(8{B.png

7)查看数据库

复制代码

ILY3Q@X4[K1ZXD$DSL4VCQ7.png

8)修改mysql的用户登录权限,允许远程连接

复制代码

5V{][XV81Z{~@O8PS2V{K4O.png

9)用Navicat for MySQL 测试下远程连接


五、配置Hive

1)修改 hive-site.xml

复制代码

修改hive-site.xml(删除所有内容,只留一个<property></property>)
添加如下内容:

复制代码

2)修改hive-env.sh

复制代码

在最后一行添加以下内容

复制代码

3)修改hive-config.sh

复制代码

在最后一行添加以下内容

复制代码

4)下载驱动包(mysql-connector-java-5.1.35.tar.gz) 放入usr/local/hive/apache-hive-1.2.1/lib/


六、启动hive

1)先启动hadoop的hdfs 和yarn,mysql在启动hive。启动成功如下图所示

U[KVP{_[1IQ(LH2[R(UAZ1E.png

2)创建表

Hive的表有两种基本类型:一种内部表(这种表数据属于Hive本身,言外之意是如果原来的数据在HDFS的其它地方,此时数据会通过HDFS移动到Hive数据仓库所在的目录,如果删除Hive中的该表的话数据和元数据均会被删除)另外一种属于外部表(这种表数据不属于Hive数据仓库,元数据中会表达具体数据在哪里,使用的时候和内部表的使用是一样的,只是如果通过Hive去删除的话,此时删除的只是元数据,本没有删除数据本身);

复制代码

3)查看表

复制代码

七、使用hive 操作搜索引擎数据实战

1)将搜狗实验室的数据放入到hdfs 中

复制代码

2)在hive 中创建表

复制代码

3)将sogouQ3.txt 加载到表sogouQ3 中

复制代码

4)在hive 中查询表sogouQ3

复制代码

5)创建外部表

复制代码

将数据放入hdfs 中

复制代码

查询记录的总条数

复制代码

找出排名前5位的内容

复制代码

6)tdDate.txit 字段描述:分别为日期、年月、年、月、日、周几、第几周、季度、旬、半月。

tbstock.txt 字段描述:订单号,交易的位置, 交易的日期

tbStockdetail.txt 字段描述:订单号、行号、货品、、“”、数量、金额        

在hvie中创建3张表

复制代码

将数据load到tbDate表中

复制代码

将数据load 到tbStock表中

复制代码

在HDFS上如果直接把数据放入Hive数据仓库的话,会把数据直接剪切过去

将数据load 到tbStockDetail表中

复制代码

统计季度销售前10

复制代码

统计销售额大于20000

复制代码

年度最畅销的商品

复制代码




注:本学习笔记来自DT大数据梦工厂        微信公众号:DT_Spark        每晚8点YY永久直播频道:68917580


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群