Hadoop - 入门

举报
正本清源 发表于 2019/03/21 21:41:04 2019/03/21
【摘要】 hadoop入门

【组成】:HDFS      分布式文件系统/存储海量数据

                  MapReduce 并行处理框架/实现任务分解/调度  

 

【文件操作流程】:

读取:客户端 —— 请求NameNode —— 返回元数据位置 —— 客户端 —— 直接读取block块数据进行组装

写入:客户端 —— 请求NameNode —— 可用DataNodes —— 客户端拆分数据 —— 直接将拆分数据写入DataNodes —— 复制元数据3份

特点:数据冗余/硬件容错,流式数据访问[写入后无法修改只能删除后重新写入],适用于 读多写少 大数据文件存储

  

【配置】:conf目录/hadoop-2.6.4/etc/hadoop

                  1. hadoop-env.sh   配置java环境

      export JAVA_HOME=${JAVA_HOME:-"/usr/java/jdk1.7.0_55"}  # modified by YangYT

  2. core-site.xml   配置工作目录/源数据/节点访问

      工作目录:<name>hadoop.tmp.dir</name>

                       <value>/r2/hadoopdata/namenode</value>

                  源数据:<name>dfs.name.dir</name>

             <value>/hadoop/name</value>

                 节点访问:<name>fs.defaultFS</name>

                                        <value>hdfs://BFGD-Cluster</value>

                      回收站:<name>fs.trash.interval</name>

                                    <value>1440</value> 24*60 默认保留1天

  3. hdfs-site.xml   配置数据存放目录

                      <name>dfs.datanode.data.dir</name>

                     <value>节点目录</value>

  4. mapred-site.xml 任务调度器

                      <name>mapreduce.jobhistory.address</name>

                      <value>slave1:10020</value>

  5. /user/root/.Trash/   hdfs回收站

 

【启动】:hadoop-2.6.4/sbin

                  namenode格式化:hadoop fs -format

                       启动:start-all.sh

        查看运行:jps JobTracker

                  Jps

  DataNode

  TaskTracker

  NameNode

  SecondaryNameNode


【命令】格式:hadoop fs -[命令]

              常用:hadoop fs -ls /                                                        查看文件根目录

         hadoop fs -rm                                                         删除

  hadoop fs -cat

  hadoop fs -put                                                        提交文件

  hadoop fs -get                                                        取文件

  hadoop dfsadmin -report                                        查看HDFS信息

  hdfs dfs -expunge                                                   清空回收站

  hadoop dfs -mv /user/grid/.Trash/Current/user/grid/in /user/grid/in   相当去取出来

  hadoop fs -du -sm /user/root/.Trash                                                  查看回收站

  hadoop fs -rm -r -skipTrash 目录/文件                                               直接删除                                          


【HDFS】:  数据块:64MB

               NameNode:管理节点/存放文件元数据

                    1. 文件与数据块的映射表

                                    2. 数据块与数据节点的映射表

 SecondaryNameNode:备份管理节点/定期同步元数据映像文件和修改日志

                                        Fslmage/Editlog

当NameNode发生故障时备胎转正

  DataNode:存放数据块   

  数据副本:容错机制/每个数据块有3个备份/分布在2个服务器上的3个节点

  心跳检测:DataNode定期向NameNode发送心跳消息/节点状态信息


【MapReduce原理】:Map    分拆小任务 各自统计 input split

                                     并行执行

     Reduce 合并结果   再次统计 output 

                                    1. Job&Task

                                    2. JobTracker    管理节点

        Map任务    —— Map TaskTracker

                                        Reduce任务 —— ReduceTaskTracker 在节点上具体得任务

                                    3. TaskTracker[节点]

              JobTracker:1. 作业调度

                            2. 分配任务/监控任务执行进度

    3. 监控TaskTracker状态

         容错机制:1. 重复执行 x4后放弃

                   2. 推测执行    


【MapReduce用例】1. wordcount单词计数

【HDFS回收站】:Hadoop的回收站trash功能默认是关闭的,所以需要在core-site.xml中手动开启。

                1、修改配置core-site.xml,增加:

                   <property> 

                   <name>fs.trash.interval</name> 

                   <value>1440</value> 

                   <description>Number of minutes between trash checkpoints. 

                   If zero, the trash feature is disabled. 

                   </description> 

                   </property>

                   默认是0,单位是分钟,这里设置为1天。删除数据rm后,会将数据move到当前文件夹下的.Trash目录。

                2、测试

                   1)新建目录input hadoop fs -mkdir input                             创建目录

                   2)上传文件      hadoop fs -copyFromLocal /data/soft/file0* input

                   3)删除目录input hadoop fs -rmr input                               删除目录input

                      Moved to trash: hdfs://master:9000/user/root/input

                   4)查看当前目录  hadoop fs -ls 

                      drwxr-xr-x - root supergroup 0 2011-02-12 22:17 /user/root/.Trash   回收站

                      发现input删除了,多了一个目录.Trash

                   5)恢复删除的目录 hadoop fs -mv /user/root/.Trash/Current/user/root/input /user/root/input

                   6)查看恢复的数据 hadoop fs -ls input 

                      -rw-r--r-- 3 root supergroup 22 2011-02-12 17:40 /user/root/input/file01 

                      -rw-r--r-- 3 root supergroup 28 2011-02-12 17:40 /user/root/input/file02

                   7)删除.Trash目录(清理垃圾)

                      hadoop fs -rmr .Trash 


zookerper:/usr/local/hadoop/zookeeper-3.4.6

             HBase下的zookeeper http://localhost:60010/zk.jsp  —— 页面监控。IP+端口访问

             /usr/local/hadoop/zookeeper-3.4.6/conf/zoo.conf     —— 配置

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。