赞
踩
Hadoop是Apache 软件基金会开源的一款开源Java软件,用户编写简单的编程模型实现跨机器对海量数据分布式计算处理的框架
Hadoop的核心组件有
Hadoop 生态,基于 Hadoop 软件的大数据生态
Dong Cutting 做Apache Lucene 子项目 Nutch (全网搜索引擎) 的问题大量数据的存储和索引;
三篇论文:
The Google file System
MapReduce:Simplified Data Processing on Large Clusters
Bigtable : A Distributed Storage System for Structred Data
开源社区版本 更新快 ,稳定性一般
商业公司版本 有些服务收费,稳定性兼容性较好,更新慢;
在社区版本中
Hadoop1.0 HDFS MapReduce
Hadoop2.0 HDFS MapReduce YARN
Hadoop3.0 对比2.0 着重于性能优化
Hadoop 集群包括两个集群,逻辑上是两个集群,集群之间相互不影响;部署的时候可能是一个物理节点,都是主从架构;MapReduce 是一个计算框架,没有集群概念;
略略略了,网上搜搜很多。。
Hadoop Distributed File System
思考一下什么是文件系统?
存储文件,管理文件,文件权限,查找文件 等操作,一般我们的操作系统比如Linux 和Windows都是有自己的文件系统,有目录树的结构;
文件系统一般会维护两种数据
大数据运算难点?
为此出现分布式存储系统
HDFS 是一个分布式的文件管理系统;具有分布式文件管理系统的优点;综合管理多个计算机的存储文件,主要是处理大数据存储问题,提高数据容错,并提供统一的接口访问
起源:Nutch 全网搜索的文件存储问题~
设计目标:
优点:大文件场景,数据流式访问,低成本部署机器
缺单:小文件场景,小文件多,都去存储到元数据;低延迟场景;频繁修改数据的场景
## 操作HDFS 文件 已经Deprecated 不推荐
hadoop dfs ******
##推荐
## 操作本地文件系统(LInux 本地)
hadoop fs -ls file:///
## 操作HDFS 分布式文件系统
hadoop fs -ls hdfs://node1:8020/
## 没有指定协议 读取配置文件中 fs.defaultFS 属性
hadoop fs -ls /
### 查看帮助 和Linux 差不多
hadoop fs -help
### 常用 ## 创建 文件夹 hadoop fs -mkdir -p /sff/sff/sff ### 遍历根目录及其子文件夹 -R 下级 hadoop fs -ls -h -R / ### 上传文件到HDFS -f 是否覆盖 -p 保留权限和修改时间 localsrc 本地文件 dst hdfs的文件路径 hadoop fs -put [-f] [-p] <localsrc> <dst> ### 下载文件到本地 -f 是否覆盖 -p 保留权限和修改时间 src hdfs 路径 localdst 文件路径 必须是目录 hadoop fs -put [-f] [-p] <src> <localdst> ### 复制 hdfs <src> <dst> hdfs路径 hadoop fs -cp [-f] <src> <dst> ### 移动 hdfs <src> <dst> hdfs路径 hadoop fs -mv <src> <dst> ### 本地文件追加到dst 文件 dst 文件不存在的就创建该文件 localsrc为- 的时候就是标准输入中读取 hadoop fs -appendToFile <localsrc> <dst> ###查看文件 大文件不要瞎搞!!!!!!!!!!!!!! hadoop fs -cat /user/hive/warehouse/hivedemo.db/xxxx/xxxxx.txt
官方架构
Pipeline 意为管道,是HDFS 在上传文件写数据过程中采用的一种数据传输方式,客户端把数据写入到一个DataNode1,DataNode1再把数据复制到DataNode2在复制到其他DataNode节点;
充分利用每个机器的宽带资源
Ack确认信号,接受方给发送方发送一种传输控制类的字符,表示发来的数据已经确认接受到所有数据;用来保证数据传输安全;
3.7.3 BlockPlacementPolicyDefault
副本策略 3 个
第一个副本:有限客户端本地,否则随机
第二个副本:不同于第一个的机架
第三个副本:第二个副本相同的机架不同机器
编程模型
MapReduce 就是分布式计算框架:可以轻松编写分布式应用程序,容错的方式处理大量硬件集群和大量数据
一个MapReduce编程模型 **只能有一个个Map阶段和一个Reducee阶段,或者只有Map阶段;**业务复杂的话就是多个MapReduce 串行执行
而在MapReduce中,指的是将map端的无规则输出按指定的规则转变成具有一定规则的数据,以便reduce端接收处理
Map --> shuffle —> shuffle —>Reduce
Map端Shuffle
Reduce端Shuffle
shuffle机制弊端
在YARN中,负责给应用分配资源的就是Scheduler,它是ResourceManager的核心组件之一。
有三种调度策略;如果需要使用其他的调度器,可以在yarn-site.xml中的yarn.resourcemanager.scheduler.class进行配置。
在YARN中,负责给应用分配资源的就是Scheduler,它是ResourceManager的核心组件之一。
有三种调度策略;如果需要使用其他的调度器,可以在yarn-site.xml中的yarn.resourcemanager.scheduler.class进行配置。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。