zoukankan      html  css  js  c++  java
  • 大数据基础及演练

    Hadoop是一个开源的大数据框架;

    Hadoop是分布式计算的解决方案;

    Hadoop = HDFS(分布式文件系统) (存储)+ MapReduce(分布式计算)

    HDFS总结:

         普通的成百上千台机器;TB甚至PB为单位的大量的数据;简单便捷的文件获取;

    HDFS概念:

       1.数据块 

             数据块是抽象块,而非整个文件作为存储单元;默认大小为64M,一般设置128M,备份3个;

       2.NameNode

             管理文件系统的命名空间,存放文件元数据;维护着文件系统的所有文件和目录,文件与数据块的映射;记录每个文件中各个块所在数据节点的信息;

       3.DataNode

            存储并检索数据块;向NameNode更新所存储块的列表;

    HDFS优点:

         适合大文件存储,支持TB、PB级别的数据存储,并有副本策略;可以构建在廉价的机器上,并有一定的容错和恢复机制;支持流式数据访问,一次写入,多次读取最高效;

    HDFS缺点:

        不支持大量小文件的存储;不适合并发写入,不支持文件随机修改;不支持随机读等低延时的访问方式;

    1.    数据块 不宜太大,也不宜太小;

    太小了,会分割为多个数据块,减低效率,加大了namenode的内存消耗;

    太大了会对于并行支持不够,重启需要重新加载数据,数据块过大时间过长;

    2.    hadoop2  HA高可用集群,避免了namenode挂掉的情况;

    ./hdfs dfs -help  查看帮助文档

    查看hdfs 根目录:  hdfs dfs -ls /

    hdfs dfs -mkdir /test

    hdfs dfs -copyFromLocal /xx.txt /test/

    hsfs dfs -cat /test/xx.txt

    python 操作 hdfs  引入hdfs3模块

    YARN(Haoop2之后的资源管理器)概念

          1.ResourceManager:分配和调度资源;启动并监控ApplicationMaster; 监控NodeManager

          2.ApplicatonMaster:为MR类型的程序申请资源,并分配给内部任务;负责数据的切分;监控任务的执行及容错;

          3.NodeManager:管理单个节点的资源;处理来自ResourceManager的命令;处理来自ApplicationMaster的命令

         MapReduce是一种编程模型,是一种编程方法,是抽象的理论;

    MapReduce编程模型

          输入一个大文件,通过Split之后,将其分为多个分片;每个文件分片由单独的机器去处理,这就是Map方法  ;将各个机器计算的结果进行汇总并得到最终的结果,这就是Reduce方法;

    python mapreduce实例

    map.py

  • 相关阅读:
    在C++中使用GDI+绘制带箭头的线,箭头大小可调
    tomcat通过conf-Catalina-localhost目录发布项目详解
    VC++ 获取Windows系统标准字体方法
    简单实现全屏对话框
    采用ATL实现无模板对话框的显示
    C++实现全局鼠标、键盘消息hook,支持事件
    C++ FastDelegate 扩展,实现与.net类似的事件处理功能
    技术研发在国内的现状
    [STM32F103]DMA原理
    [STM32F103]RTC日历
  • 原文地址:https://www.cnblogs.com/pejsidney/p/8869359.html
Copyright © 2011-2022 走看看