大数据基础及演练

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

 

 

转载于:https://www.cnblogs.com/pejsidney/p/8869359.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值