Hive

基于hadoop的一个数据仓库工具。

所谓数据仓库:是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。

用来做查询分析的数据库。基本不用做插入、修改、删除。

将结构化的数据文件映射成一张数据库表,可将sql语句转化为mapreduce任务进行运行。

操作符是hive的最小处理单元。

一个Operator是hive定义的一个处理过程。

Hive三种模式:1 内嵌模式(Derby) 2 本地模式(本地Mysql) 3 远程模式(Mysql)。

Hive运行时,元数据存在关系型数据库里,数据存在HDFS上。

Hive-DDL操作:  https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

CREATE TABLE person(
id INT, //不区分大小写
name STRING,
age  INT,
fav  ARRAY<STRING>, //字符串数组类型字段
addr MAP<STRING,STRING> //map类型字段
)
COMMENT 'This is the person table'
PARTITIONED BY(dt STRING) //按天分区
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' //每一行数据每个字段按制表符分割
COLLECTION ITEMS TERMINATED BY '-' //每一个容器数据按"-"分割
MAP KEYS TERMINATED BY ':' //map的键值按冒号分割
STORED AS TEXTFILE; //以文本文件形式存储

Hive分区--partition by(dt STRING),可单分区 也可多分区。

Hive-DML操作:

Hive导入数据 : Load data local inpath'file.txt' overwrite into table tab_name

FROM person p
INSERT OVERWRITE TABLE person1
    SELECT p.id, p.name, p.age, p.fav
INSERT OVERWRITE TABLE person2
    SELECT p.id, p.name, p.age;

Hive的安装步骤:  要配置环境变量

  1. hadoop集群,hdfs mapreduce启动
  2. 关掉安全模式,hadoop dfsadmin –safemode leave
  3. Tar包上传解压,进去conf目录
  4. 复制一个配置文件,cp hive-default.xml.template hive-site.xml
  5. 清空修改hive-site.xml内容
  6. 单用户模式:

<property>  

  <name>hive.metastore.warehouse.dir</name>  

  <value>/user/hive_remote/warehouse</value>  

</property>  

   

<property>  

  <name>hive.metastore.local</name>  

  <value>true</value>  

</property>  

   

<property>  

  <name>javax.jdo.option.ConnectionURL</name>  

  <value>jdbc:mysql://192.168.57.6:3306/hive_remote?createDatabaseIfNotExist=true</value>  

</property>  

   

<property>  

  <name>javax.jdo.option.ConnectionDriverName</name>  

  <value>com.mysql.jdbc.Driver</value>  

</property>  

   

<property>  

  <name>javax.jdo.option.ConnectionUserName</name>  

  <value>hive</value>  

</property>  

   

<property>  

  <name>javax.jdo.option.ConnectionPassword</name>  

  <value>password</value>  

</property>  

  7.多用户模式分服务器端和客户端

a)         服务器端

<property>  

  <name>hive.metastore.warehouse.dir</name>  

  <value>/user/hive/warehouse</value>  

</property>  

   

<property>  

  <name>javax.jdo.option.ConnectionURL</name>  

  <value>jdbc:mysql://192.168.57.6:3306/hive?createDatabaseIfNotExist=true</value>  

</property>  

   

<property>  

  <name>javax.jdo.option.ConnectionDriverName</name>  

  <value>com.mysql.jdbc.Driver</value>  

</property>  

   

<property>  

  <name>javax.jdo.option.ConnectionUserName</name>  

  <value>root</value>  

</property>  

   

<property>  

  <name>javax.jdo.option.ConnectionPassword</name>  

  <value>123456</value>  

</property>  

b)         客户端

<property>  

  <name>hive.metastore.warehouse.dir</name>  

  <value>/user/hive/warehouse</value>  

</property>  

   

<property>  

  <name>hive.metastore.local</name>  

  <value>false</value>  

</property>  

  

<property>  

  <name>hive.metastore.uris</name>  

  <value>thrift://192.168.57.5:9083</value>  

</property>  

  8.将hadoop中jline的jar包替换成hive中新版本的包,hive中lib下的jline包替换掉hadoop-2.5.2\share\hadoop\yarn\lib下的jline包

  9.安装mysql库,上面的配置文件里面的mysql地址就配置这个地址

  10.将mysql jdbc的驱动包放到hive/lib目录下

  11.yum –y install mysql-server

  12.mysql –uroot –p 进去mysql,默认密码是空

a)         use mysql

b)         delete from user where user='';

c)         update user set host='%' where host='localhost';

d)         update user set password=PASSWORD('123456') where user='root';

e)         flush privileges;

  13.单用户启动bin/hive

  14.多用户启动,先在服务器端,bin/hive  --service metastore

再在客户端bin/hive启动

 

转载于:https://www.cnblogs.com/tianhb/p/6429828.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值