美文网首页
hadoop (二)解读Hello World

hadoop (二)解读Hello World

作者: cnliu | 来源:发表于2018-07-31 23:23 被阅读0次

    hadoop (二)解读Hello World

    http://www.cnblogs.com/zjfstudio/p/3861373.html

    解读Hello World 执行过程

    回顾Hello World 执行操作 (单词计数器)

    1. $mkdir input 
    2. $cd input 
    3. $echo "hello world">test1.txt
    4. $echo "hello hadoop">test2.txt 
    5. $cd ..   
    6. $bin/hadoop dfs -put input in   
    7. $bin/hadoop jar build/hadoop-0.20.2-examples.jar wordcount in out 
    8. $bin/hadoop dfs -cat out/*
    

    第1-5步仅是liunx基本命令,创建一个input目录,并在该目录下创建两个包含内容的文件。

    第6-8步为hadoop命令:

    第6步:执行dfs命令--操作HDFS文件系统命令,上传本地文件目录input到dfs服务器上,并重命名为in。
    
    第7步:执行hadoop自带实例jar包
           *build/hadoop-0.20.2-examples.jar*:其中jar包路径为
           *wordcount*:执行主函数的类名
           *in和out*为执行主函数传入的两个变量,在此jar中代表dfs服务器上输入路径(数据源)和输出路径(计算结果输出)。
    
    第8步:执行dfs命令-查看计算输出目录下文件内容。
    

    hadoop框架核心解读

    hadoop核心从上一节的 hadoop是什么 的答案可以得到:HDFS 分布式文件存储系统 和 MAPREDUCE 分布式计算。

    大数据时代需要解决的问题:1、海量数据存储 2、海量数据计算。

    hadoop中HDFS提供了分布式文件存储解决方案,并提供了统一接口。

    hadoop中MapReduce提供了分布式计算解决方案。

    传统数据计算-数据移动:主机应用通过接口将数据抓取到程序中进行进行分析计算。

    大数据计算-移动计算:主机应用将程序发送到各个hadoop节点上进行计算,然后统一将结果汇总返回,相当于每个节点做一部分计算,再汇总。

    HDFS 分布式文件存储系统

    从标题理解就可以看出,HDFS是分布式文件系统,啥意思? 就是文件可以在多个主机节点管理,一般我们操作都是单节点操作,比如说我们电脑装的window的文件系统,一般都是单机操作。 而HDFS则提供了一个统计的交互接口,操作多台主机中文件系统。

    image

    MAPREDUCE 分布式计算

    举个栗子:比如现在你有100个数要求和。

    传统计算:一个人把这100个数和计算出来,一个个做加法。

    分布式计算:有一个团队,比如说10个人,那分配一下这100个数求和的任务,每个人做10个数的求和,然后汇总到我这里,我再做10次求和,得出最终结果。

    人就是主机,当文件分布在不同主机上,reduce就是来负责从HDFS文件中读取并分配任务到各个集群节点进行计算,并将集群节点计算结果汇总输出。

    hadoop 进程分析

    上面我们已经知道hadoop的核心是 1、分布式存储 2、移动计算。 为了完成这两个核心工作,hadoop启动了如下进程来解决,也就是我们上一节执行了 ./bin/start-all.sh 后,使用 jps 查看java进程的结果:

    3624 SecondaryNameNode
    3434 NameNode
    4325 Jps
    3686 JobTracker
    4707 DataNode
    4824 TaskTracker
    
    image

    NameNode

    是HDFS的守护进程,负责记录文件是如何分割成数据块以及分配存储到哪个DataNode节点上,对内存及I/O进行集中管理。一个系统中只会有一个NameNode。

    SecondaryNameNode

    与NameNode互备

    用来监控HDFS状态的辅助进程。与NameNode不同的时,它不接收或记录任何实时的数据变化,只与NameNode进行通信,以便定期地保存HDFS元数据的快照。由于NameNode是单点的,通过SecondaryNameNode的快照功能,可以将NameNode的宕机时间和数据损失降低到最小。同时NameNode发生问题时,Secondary NameNode可以及时地作为备用NameNode使用。

    DataNode

    数据结点,负责将数据包读写到硬盘上。当客户端需要数据通讯时,先问NameNode获取存放到哪个DataNode,然后,客户端直接与DataNode进行通讯。

    JobTracker

    应用程序与Hadooop之间的纽带,代码提交到集群上,JobTracker将会确定执行计划,包括决定处理哪些文件,为不同的任务分配节点以及监察所有任务的运行,如果任务失败,JobTracker将会自动重启,但分配的节点可能会不同。

    TaskTracker

    负责执行由JobTracker分配的单项任务,虽然单个结点上只有一个TaskTracker,但可以利用多个JVM(Java虚拟机)并行处理多个Map或reduce任务。

    hadoop命令

    image

    相关文章

      网友评论

          本文标题:hadoop (二)解读Hello World

          本文链接:https://www.haomeiwen.com/subject/okbkvftx.html