Hive 题

Hive的主要作用是什么?
Hive是基于hadoop的数据仓库工具,可以将结构化的数据文件映射成一张数据表,并且提供sql查询。相当于mapreduce的客户端
配置hive-env.sh都涉及到哪些属性?
1.添加JAVA_HOME路径     JAVA_HOME=/opt/modules/jdk1.7.0_67
2.添加HADOOP_HOME路径  HADOOP_HOME=/opt/modules/hadoop-2.5.0-cdh5.3.6/
3.添加HIVE_COF路径   export HIVE_CONF_DIR=/opt/modules/hive-0.13.1-cdh5.3.6/conf
配置hive-site.xml都修改了哪些属性,请写出属性名称并解释该属性。
1.连接数据库的uRL
2.数据库驱动名
3.数据库账户
4.数据库密码
Hive的两个重要参数是什么?
1.hive -e  ‘’  从命令行执行指定的HQL
2.hive -f  *.hql  执行hive脚本命令
Hive几种排序的特点
1.order by 全局排序
2.sort by  非全局排序
3.distribute by hash散列分区,常和sort by同时使用。即分区又排序,需要设置mapreduce.job.reduces的个数
4.cluster by 当distribute by 和sort by的字段相同时,等同于cluster by.可以看做特殊的distribute + sort
Sqoop如何导入数据,如何导出数据?
 1.将mysql数据导入到hive中。
        bin/sqoop import \
        --jdbc:mysql//hadoop102:3306/company \
    --username root
    --password 123456
        --table staff
    --terminated by '\t'
    --m 1

  2.用sqoop将hive中的数据导出到hdfs
       bin/sqoop export \
       --connect jdbc:mysql://hadoop102/test\
       --username root \
       --password 123456 \
       --table employee \
       --export-dir /user/hadoop/emp/
hive表关联查询,如何解决数据倾斜的问题?
倾斜原因:

map输出数据按key Hash的分配到reduce中,由于key分布不均匀、业务数据本身的特、建表时考虑不周、等原因造成的reduce 上的数据量差异过大。

1)、key分布不均匀;

2)、业务数据本身的特性;

3)、建表时考虑不周;

4)、某些SQL语句本身就有数据倾斜;

如何避免:对于key为空产生的数据倾斜,可以对其赋予一个随机值。

解决方案

1>.参数调节:

hive.map.aggr = true

hive.groupby.skewindata=true

有数据倾斜的时候进行负载均衡,当选项设定位true,生成的查询计划会有两个MR Job。第一个MR Job中,Map的输出结果集合会随机分布到Reduce中,每个Reduce做部分聚合操作,并输出结果,这样处理的结果是相同的Group By Key有可能被分发到不同的Reduce中,从而达到负载均衡的目的;第二个MR Job再根据预处理的数据结果按照Group By Key 分布到 Reduce 中(这个过程可以保证相同的 Group By Key 被分布到同一个Reduce中),最后完成最终的聚合操作。

2>.SQL 语句调节:

1)、选用join key分布最均匀的表作为驱动表。做好列裁剪和filter操作,以达到两表做join 的时候,数据量相对变小的效果。
从左到右表的大小依次增大

2)、大小表Join:

使用map join让小的维度表(1000 条以下的记录条数)先进内存。在map端完成reduce.
set hive.auto.convert.join = true 表示开启map端优化

4)、大表Join大表:

把空值的key变成一个字符串加上随机数,把倾斜的数据分到不同的reduce上,由于null 值关联不上,处理后并不影响最终结果。

5)、count distinct大量相同特殊值:

count distinct 时,将值为空的情况单独处理,如果是计算count distinct,可以不用处理,直接过滤,在最后结果中加1。如果还有其他计算,需要进行group by,可以先将值为空的记录单独处理,再和其他计算结果进行union。
Hive文件压缩格式有哪些?压缩效率如何
开启压缩
set hive.exec.compress.output=true; 
set mapred.output.compress=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
set io.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
set mapred.output.compression.type=BLOCK;

TextFile(压缩方式Bzip2,Gzip压缩后不支持split)
SequenceFile-<key,value> (NONE,RECORD,BLOCK!。Record)
RCFile(存储方式:数据按行分块,每块按列存储。结合了行存储和列存储的优点)
ORCFile

https://blog.csdn.net/wf1982/article/details/7988566

Hive的分组排序(row_number()),组内TopN

select * from(

select g_field,
pv,
row_number() over(partition by g_field order by pv desc) as rn

)where rn <=3;
Hive解析hql转化为MR的执行过程

hive自定义函数
1.写一个类继承(org.apache.hadoop.hive.ql.)UDF
public class IpToNum extends UDF {

      public long evaluate(String ip) {
          String[] nums = ip.split("\\.");
          return Long.parseLong(nums[3]) + Long.parseLong(nums[2]) * 256
             + Long.parseLong(nums[1]) * 65536 + Long.parseLong(nums[0]) * 16777216;
      }

    }
2.打jar包,提交hive服务器
3.创建函数分为临时函数和永久函数
永久函数,可以制定库
create function test.iptonum as 'com.liam8.hive.IpToNum' using jar 'hdfs:///user/hadoop/hiveUDF/udfs-0.1.jar'
临时函数
create temporary function iptonum as 'com.liam8.hive.IpToNum' using jar 'hdfs:///user/hadoop/hiveUDF/udfs-0.1.jar'
4.使用
select iptonum('127.0.0.1');

hive有哪些保存元数据的方式,有什么特点
1、Single User Mode:
默认安装hive,hive是使用derby内存数据库保存hive的元数据,这样是不可以并发调用hive的,
这种模式时hive默认的存储模式,。
2、Multi User Mode:
通过网络连接到一个数据库中,是最经常使用到的模式。假设使用本机mysql服务器存储元数据。这种存储 
方式需要在本地运行一个mysql服务器,并作如下配置(需要将mysql的jar包拷贝到$HIVE_HOME/lib目录下 
)。
3、Remote Server Mode:
在服务器端启动一个 MetaStoreServer,客户端利用 Thrift 协议通过 MetaStoreServer 访问元数据 
库。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容