Hive入门

Hive入门

复习Hadoop:

1、Hadoop是什么
存储      HDFS
计算      MapReduce
资源调度    YARN
2、HDFS的访问方式
Shell CLI :Hadoop/hdfs fs ……
Java API :FileSystem
Web UI:HUE/Hadoop自带UI
3、Hadoop的常用操作
HDFS:mkdir put get rm mv
问题:copy vs mv

MR:mr的执行流程(一定要掌握的)
YARN:mr作业跑在yarn之上,杀死yarn上的作业,提交的时候指定的一些重要的参数。
问题:使用MapReduce实现join、mapjoin的功能?
    ===>非常繁琐
        wordcount
明白:MR是非常麻烦的
Hive的产生背景:
1、MR编程不便性
2、传统的RDBMS人员的需求
    HDFS上面的文件就是普通的文件,它并没有schema的概念
    schema:RDBMS中的表结构
        people.txt <== id name age address
    sql  ===>  搞定海量数据的统计分析
===>  产生Hive
Hive
分布式系统:HDFS/S3
    问题:HDFS存的是近期的数据
        1min:几百G
        冷数据:定期的移走S3 table的location指向S3
FaceBook开源
目的是解决海量结构化日志数据的统计文件
构建在Hadoop之上的数据仓库
    数据存储子HDFS之上
    计算时使用MR
    弹性:线性扩展
Hive底层的执行引擎:MapReduce、Tez、Spark
Hive定义一种类似SQL的查询语言:HQL
    问题:HQL和SQL的关系?
        什么关系都没有,只是语法类似
    很多的SQL on Hadoop的语法都是和RDBMS非常类似的
Hive常用于:离线批处理
SQL ===> MR:把SQL语句翻译成MapReduce作业,并提交到YARN上运行
    问题:是否智能、执行计划(sql是如何翻译成mr作业)
高级:UDF
版本
Stinger Plan:
    Phase 1 0.11  ORC HiveServer2
    Phase 2 0.22  ORC improvement
    Phase 3 0.13  Vectorized query engine & Tex
Stinger.next Phase 1  0.14  CBO 
为什么要使用Hive
    1)、简单易用
    2)、弹性
    3)、统一的元数据管理
            元数据存放在哪里呢?
                metadata mysql
            统一:SQL on Hadoop都是能够共享的
                Hive/Pig/Impala/Spark SQL/Presto
问题:Hive的数据存放在哪里?
    HDFS + metadata
Hive体系架构
测试环境部署架构:
    客户端(client、web、idbc)发送HQL语句到Hive(可以存放数据在MySQL或者Derby)上,最后作业提交到Hadoop集群上。
问题:Hive需要集群吗?
        Hive不需要集群,可以理解Hive为一个客户端。
问题:存在什么缺陷?
        一个MySQL在生产中可能存在单点故障,所以需要准备两个MySQL,一个是active一个是standby,一台机器出现问题,另外一台机器运行。                
Hive部署架构
Hive VS RDBMS
Hive的缺点:
    慢、非实时、延时性比较高
Hive环境的搭建
wget http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.7.0.tar.gz

tar -zxvf hive-1.1.0-cdh5.7.0.tar.gz -C ~/app
1)添加HIVE_HOME到系统环境变量:
export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.7.0
export PATH=$HIVE_HOME/bin:$PATH
2)Hive配置修改
hive-env.sh
    HADOOP_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0
hive-site.xml   统一元数据管理
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

    <configuration>
        <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://localhost:3306/ruozedata_basic02(数据库名)?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>root</value>
        </property>
    </configuration>
3)拷贝MySQL驱动包到$HIVE_HOME/lib
如果没有拷贝MySQL驱动包,启动hive会报错:
    The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH. 
    Please check your CLASSPATH specification, 
    and the name of the driver.
4)权限问题
创建表失败:
    FAILED: Execution Error, 
    return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. 
    MetaException(message:For direct MetaStore DB 
    connections, we don't support retries at the client 
    level.)
    思路:找日志
    日志在哪里:$HIVE_HOME/conf/hive-log4j.properties.template
                hive.log.dir=${java.io.tmpdir}/${user.name}
                hive.log.file=hive.log
                问题:能不能改,如何改?
    日志错误:
        ERROR [main]: Datastore.Schema (Log4JLogger.java:error(115)) - An exception was thrown while adding/validating class(es) : 
        Specified key was too long; max key length is 767 bytes
        com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes 
    解决:
        alter database ruozedata_basic02 character set latin1;

【来自@若泽大数据】

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

推荐阅读更多精彩内容

  • 说明:不少读者反馈,想使用开源组件搭建Hadoop平台,然后再部署Kylin,但是遇到各种问题。这里我为读者部署一...
    大诗兄_zl阅读 2,083评论 0 2
  • 学习目标 Hive是构建在Hadoop之上的数据仓库,它的本质是就是一个数据库 ① Hive和一般意义上的数据库有...
    Derrick_Xu阅读 2,612评论 0 4
  • 前言: 好久没有整理笔记了,都不记得上次更新简书是什么时候了,是时候整理下最近接触的技能了; 这篇文章是为了以后个...
    极客汪阅读 5,915评论 8 20
  • 我买好了30张机票在机场等你:4小时后逃离北上广 http://mp.weixin.qq.com/s?__biz=...
    毛小莎阅读 22,317评论 1 6
  • 一、防止底黑、底臭,提高产量 1、南美白对虾 案例一:海南东郊一2.5亩铺膜可排污低位池,四台增氧机共4....
    利洋前线阅读 9,119评论 0 2