hive笔记1

一、hive简介
1.hive一般在工作站上运行。hive把数据组织成表,通过这种方式为存储在HDFS上的数据赋予结构。元数据存储在metastore数据库中。
2.使用hive时,可以让metastore运行在本地机器上,也可以设置生产环境中常用的远程共享metastore。
3.hiveQL是hive的查询语言,一般大小写不敏感。
4.hive新建表:

create table 表名(字段名1 类型,…) row format delimited fields terminated by '\t';

row format子句是hiveQL特有的。声明的是数据文件的每一行是由制表符分隔的文本。hive按照这一格式读取数据,字段间以制表符分隔,每行以换行符分隔。
5.向hive输入数据:

load data local inpath 'input/ncdc/micro-tab/sample.txt'
overwrite into table records;

该命令告诉hive把指定的本地文件放入其仓库目录中。该操作并不解析文件或把它存储为内部数据库格式,因为hive并不强制使用任何特定文件格式。hive不会对文件进行修改。
在hive的仓库目录中,表存储为目录。仓库目录由选项hive.metastore.warehouse.dir控制,默认值为/usr/hive/warehouse。
overwrite关键字:重写,告诉hive删除表对应目录中已有的所有文件。

二、配置hive
hive和Hadoop类似,用XML配置文件设置。配置文件为:hivesite.xml。该文件在hive的conf目录下。

% hive --config /Users/tom/dev/hive-conf

该命令重新定义hive查找hive-site.xml文件的目录。注:–config选项对于有多个站点文件时很有用,可以方便地在这些站点文件间进行切换。

hive-site.xml文件最适合存放详细的集群连接信息。可以使用Hadoop属性fs.defaultFS和yarn.resourcemanager.address来指定文件系统和资源管理器。

% hive -hiveconf fs.defaultFS=hdfs://localhost \
  -hiveconf mapreduce.framework.name=yarn \
  -hiveconf yarn.resourcemanager.address=localhost:8032

hive向hive命令传递-hiveconf选项来为单个会话设置属性。如上述命令,设定在会话中使用一个(伪分布)集群。

设置属性的优先级:hive set命令;命令行-hiveconf选项;hive-site.xml和Hadoop站点文件(core-site.xml、hdfs-site.xml、mapredsite.xml、yarn-site.xml);hive默认值和Hadoop默认文件(core-default.xml、hdfs-default.xml、mapred-default.xml、yarn-default.xml)。

hive的执行引擎:mapreduce、Tez、spark
tez和spark都是通过有向无环图(DAG)引擎,比mapreduce更加灵活,性能更优越。如:在使用MapReduce时,中间作业的输出会被物化存储到HDFS上,Tez和Spark可以根据hive规划器的请求,把中间结果写到本地磁盘上,甚至在内存中缓存,避免了额外的复制开销。
下述语句设置Tez为hive的执行引擎:

hive>set hive.execution.engine=tez;

错误日志可以在本地文件系统的 java.io.tmpdir j a v a . i o . t m p d i r {user.name}/hive.log中找到。其对于诊断配置问题和其他错误很有用。

三、metastore
metastore是hive元数据的集中存放地。
默认情况下,metastore服务和hive服务运行在同一个JVM中,它包含一个内嵌的以本地磁盘作为存储的Derby数据库实例。称为内嵌metastore配置。

要支持多会话及多用户,需要使用一个独立的数据库。称为本地metastore配置。任何JDBC兼容的数据库都可以通过javax.jdo.option.*配置属性来供metastore使用。

更进一步,还有一种metastore配置称为远程metastore配置。在这种配置下,一个或多个metastore服务器和hive服务运行在不同的进程内。

四、hive与传统数据库相比
1.传统数据库:写时模式;hive:读时模式。
两者区别:https://blog.csdn.net/zengmingen/article/details/52626714
第一、第二、第三范式:https://blog.csdn.net/xidianliuy/article/details/51566576

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值