- Hadoop定义
- Hadoop组件
分布式文件系统
HDFS
- NameNode
- 维护HDFS文件系统,是文件系统的主节点,不存储文件数据
- 接受客户端的请求,如上传文件,下载文件,穿件目录等。
- 记录了客户端的操作日志(edits),保存了HDFS的最新状态
- edits文件保存了自最后一次检查点之前的对HDFS的操作信息,比如说新增文件,保存文件,删除目录等信息。
- 保存目录为
${HADOOP_HOME}/tmp/dfs/name/current/
- 查看可以使用
hadoop oev -i xxxxxxxxxxx
- 维护HDFS文件的元数据,将内存中不经常用到的元数据保存到硬盘中(fsimage文件)
- fsimage是存储在磁盘上的元数据信息的检查点,里边存储的是自最后一次检查点之前的DHFS文件目录和文件的序列化信息
- DataNode数据节点
- 以数据块为单位储存数据
- 数据保存的目录由hadoop.tmp.dir决定
- Secondary NameNode第二名称节点
- 主要是合并日日志
- 日志合并过程
- NameNode
分布式计算
Yarn``MapReduce
- ResourceManager(资源管理器)
- 接受客户端的请求:执行任务
- 分配任务资源
- 分配任务
- NodeManager(节点管理器,运行MapReduce任务)
- 从DataNode获取数据,执行任务
- ResourceManager(资源管理器)
- Hadoop集成Snappy压缩(Hadoop为CDH版本)
- 去该网站下载你对应hadoop的cdh版本 (http://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5.7.0/RPMS/x86_64/)
- rpm解压,默认的安装目录是
/usr/lib/hadoop/
rpm -ivh hadoop-2.6.0+cdh5.7.0+1280-1.cdh5.7.0.p0.92.el7.x86_64.rpm --nodeps
- 将
/usr/lib/hadoop/lib/native
目录拷贝到${HADOOP_HOME}/lib
下,然后在${HADOOP_HOME}/bin
下运行:
hadoop hadoop checknative
- 出现snappy为true就说明你成功了
- 在命令行使用压缩:
hadoop jar /opt/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar wordcount -Dmapreduce.map.output.compress=true -Dmapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec /user/liyuzhi/wordcount/wordcount.txt /user/liyuzhi/wordcount/output/