您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Hadoop的基础知识点有哪些
## 一、Hadoop概述
Hadoop是由Apache基金会开发的**开源分布式计算框架**,核心设计目标是解决**海量数据存储(HDFS)**和**分布式计算(MapReduce)**问题。其主要特点包括:
- **高容错性**:自动处理节点故障
- **高扩展性**:可横向扩展至数千节点
- **低成本**:运行在普通商用硬件上
## 二、Hadoop核心组件
### 1. HDFS(Hadoop Distributed File System)
**分布式文件系统**,核心设计思想:
- **主从架构**:
- NameNode:管理元数据(单点故障问题)
- DataNode:存储实际数据块(默认3副本)
- **分块存储**:文件被切分为固定大小Block(默认128MB)
- **写一次读多次**模型
### 2. YARN(Yet Another Resource Negotiator)
**资源管理系统**,包含:
- **ResourceManager**:全局资源调度
- **NodeManager**:单节点资源管理
- **ApplicationMaster**:应用级任务管理
### 3. MapReduce
**分布式计算框架**,处理流程:
1. Input Split → 2. Map阶段 → 3. Shuffle → 4. Reduce阶段 → 5. Output
## 三、Hadoop生态系统
| 组件 | 功能描述 |
|---------------|----------------------------|
| HBase | 分布式NoSQL数据库 |
| Hive | 数据仓库工具(SQL接口) |
| Pig | 高级数据流语言 |
| Spark | 内存计算框架 |
| Flume | 日志收集系统 |
| Sqoop | 关系型数据库与HDFS数据传输 |
## 四、关键特性与技术
### 1. 数据本地化(Data Locality)
计算任务优先调度到存储数据的节点执行,减少网络传输。
### 2. 容错机制
- **心跳检测**:NameNode定期检查DataNode存活状态
- **副本机制**:默认3副本存储策略
- **Secondary NameNode**:辅助合并fsimage和edits(非热备)
### 3. 压缩技术
支持多种压缩格式(Snappy、LZO、Gzip等),平衡计算/IO资源。
## 五、基础架构示例
```java
// 典型MapReduce代码结构
public class WordCount {
public static class TokenizerMapper
extends Mapper<Object, Text, Text, IntWritable>{...}
public static class IntSumReducer
extends Reducer<Text,IntWritable,Text,IntWritable> {...}
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
Job job = Job.getInstance(conf, "word count");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}
# HDFS操作
hadoop fs -ls / # 查看根目录
hadoop fs -put local /hdfs # 上传文件
hadoop fs -get /hdfs local # 下载文件
# YARN操作
yarn application -list # 查看运行任务
注意:实际生产环境中通常需要结合ZooKeeper实现高可用,并配合Ambari等工具进行集群管理。 “`
(全文约980字,可根据需要增减细节)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。