# 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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。