Hive安装

【1】什么是Hive
•Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
•本质是将SQL转换为MapReduce程序

【2】为什么要使用Hive
•操作接口采用类SQL语法,提供快速开发的能力
•避免了去写MapReduce,减少开发人员的学习成本
•扩展功能很方便

【3】Hive的特点
•可扩展
Hive可以自由的扩展集群的规模,一般情况下不需要重启服务
•延展性
Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数
•容错
良好的容错性,节点出现问题SQL仍可完成执行

HIVE.png

Hive不需要像zookeeper和Hbase那样集群安装,Hive单节点安装即可。

【1】准备
1 > hive的运行要依赖hadoop的dfs,所以先要打开hadoop集群和zookeeper集群
2 > tar包
3 > mysql链接驱动(jar)

【2】安装

1. 解压
    tar -xzvf  hive-0.9.0.tar.gz
    cp -r hive-0.9.0 /usr/local

2.修改配置文件
    mv  hive-default.xml.template  hive-site.xml
    修改hive-site.xml(删除所有内容,只留一个<property></property>)
    添加如下内容:

    <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://hadoop2005:3306/hive?createDatabaseIfNotExist=true</value>
      <description>JDBC connect string for a JDBC metastore</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
      <description>Driver class name for a JDBC metastore</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>root</value>
      <description>username to use against metastore database</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>123</value>
      <description>password to use against metastore database</description>
    </property>

  这里主要配置所要链接的mysql信息,mysql跟hive最好别再同一台机器上安装

3. 将mysql驱动放入hive/lib/下
cp mysql-connector-5.1.8.jar /usr/local/hive-0.96/lib/

4.mysql授权
  去安装mysql的机器上运行
    mysql -uroot -p
  #(执行下面的语句  *.*:所有库下的所有表   %:任何IP地址或主机都可以连接)
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

5.启动hive
    cd /usr/local/hive-0.96/bin
    ./hive

6.简单操作
    show databases;

    show tables;

    create database testDB;

    use testDB;

    create table test_db01 (id int , name string);

    #注意列和列的分隔符设置(如果要加载本地数据,列分隔符要与本地文件分隔符一致)
    create table stu (id int , name string) row format delimited fields terminated by '\t'

    show create table test_db01;

    //加载本地文件到hive表test_db01(你所加载的文件要与表的结果对应,列数对应,分隔符对应)
    load data local inpath '/root/Desktop/stu.txt'  into table test_db01;
    
    //加载HDFS数据到hive表(你所加载的文件要与表的结果对应,列数对应,分隔符对应)
    load data inpath'/HDFS文件路径' into table 表名

    select * from test_db01;

    select count(*) from test_db01;

    select * from test_db01 order by id desc;

7.查看验证
    hdfs:hdfs下存储的是真正要计算的数据(真正的数据)
        默认在hdfs 的/user/hive/warehouse
    mysql:存储的hdfs的目录关系映射

    
8.建表(默认是内部表  MANAGED_TABLE,默认内部表所在的HDFS的目录为/user/hive/warehouse下)
    create table trade_detail(id bigint, account string, income double, expenses double, time string) row format delimited fields terminated by '\t';

    建分区表(提高查询效率,将数据按照某种规则分类)
    create table td_part(id bigint, account string, income double, expenses double, time string) partitioned by (logdate string) row format delimited fields terminated by '\t';
#注意:这里建分区表的分区字段可以依据建表所存在的列也可以不存在的列,如果依据的列不存在,则会主动添加此列(所以此表实际所拥有的列为id  account  income  expenses  time  logdate)

    建外部表(EXTERNAL_TABLE,先有数据后有表,即先有HDFS数据,建一张hive表指向HDFS目录)
    create external table td_ext(id bigint, account string, income double, expenses double, time string) row format delimited fields terminated by '\t' location '/td_ext';
#注意:当你创建的外部表所指向的目录在HDFS上不存在时,hive会自动创建

#   内部表与外部表的区别在于内部表是先有表后有数据,外部表则是先有数据后有表,
    内部表的默认HDFS目录为/user/hive/warehouse,外部表则可以随意指定HDFS的目录
    另外,无论是内部表还是外部表,只要文件放入对应的hdfs目录中就可以通过hive语句查到(因为有meatstore记录的表映射)

9.创建分区表
    普通表和分区表区别:有大量数据增加的需要建分区表(可以把数据按照某种规则进行分区分类)
    create table book (id bigint, name string) partitioned by (pubdate string) row format delimited fields terminated by '\t'; 

    分区表加载数据(如果是给分区表加载数据,一定要指定到具体分区)
    load data local inpath './book.txt' overwrite into table book partition (pubdate='2010-08-22');
    
    load data local inpath '/root/data.am' into table beauty partition (nation="USA");

        #在加载数据时,load data local  inpath 表示在本地加载,load data inpath表示在HDFS加载

    select nation, avg(size) from beauties group by nation order by avg(size);

2016-12-27_114242.png
2016-12-27_115828.png
2016-12-27_174231.png

【hive状态下操作hadoop】
hive状态下也可以操作hadoop,其命令格式大致与hadoop操作一致,只是将hadoop改为dfs,另外在结束时加“;”号即可

#hadoop操作
hadoop fs -ls /
hadoop fs -mkdir /hive-hadoop

#hive操作
dfs -ls /;
dfs -mkdir /hive-hadoop;
hive状态下操作hadoop.png
SDS.png
TBLS.png
COLUMNS.png

向分区表中加载数据


2016-12-29_110158.png

创建外部表


2016-12-28_150325.png
2016-12-29_120119.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容