Hadoop简介
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System)HDFS。
HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上;而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS放宽了POSIX的要求,可以以流的形式访问文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
组成
Hadoop 由许多元素构成。其最底部是 Hadoop Distributed File System(HDFS),存储 Hadoop 集群中所有存储节点上的文件。HDFS的上一层是MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。
通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。
HDFS的架构是基于一组特定的节点构建的,这些节点包括NameNode,在HDFS内部提供元数据服务;DataNode为HDFS提供存储块;SecondNameNode解决了单点问题
NameNode
存储HDFS元数据(fsimage HDFS元数据镜像文件 以及 editlog HDFS文件改动日志)
管理文件系统的命名空间
创建、删除、移动、重命名文件和文件夹
接收从DataNode来的Heartbeat和Blockreport,监控其健康状态
SecondNameNode
定期合并fsimage和editlog,并传输给NameNode
合并时间根据配置文件来进行配置
fs.checkpoint.period
时间间隔,默认3600sfs.checkpoint.size
edits log大小,默认64M
DataNode
存储数据块(以固定的block为基本单位组织文件内容)
执行从NameNode来的文件操作命令
定时向NameNode发送Heartbeat和Blockreport
发行版本
Hadoop有三大发行版本:Apache、Cloudera、Hortonworks
- Apache 最基础的版本 apache版
- Cloudera 企业中使用最多的版本(收费) cdh版
- Hortonworks 文档较好
优势
- 高可用 Hadoop底层维护了多个数据副本,即使某个计算元素或者存储出现故障,也不会导致数据的丢失
- 高扩展 在集群间分配任务数据,可方便的扩展数以千计的节点
- 高效性 Hadoop并行工作,加快任务处理速度
- 高容错性 可以自动将失败的任务重新分配
场景
适合
- 大规模数据
- 写一次,读多次
不适合
- 低延时的数据访问
- 大量的小文件
- 频繁修改文件
配置
配置文件在hadoop下/etc目录下,有几个重要的配置文件
系统默认配置文件为core-default.xml、hdfs-default.xml、mapred-default.xml;管理员自定义配置文件为core-site.xml、hdfs-site.xml、mapred-site.xml,用于定义新的配置属性或者覆盖系统默认配置文件中的默认值。Hadoop会默认优先加载默认配置文件
core-site.xml
这是hadoop的核心配置文件
1 |
|
hdfs-site.xml
1 |
|
mapred-site.xml
1 |
|
启动
1 | 初始化namenode |
端口名称 | Hadoop2.x | Hadoop3.x |
---|---|---|
NameNode内部通信端口 | 8020 / 9000 | 8020 / 9000/9820 |
NameNode HTTP UI | 50070 | 9870 |
MapReduce查看执行任务端口 | 8088 | 8088 |
历史服务器通信端口 | 19888 | 19888 |