Hadoop1 和 Hadoop2 的区别
Hadoop 是一个开源软件编程框架,用于存储大量数据并执行计算。它的框架基于 Java 编程,带有 C 和 shell 脚本中的一些本机代码。
Hadoop 1 与 Hadoop 2 的比较区别
1. 组件
在 Hadoop 1 中我们有 MapReduce,但 Hadoop 2 有 YARN(Yet Another Resource Negotiator)和 MapReduce 版本 2。
Hadoop 1 | Hadoop 2 |
---|---|
HDFS | HDFS |
Map Reduce | YARN/MRv2 |
2. 守护进程
Hadoop 1 | Hadoop 2 |
---|---|
Namenode | Namenode |
Datanode | Datanode |
Secondary Namenode | Secondary Namenode |
Job Tracker | Resource Manager |
Task Tracker | Node Manager |
3. 运作方式
在 Hadoop 1 中,有用于存储的 HDFS 及其顶部,用作资源管理和数据处理的 Map Reduce。由于 Map Reduce 上的这种工作量,它会影响性能。
在 Hadoop 2 中,HDFS 再次用于存储,在 HDFS 之上,YARN 用作资源管理。它基本上分配资源并保持所有事情的进行。
4. 限制
Hadoop 1 是主从架构。它由一个主机和多个从机组成。假设如果主节点崩溃,那么无论您的最佳从节点如何,集群都将被破坏。同样,创建该集群意味着在另一个系统上复制系统文件、映像文件等非常耗时,这在当今的组织中是不能容忍的。
Hadoop 2 也是一个主从架构。但这由多个主节点(即活动名称节点和备用名称节点)和多个从节点组成。如果这里的主节点崩溃,那么备用主节点将接管它。可以进行多种主备节点组合。因此 Hadoop 2 将消除单点故障的问题。
5. 生态系统
- Oozie 基本上是工作流调度程序。它根据它们的依赖关系决定执行作业的特定时间。
- Pig、Hive 和 Mahout 是在 Hadoop 之上工作的数据处理工具。
- Sqoop 用于导入和导出结构化数据。可以使用 SQL 数据库直接将数据导入和导出到 HDFS。
- Flume 用于导入和导出非结构化数据和流式数据。