hadoop Hive 就是一个利用HDFS存储数据,利用mapreduce运算数据的数据仓库工具 - 简书


本站和网页 https://www.jianshu.com/p/9249692201e9 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

hadoop Hive 就是一个利用HDFS存储数据,利用mapreduce运算数据的数据仓库工具 - 简书登录注册写文章首页下载APP会员IT技术hadoop Hive 就是一个利用HDFS存储数据,利用mapreduce运算数据的数据仓库工具小王写bug关注赞赏支持hadoop Hive 就是一个利用HDFS存储数据,利用mapreduce运算数据的数据仓库工具HIVE 基本概念
在真实生产中,数据处理的需求量非常多,如果对每个需求都需要开发一个mapreduce程序来实现,则开发的成本代价太高,开发的周期很长;
所以,急需要一种工具,能够快速生成mapreduce程序,则可以极大地降低开发成本,降低对开发人员的技术难度要求,极大缩减项目开发周期;
HIVE就是这么一个神器!!!
它可以让你把你的数据文件 “映射”成一个表,然后还可以让你输入SQL指令,它就能将你的SQL指令解析后生成mapreduce程序进行逻辑运算;
HIVE: 就是一个利用HDFS存储数据,利用mapreduce运算数据的数据仓库工具
安装
上传安装包 wget http://oss.jetbrains.org.cn/apache-hive-1.2.1-bin.tar.gz
解压 tar -zxvf apache-hive-1.2.1-bin.tar.gz
启动方式
用bin/hive 启动一个交互式查询软件来使用
用bin/hiveserver2 启动一个hive的服务端软件来接收查询请求
HIVE的建库
CREATE DATABASE db_name;
建库的实质:
HIVE 会记住关于库定义的信息(库名叫什么)
HIVE会在HDFS上创建一个库目录:/user/hive/warehouse/db_name
HIVE的建表
内部表建表语句
CREATE TABLE t_name(filed1 type,field2 type,field3 type)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’ ;
建表的实质:
HIVE 会记住关于表定义的信息(表名叫什么、有哪些字段、数据文件的分隔符?)
HIVE会在HDFS上创建一个表数据文件存储目录:/user/hive/warehouse/db_name/t_name
外部表建表语句
CREATE EXTERNAL TABLE t_name(filed1 type,field2 type,field3 type)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’
LOCATION ‘/aa/bb/’ ; (这里的地址都是hdfs中的地址,不是宿主机的)
注意:当drop一个内部表时,hive会清楚这个表的元数据,并删除这个表的数据目录;
当drop一个外部表时,hive会清除这个表的元数据,但不会删它的数据目录;
通常,外部表用于映射最开始的数据文件(一般是由别的系统所生成的)
分区表建表语句
分区表:会在表数据存储目录中,允许有子目录(分区)
CREATE TABLE t_access(ip string,url string)
PARTITIONED BY (day string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’;
建表时,只是指定这个表可以按day变量的具体值建子目录;所以建表时,不会生成子目录;
导入数据到该表时,就需要指定一个具体的day变量的值,hive就会用这个值建一个子目录,并将数据文件放入该子目录;
导入数据语句:
LOAD DATA LOCAL INPATH ‘/root/access.1’ INTO TABLE t_access PARTITION(day=’2017-11-25’);
LOAD DATA LOCAL INPATH ‘/root/access.2’ INTO TABLE t_access PARTITION(day=’2017-11-26’);
Hive的特点
可扩展
Hive可以自由的扩展集群的规模,一般情况下不需要重启服务。
延展性
Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
容错
良好的容错性,节点出现问题SQL仍可完成执行。
数据导入导出
方式1:导入数据的一种方式:
手动用hdfs命令,将文件放入表目录;
方式2:在hive的交互式shell中用hive命令来导入本地数据到表目录
hive>load data local inpath '/root/order.data.2' into table t_order;
方式3:用hive命令导入hdfs中的数据文件到表目录
hive>load data inpath '/access.log.2017-08-06.log' into table t_access partition(dt='20170806');
其他
hive 的其他sql 语法 与 常用关系型数据库,如mysql,oracle等语法类似,这里不做细致说明。。
image
推荐阅读更多精彩内容Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames...Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...草里有只羊阅读 17,783评论 0赞 85Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames...Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...Joyyx阅读 7,864评论 0赞 16大数据Hadoop Hive sql语法详解无标题文章时间:2017-08-16 19:36:53来源:CSDN Hive 是基于Hadoop 构建的一套数据仓库分析系...majyer阅读 1,258评论 0赞 2充实的一天自从负责公共组件,基本没有闲暇时间,每天都在跟不同的人打交道——SE、插件开发、运维、测试、CI等等。虽说忙,倒也...RogueQ阅读 91评论 0赞 0我把自己活成了狗,吠吠一生....第4篇推文 停止抱怨!有了问题,就一个个解决,收起你认为的不公平!停止啰嗦,认真做自己的事情,人在做,天在看! 哦...丑妹电影阅读 816评论 1赞 2真实的习惯是一种“化合物”真实的习惯是一种“化合物” 作者:王晓春 所谓真实的习惯,是指“诚于衷而形...高中语文答题模板技巧思路分析阅读 156评论 0赞 0评论0赞11赞2赞赞赏更多好文