hadoop的数据仓库--Hive初识入门

本文介绍了Hive作为数据仓库工具的作用,包括其基于Hadoop的体系架构,简化SQL查询的优势。详细步骤涵盖了Hive的下载、配置、启动和测试,以及在Linux系统下安装MySQL作为元数据存储的过程。此外,文章还探讨了Hive的基本命令和常用属性配置,帮助读者快速上手Hive操作。
摘要由CSDN通过智能技术生成

1Hive的体系架构

1.1what is hive?

由facebook开源用于解决海量结构化日志的数据统计
hive是基于hadoop的一个数据仓库工具,可以将结构化的文件映射成一张表,并提供SQL功能
hive是构建在Hadoop之上的数据仓库
hive的本质是将HQL换成mapreduce(程序内有引擎会有将输入的ql语句转化为mapreduce语句)
灵活性(可以自定义函数)和扩展性(hadoop之上)较好,支持udf,自定义存储格式
适合离线数据处理

hive功能
1)使提取转化加载(ETL)更简便
2)映射结构化在多种数据格式上
3)文件存储在HDFS上或者Hbase
4)通过mapreduce查询

Hive与mapreduce相比的优势
mapreduce的编程不便性,并且八股文格式编程,成本高
而hive无需复杂的编程,它可以直接写sql语句,其程序内有引擎会将ql语句转化为mapreduce程序,受众面广,使对java编程不熟悉的人也可以操作,方便简单。

Hive 是大数据仓库
底层是mapreduce, 而mapreduce 数据在hdfs上,运行在yarn上,故hive其实可以看做hadoop的一个客户端.
之所以称其为大数据仓库,第一因为hive的数据存储在hdfs上,第二因为数据的分析运作在mapreduce上,而执行程序运行在yarn上面
表的元数据存在RDNMS中(mysql或者postgrosql)

应用场景
数据的离线处理:比如日志分析
Hive的执行延迟较高,适用于对实时性要求不高的场合
hive的优势在于处理大数据,对于处理小数据没有优势,因执行延迟较高
只能解决大众化的简单的mapreduce程序,若需要复杂的则仍需要mapreduce程序来撰写

hive的架构
1.png-64.3kB
1)client客户端:有四种方式可以写命令连接hive

2)meta store存储着元数据,一般使用mysql存储元数据

3)driver驱动器(包含解析器,优化器,编译器,执行器)
解析器:解析用户写的sql语句
优化器:对逻辑执行计划进行优化
编译器(物理执行计划):将解析好的语句编译物理执行计划,如需要多少个map
执行器:将物理执行计划转化成可以允许的计划,在mapreduce上执行

4)Hadoop
mapreduce进行执行计算和分析
hdfs进行存储数据

2Hive下载、配置、启动、测试

2.1 下载

将hive安装包拖到货下载到/opt/software/目录下
权限被限制的话可以修改一下权限
将压缩包解压到/opt/modules/目录中
解压后文件名字太长看不顺眼的话可以重命名为如hive-0.13.1

2.2配置与hadoop的关联

1)打开目录/opt/modules/hive-0.31.1/下的文件hive-env.sh,修改hadoop_home的安装目录(注:目前是在伪分布式下)

HADOOP_HOME=/opt/modules/hadoop-2.5.0/

修改hive_home的配置文件目录

export HIVE_CONF_DIR=/opt/modules/hive-0.31.1/conf

2.png-14.5kB

2)创建目录/tmp 和目录/user/hive/warehouse,并且在hdfs之上赋予权限g+w, so that we can create a table in Hive

$bin/hdfs dfs -mkdir /tmp
$bin/hdfs dfs -mkdir -p /user/hive/warehouse
$bin/hdfs dfs -chmod g+w /tmp
$bin/hdfs dfs -chmod g+w /user/hive/warehouse

注:在创建/tmp目录与修改权限之前,ls一下看看是否已经存在,若已存在则无需创建
另外warehouse目录中存储的是在Hive中创建表的数据

2.3启动与测试

到hive-0.13.1目录启动:

$bin/hive

显示数据库并使用:

show databases   //显示数据库
use default;    //使用default数据库
show tables;     //查看该数据库中的表格
create table student(id int,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';   //创建一张表
show tables;  //此时便出现了刚刚创建的student表

3.png-43.2kB
4.png-38.3kB

往表中添加数据(先准备一下数据)

$touch /opt/datas/stu.tx     //创建一个文件
$vi /opt/datas/stu.tx       //编辑文件添加内容

添加内容如下:
5.png-20.8kB
再回到hive中,将刚刚的表内容添加到student文件中,并查询表中内容

$load data local inpath '/opt/datas/stu.tx' into table student;     //加载内容
$select * from student;   //查询表的所有内容
$select id from student;  //查询表中的某个字段,此时在mapreduce上运作

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值