hadoop trails
最近在捣鼓hadoop相关东东,部门里面需要总结一个hadoop相关的trails,方便后面freshmen加入时可以参考。写了写,可能不对,供新手参考。自己也还是一个新手啊。
hadoop还是很多值得学习的地方,hadoop建立者Dogg Cutting 也是lucene的作者,现在又是ASF的主席。
名词解释
与hadoop关联的软件、名词非常多,这里列出一些常用的。
- hadoop: 一整套分布式存储、计算解决方案
- hdfs: 一套分布式文件系统
- mapreduce: 一套分布式计算框架
- hbase: 基于hdfs的column family 的nosql数据库
- hive: 一套将类似sql的hql转换成mapreduce job的工具
- thrift: 一套用于各种语言间通讯的协议以及实现
搭建环境
搭建基本的hadoop环境
- 在本地环境搭建伪分布式的hadoop环境,包括基本的hdfs和mapreduce
- 在本地环境搭建hive和hbase等关联的环境
检验
- 本地能够搭建一个hadoop环境,并且实现以下功能
- 将本地文件放入hdfs
- 运行一个基于hdfs的mapreduce示例程序
使用hdfs
需要知道的知识
- hadoop文件存放的方式
- hadoop对文件系统操作命令行的使用
检验
- 上传文件到hdfs
- 从hdfs中获取文件到本地
使用mapreduce
需要知道的知识
- 基本的java面向类编程
- mapreduce的过程
- 如何自己写一个mapreduce程序
- 如何运行mapreduce程序
检验
- 知道什么逻辑应该在map端处理,什么逻辑在reduce时处理
- 写一个程序统计一个文件中各个单词出现的次数
进一步了解hdfs
需要知道的知识
- hdfs的架构
- namenode和datanode的作用
- hdfs中的block
检验
- 描述一个客户端上传文件到hdfs时,各个结点之间的通讯次序。
进一步了解mapreduce
需要知道的知识
- 数据如何在map和reduce过程传递的
- job是如何分配的
- 输入的数据是如何分配给map程序的
- map计算出来的结果是如何组织的,然后传递给reduce的
- 一个任务map的个数取决于哪些因素
检验
- 描述一个客户端提交了一个mapreduce的任务,hadoop内部各个结点做了哪些动作。
- 自定义mapreduce的InputFormat, OutputFormat, Writable