Hive

Hive简介

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

Hive配置文件

hive-site.xml #hive的配置文件 
hive-env.sh   #hvie的运行环境文件
hive-default.xml.template #默认模板
hive-env.sh.template #hive-env.sh默认配置
hive-exec-log4j.properties.template #exec默认配置
hive-log4j.properties.template #log默认配置
  • hive-site.xml
< property>
  <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createData baseIfNotExist=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>test</value>
   <description>password to use against metastore database</description>
</property>
  • hive-env.sh
#配置Hive的配置文件路径
export HIVE_CONF_DIR= your path
#配置Hadoop的安装路径
HADOOP_HOME=your hadoop home

关系运算符

  • 常见的关系运算符
  • 等值比较: =
  • 不等值比较: <>
  • 小于比较: <
  • 小于等于比较: <=
  • 大于比较: >
  • 大于等于比较: >=
  • 空值判断: IS NULL
  • 非空判断: IS NOT NULL
  • LIKE比较: LIKE
    描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B 的正则语法,则为TRUE;否则为FALSE。B中字符”_”表示任意单个字符,而字符”%”表示任意数量的字符。
hive> select 1 from dual where ‘key' like 'foot%';
1
hive> select 1 from dual where ‘key ' like 'foot____';
1
  • JAVA的LIKE操作: RLIKE
    描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合JAVA正则表达式B的正则语法,则为TRUE;否则为FALSE。
hive> select 1 from dual where 'footbar’ rlike '^f.*r$’;
  • REGEXP操作: REGEXP
    描述: 功能与RLIKE相同
hive> select 1 from dual where ‘key' REGEXP '^f.*r$';
1
  • 等值比较: =

符合类型构建操作

  • Map类型构建: map
    map 类型访问 : M[key]
    语法: map (key1, value1, key2, value2, …)
    说明:根据输入的key和value对构建map类型
hive> Create table alex_test as select map('100','tom','200','mary') as t from dual;
hive> describe alex_test;
t       map<string,string>
hive> select t from alex_test;
{"100":"tom","200":"mary"}
  • Struct类型构建: struct
    struct 类型访问 : S.x
    语法: struct(val1, val2, val3, …)
    说明:根据输入的参数构建结构体struct类型
hive> create table alex_test as select struct('tom','mary','tim') as t from dual;
hive> describe alex_test;
t       struct<col1:string,col2:string,col3:string>
hive> select t from alex_test;
{"col1":"tom","col2":"mary","col3":"tim"}
  • array类型构建: array
    array 类型访问 : A[n]
    语法: array(val1, val2, …)
    说明:根据输入的参数构建数组array类型
hive> create table alex_test as select array("tom","mary","tim") as t from dual;
hive> describe alex_test;
t       array<string>
hive> select t from alex_test;
["tom","mary","tim"]

Hive参数

hive.exec.max.created.files
#说明:所有hive运行的map与reduce任务可以产生的文件的和
#默认值:100000 
hive.exec.dynamic.partition
#说明:是否为自动分区
#默认值:false
hive.mapred.reduce.tasks.speculative.execution
#说明:是否打开推测执行
#默认值:true
hive.input.format
#说明:Hive默认的input format
#默认值: org.apache.hadoop.hive.ql.io.CombineHiveInputFormat
#如果有问题可以使用org.apache.hadoop.hive.ql.io.HiveInputFormat
hive.exec.counters.pull.interval
#说明:Hive与JobTracker拉取counter信息的时间
#默认值:1000ms 
hive.script.recordreader
#说明:使用脚本时默认的读取类
#默认值: org.apache.hadoop.hive.ql.exec.TextRecordReader
hive.script.recordwriter
#说明:使用脚本时默认的数据写入类
#默认值: org.apache.hadoop.hive.ql.exec.TextRecordWriter
hive.mapjoin.check.memory.rows
#说明: 内存里可以存储数据的行数
#默认值: 100000
hive.mapjoin.smalltable.filesize
#说明:输入小表的文件大小的阀值,如果小于该值,就采用普通的join
#默认值: 25000000
hive.auto.convert.join
#说明:是不是依据输入文件的大小,将Join转成普通的Map Join
#默认值: false
hive.mapjoin.followby.gby.localtask.max.memory.usage
#说明:map join做group by 操作时,可以使用多大的内存来存储数据,如果数据太大,则不会保存在内存里
#默认值:0.55
hive.mapjoin.localtask.max.memory.usage
#说明:本地任务可以使用内存的百分比
#默认值: 0.90
hive.heartbeat.interval
#说明:在进行MapJoin与过滤操作时,发送心跳的时间
#默认值1000
hive.merge.size.per.task
#说明: 合并后文件的大小
#默认值: 256000000
hive.mergejob.maponly
#说明: 在只有Map任务的时候 合并输出结果
#默认值: true
hive.merge.mapredfiles
#默认值: 在作业结束的时候是否合并小文件
#说明: false
hive.merge.mapfiles
#说明:Map-Only Job是否合并小文件
#默认值:true
hive.hwi.listen.host
#说明:Hive UI 默认的host
#默认值:0.0.0.0
hive.hwi.listen.port
#说明:Ui监听端口
#默认值:9999
hive.exec.parallel.thread.number
#说明:hive可以并行处理Job的线程数
#默认值:8
hive.exec.parallel
#说明:是否并行提交任务
#默认值:false
hive.exec.compress.output
#说明:输出使用压缩
#默认值: false
hive.mapred.mode
#说明: MapReduce的操作的限制模式,操作的运行在该模式下没有什么限制
#默认值: nonstrict
hive.join.cache.size
#说明: join操作时,可以存在内存里的条数
#默认值: 25000
hive.mapjoin.cache.numrows
#说明: mapjoin 存在内存里的数据量
#默认值:25000
hive.join.emit.interval
#说明: 有连接时Hive在输出前,缓存的时间
#默认值: 1000
hive.optimize.groupby
#说明:在做分组统计时,是否使用bucket table
#默认值: true
hive.fileformat.check
#说明:是否检测文件输入格式
#默认值:true
hive.metastore.client.connect.retry.delay
#说明: client 连接失败时,retry的时间间隔
#默认值:1秒
hive.metastore.client.socket.timeout
#说明:  Client socket 的超时时间
#默认值:20秒
mapred.reduce.tasks
#默认值:-1
#说明:每个任务reduce的默认值
 -1 代表自动根据作业的情况来设置reduce的值 
hive.exec.reducers.bytes.per.reducer
#默认值: 1000000000 (1G)
#说明:每个reduce的接受的数据量
    如果送到reduce的数据为10G,那么将生成10个reduce任务 
hive.exec.reducers.max
#默认值:999
#说明: reduce的最大个数      
hive.exec.reducers.max
#默认值:999
#说明: reduce的最大个数
hive.metastore.warehouse.dir
#默认值:/user/hive/warehouse
#说明: 默认的数据库存放位置
hive.default.fileformat
#默认值:TextFile
#说明: 默认的fileformat
hive.map.aggr
#默认值:true
#说明: Map端聚合,相当于combiner
hive.exec.max.dynamic.partitions.pernode
#默认值:100
#说明:每个任务节点可以产生的最大的分区数
hive.exec.max.dynamic.partitions
#默认值:1000
#说明: 默认的可以创建的分区数
hive.metastore.server.max.threads
#默认值:100000
#说明: metastore默认的最大的处理线程数
hive.metastore.server.min.threads
#默认值:200
#说明: metastore默认的最小的处理线程数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容