Hive安装及基础知识总结

来源:互联网 发布:单片机无线抢答器 编辑:程序博客网 时间:2024/06/06 20:51

Hive 属于分布式存储使查询和管理大数据集的数据仓库软件,构建在Hadoop基础之上。

主要提供:

1、提供了简易的数据提取、转换、加载的工具。

2、提供了一种多种数据格式转换的机制。

3、通过MapReduce执行查询

4、通过HDFS或者HBASE访问存储的数据。

Hive提供了简单的类似SQL的查询语言,叫做QL。使用户用SQL查询数据,同时,允许熟悉MapReduce框架的开发者能自定义mappers和reducers以完成特定需求。QL可以使用scalar 语言函数、聚合、表来进行扩展。

HCatalog:是Hive的一个组件,它是一个表并分层存储管理hadoop数据为用户提供处理不同的数据的工具。

WebHCat:提供Hadoop MapReduce (or YARN),服务的工具,PIG,HIVE任务或Hive元数据操作都使用HTTP(REST 风格)接口。


Hive没有提供OLTP工作项也没有提供行更新和实时查询功能,主要用于批处理大量数据级,Hive具有可扩展、可延展、高容错性、输入格式松耦合。

主键设计原则:读的多尽量按时间先后顺序~写的多就用散列排序,避免热点效应(所有数据都写在一个region上) ,用散列~是为了负载均衡。


一、下载Hive稳定版

下载地址:

二、解压

$ tar -xzvf hive-x.y.z.tar.gz
三、设置环境变量

指定hive的位置,

$ export HIVE_HOME={{pwd}}

$ export PATH=$HIVE_HOME/bin:$PATH
四、启动Hive
1、创建表前,先创建/tmp and /user/hive/warehouse ,再将目录授权chmod g+w,
  $ $HADOOP_HOME/bin/hadoop fs -mkdir       /tmp  $ $HADOOP_HOME/bin/hadoop fs -mkdir       /user/hive/warehouse  $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp  $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /user/hive/warehouse
说明:目录需要一层一层的创建。
2、启动hive
$HIVE_HOME/bin/hive

五、日志

1、记录日志:

日志在0.13以前名字为.log,0.13以后日志为hive.log

/tmp/<user.name>/hive.log

2、启动后修改日志级别

  • bin/hive --hiveconf hive.root.logger=INFO,console  //for HiveCLI (deprecated)
  • bin/hiveserver2 --hiveconf hive.root.logger=INFO,console
3、通过配置文件修改日志的级别hive-site.xml

hive.querylog.location property.

六、创建表

1、创建表teacher以,分割
hive> create table teacher(id bigint,name string) row format delimited fields terminated by '\t'  STORED AS TEXTFILE;
OKTime taken: 1.592 seconds
2、向teacher表中插入数据
向teacher表插入数据
hive> load data local inpath '/home/duwei/Downloads/student.txt' into table teacher;
Loading data to table default.teacherTable default.teacher stats: [numFiles=1, totalSize=28]OKTime taken: 1.976 seconds
覆盖teacher表的数据,使用OVERWRITE关键字
hive> load data local inpath '/home/duwei/Downloads/student.txt' OVERWRITE into table teacher;
数据文件格式:
87888711628806069231886397596488418280628811714885891628467
3、查询表
查询所有表:show tables; 
查询所有以s结尾的表:SHOW TABLES '.*s';
4、描述表
describe tablename;
5、新增表字段
ALTER TABLE invites ADD COLUMNS (new_col2 INT COMMENT 'a comment');
6、替换字段名称,即改变表结构,而不改变数据
ALTER TABLE invites REPLACE COLUMNS (foo INT, bar STRING, baz INT COMMENT 'baz replaces new_col2');
7、删除表
DROP TABLE invites;
七、参数配置

hive-default.xml  中配置 javax.jdo.option.ConnectionURL 设置元数据文件位置 ./metastore_db

八、查询数据

1、从分区d

 hive> SELECT a.foo FROM invites a WHERE a.ds='2008-08-15';
2、从invites表中查的数据插入到HDFS的hdfs_out文件中,覆盖原来的数据 
hive> INSERT OVERWRITE DIRECTORY '/tmp/hdfs_out' SELECT a.* FROM invites a WHERE a.ds='2008-08-15';
3、group by 语句
 hive> FROM invites a INSERT OVERWRITE TABLE events SELECT a.bar, count(*) WHERE a.foo > 0 GROUP BY a.bar; hive> INSERT OVERWRITE TABLE events SELECT a.bar, count(*) FROM invites a WHERE a.foo > 0 GROUP BY a.bar;
4、join
 hive> FROM pokes t1 JOIN invites t2 ON (t1.bar = t2.bar) INSERT OVERWRITE TABLE events SELECT t1.bar, t1.foo, t2.foo;
5、多表插入
 FROM src  INSERT OVERWRITE TABLE dest1 SELECT src.* WHERE src.key < 100  INSERT OVERWRITE TABLE dest2 SELECT src.key, src.value WHERE src.key >= 100 and src.key < 200  INSERT OVERWRITE TABLE dest3 PARTITION(ds='2008-04-08', hr='12') SELECT src.key WHERE src.key >= 200 and src.key < 300  INSERT OVERWRITE LOCAL DIRECTORY '/tmp/dest4.out' SELECT src.value WHERE src.key >= 300;


0 0
原创粉丝点击