hive进阶,以及hive处理日志文件实例,数据倾斜处理等hive进阶内容

本文介绍了Hive的高级用法,包括Hive Server2配置、数据存储、日志文件处理及数据倾斜的解决策略。通过案例展示了如何使用Hive进行数据清洗和分析,以及如何通过调整SQL语句和参数来处理数据倾斜问题。
摘要由CSDN通过智能技术生成

hive进阶

  • case-when-then-else
    select id,name,age1,
    case
    when age1 < 18 then ‘小屁孩’
    when age1 >=18 then ‘成年人’
    else ‘aa’ end as age222222
    from person;
hive server2
  • 配置
<property>
  <name>hive.server2.thrift.port</name>
  <value>10000</value>
</property>

<!-- hive server2绑定的主机名-->
<property>
  <name>hive.server2.thrift.bind.host</name>
  <value>bigdata.com</value>
</property>

<! hive server2的超时时间,默认是5000L-->
<property>
  <name>hive.server2.long.polling.timeout</name>
  <value>5000</value>
</property>
  • 步骤
    • 在服务端启动服务:bin/hive –service hiveserver2
    • 将hive文件夹scp到客户端
    • bin/beeline
    • !connect jdbc:hive2://node-1:10000
    • 输入虚拟机用户名和密码
    • sql语句
hive数据存储
  • 最长使用ORC
  • 使用ORC
    • 创建orc格式的表

      create table person(id int,name STRING,age INT)ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' stored as orc;
    • insert into table person2 select * from person;
    • 得到orc格式的数据
    • 创建orc格式的表时可以直接location数据的位置
mysql数据备份
  • 备份
    mysqldump -uroot -p123456 数据库名称 > /opt/aa
  • 还原
    mysql > source /opt/aa
hive语法unix_timestamp
  • 将时间换算成一秒为单位的整数,
    select unix_timestamp(trackTime) from track_log limit 10;
    1440760499
    select unix_timestamp('2015-08-28 19:15:59') from track_log limit 10;
    1440760559
from_unixtime()转换为时间戳

select from_unixtime(1440760559) from track_log limit 10;
2015-08-28 19:15:59

hivevar和hiveconf传递变量
  • hiveconf -f

文件:select * from hiveconf:namelimit h i v e c o n f : n a m e l i m i t {hiveconf:count};
命令行:bin/hive -hiveconf name=’test.person’ -hiveconf count=3 -f /opt/file.hql

  • hivevar -f
    文件:select * from

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值