基础练习:
- 熟悉Hadoop streaming工作机制,用streaming机制进行词频统计,对Hadoop思想建立基本认知;
- 熟悉Hadoop streaming自带各种配置,包括排序、hash分组、压缩格式、内存设定等;
- 熟悉hive sql各种join操作及意义,主要是读sql;
1.词频统计:
http://dongxicheng.org/mapreduce-nextgen/hadoop-streaming-examples/
bug:Does not contain a valid host:port authority: :10020(队列权限问题)
排序的设置
http://blog.sina.com.cn/s/blog_4b59de070101b7iy.html
Partition:分桶过程,用户输出的key经过partition分发到不同的reduce里,因而partitioner就是分桶器,一般用平台默认的hash分桶也可以自己指定。
Key:是需要排序的字段,相同分桶&&相同key的行排序到一起。
2.参数设置
1)mapred.map.tasks:map task数目
2)mapred.reduce.tasks:reduce task数目
3)stream.map.input.field.separator/stream.map.output.field.separator: map task输入/输出数据的分隔符,默认均为\t。
4)stream.num.map.output.key.fields:指定map task输出记录中key所占的域数目
5)stream.reduce.input.field.separator/stream.reduce.output.field.separator:reduce task输入/输出数据的分隔符,默认均为\t。
6)stream.num.reduce.output.key.fields:指定reduce task输出记录中key所占的域数目
3.join
https://www.cnblogs.com/xd502djj/archive/2013/01/18/2866662.html
join 对应sql的join
left outer join 对应sql的 left join
right outer join 对应sql的 right join
left semi join:exisit in
SELECT a.key, a.val
FROM a LEFT SEMI JOIN b on (a.key = b.key);
对应的sql:
SELECT a.key, a.value
FROM a LEFT OUTER JOIN b ON (a.key = b.key)
WHERE b.key <> NULL;
hive sql的例子
join:select u.name, o.orderid from order o join user u on o.uid = u.uid;
group by:select rank, isonline, count(*) from city group by rank, isonline;
注意.sh 文件中不应该包括多余的空格
Hive Sql底层编译:https://blog.csdn.net/nacey5201/article/details/34215497
shuffle过程解释:http://langyu.iteye.com/blog/992916
网友评论