hive入门

  1. 官网:hive.apache.org
    The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto data already in storage. A command linetool and JDBC driver are provided to connect users to Hive.

  2. 我们知道,任何一个框架的诞生必然是由于某类问题的存在,这类问题通过现在的技术很难解决。mr用来开发业务逻辑是很繁琐痛苦的,hive就是为了解决mr很不方便的一些特性而诞生的,它是通过使用SQL来完成大数据的统计分析,相较于mr,过程会少很多。

  3. hive是Apache社区的顶级项目
    (1)由Facebook公司提出,刚开始是作为hadoop项目的一个子项目,后面才单独成为一个项目。
    (2)hive是构建在hadoop之上的数据仓库,它适合处理离线,不适合实时。
    (3)hive是一个客户端,不是一个集群,把sql提交到hadoop集群上去运行。
    (4)hive是一个类sql的框架,hql和sql的关系:无直接关系,仅仅长得相似。
    (5)hive的职责:把sql转变成mr或spark,再提交到集群上运行
    (6)hive底层支持的引擎:MR/Spark/Tez
    (7)统一的元数据管理:SQL on Hadoop:Spark SQL/Hive/Impala/Presto

  4. 部署架构
    hive数据分为两种:数据和元数据,数据存储在hdfs上,元数据存储在MySQL上
    ps:元数据:描述数据的数据:这张表的表名叫什么,表里有哪些字段,字段类型是什么
    假如有一张people.txt表,那么people.txt存放在hdfs上,对应的hive上的people这张表people(id:int,name:string,age:int)存放在mysql中
    people.txt <==>对应hive上的 people 表
    1,zhangsan,30
    2,lisi,31
    3,wangwu,32

  • 为什么能用SQL来进行大数据的统计分析?
    有元数据的支撑,我们知道hdfs上的数据每一列字段名是什么,字段类型是什么,数据在hdfs的什么位置
  1. hive部署:
    (1)下载:http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.15.1.tar.gz
    (2)解压: tar -zvxf hive-1.1.0-cdh5.15.1.tar.gz -C ~/app/
    (3)将HIVE_HOME配置到系统环境变量(~/.bash_profile)
    export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.15.1
    export PATH= H I V E H O M E / b i n : HIVE_HOME/bin: HIVEHOME/bin:PATH
    (4)将MySQL驱动拷贝到$HIVE_HOME/lib
    (5)安装MySQL
    (6)修改hive的配置文件 hive-site.xml
url driver username password
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>

<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>

(7)启动hive $HIVE_HOME/bin/hive
默认数据库:default

use default;
create table hello(id int,name string)
row format delimited fields terminated by ',';
导数据:
load data local inpath '/home/hadoop/data/hello.txt' overwrite into table hello;

默认的hive数据存放在hdfs上:/user/hive/warehouse
参数hive.metastore.warehouse.dir就是hive数据存放的hdfs的路径,如果要调整,就把整个参数设置到hive-site.xml中去

<property>
<name>hive.metastore.warehouse.dir</name>
<value>xxxx</value>
</property>

创建的hello表,默认属于default数据库,default数据库对应的目录就是hive.metastore.warehouse.dir,hive中的表其实对应的就是hdfs上的一个目录,默认文件的名字就是tablename

  1. hive详细日志
$HIVE_HOME/conf/hive-log4j.properties
hive.log.dir=${java.io.tmpdir}/${user.name}
hive.log.file=hive.log	

hive.cli.print.current.db
hive.cli.print.header
  1. hive的信息可以配置在hive-site.xml里面,此时全局生效;也可以在命令行中设置,当前session生效:
    set 参数; 查看当前参数的值
    set 参数=值; 真正的设置参数对应的值

8.Hive vs RDBMS
(1)都是写SQL的
(2)事务:hive的离线处理(批处理)里面是不考虑事务的
(3)延时性:hive的延时性很高,因为是跑离线作业的
(4)cluster
(5)data

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值