阅读目录
- 一、Hadoop简介
- 二、Hadoop的特性
- 三、hadoop组成与体系结构
- 四、Hadoop安装方式
- 五、Hadoop集群中的节点类型
一、Hadoop简介
- Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构
- Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中
- Hadoop的核心是HDFS和MapReduce,HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算
- Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力
- 几乎所有主流厂商都围绕Hadoop提供开发工具、开源软件、商业化工具和技术服务,如谷歌、雅虎、微软、思科、淘宝等,都支持Hadoop
二、Hadoop的特性
Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性:
1、高可靠性:采用冗余数据存贮方式,即使一个副本发生故障,其他副本也可以保证对外工作的正常进行。
2、高效性:作为并行分布式计算平台,hadoop采用分布式存贮和分布式处理两大核心技术,能够高效的处理PB级别的数据
3、高可扩展性:hadoop的设计目标是可以高效稳定的运行在廉价的计算机集群上,可以扩展到数以千计的计算机节点上。
4、容错性:采用冗余数据存贮方式,自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
5、成本低:hadoop采用廉价的计算机集群,普通的用户也可以pc机搭建环境
6、运行在linux平台上:hadoop是基于java语言开发的,可以较好的运行在linux的平台上
7、支持多种编程语言:Hadoop 带有用 Java 语言编写的框架,因 此运行Linux 生产平台上是非常理想的,Hadoop 上的应用程序也可以使用其他语言编写。如:C++等
三、hadoop组成与体系结构
组件 | 功能 |
---|
HDFS | 分布式文件系统 |
MapReduce | 分布式并行编程模型 |
YARN | 资源管理和调度器 |
Tez | 运行在YARN之上的下一代Hadoop查询处理框架 |
Hive | Hadoop上的数据仓库 |
HBase | Hadoop上的非关系型的分布式数据库 |
Pig | 一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig Latin |
Sqoop | 用于在Hadoop与传统数据库之间进行数据传递 |
Oozie | Hadoop上的工作流管理系统 |
Zookeeper | 提供分布式协调一致性服务 |
Storm | 流计算框架 |
Flume | 一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统 |
Ambari | Hadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控 |
Kafka | 一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据 |
Spark | 类似于Hadoop MapReduce的通用并行框架 |
四、Hadoop安装方式
-
单机模式:Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试
-
伪分布式模式:Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是HDFS 中的文件
-
分布式模式:使用多个节点构成集群环境来运行Hadoop
1、Hadoop基本安装配置主要包括以下几个步骤:
(1)创建Hadoop用户
(2)SSH登录权限设置
(3) 安装Java环境
(4) 单机安装配置
(5)伪分布式
一个安装伪分布式集群的博客:Centos7 + Hadoop3 搭建伪分布式集群
2、伪分布式安装配置
实验步骤:
- 修改配置文件:core-site.xml,hdfs-site.xml,mapred-site.xml
- 初始化文件系统hadoop namenode -format
- 启动所有进程start-all.sh
- 访问web界面,查看Hadoop信息
- 运行实例
- 关闭所有进程stop-all.sh
五、Hadoop集群中的节点类型
Hadoop框架中最核心的设计是为海量数据提供存储的HDFS和对数据进行计算的MapReduce
MapReduce的作业主要包括:(1)从磁盘或从网络读取数据,即IO密集工作;(2)计算数据,即CPU密集工作
Hadoop集群的整体性能取决于CPU、内存、网络以及存储之间的性能平衡。因此运营团队在选择机器配置时要针对不同的工作节点选择合适硬件类型
一个基本的Hadoop集群中的节点主要有
- NameNode:负责协调集群中的数据存储
- DataNode:存储被拆分的数据块
- JobTracker:协调数据计算任务
- TaskTracker:负责执行由JobTracker指派的任务
- SecondaryNameNode:帮助NameNode收集文件系统运行的状态信息