Hadoop基础篇 01 Hadoop集群的部署与使用

Hadoop基础篇 01 Hadoop集群的部署与使用

集群节点类型

相关知识

Hadoop框架中最核心的设计
  • HDFS 为海量数据提供存储
  • MapReduce 对数据进行计算的
MapReduce的主要作业
  • 从磁盘或从网络读取数据,即IO密集工作;
  • 计算数据,即CPU密集工作
‘Hadoop集群的整体性能

Hadoop集群的整体性能取决于CPU、内存、网络以及存储之间的性能平衡。因此运营团队在选择机器配置时要针对不同的工作节点选择合适硬件类型

主要节点

  • NameNode:负责协调集群中的数据存储
  • DataNode:存储被拆分的数据块
  • JobTracker:协调数据计算任务
  • TaskTracker:负责执行由JobTracker指派的任务
  • SecondaryNameNode:帮助NameNode收集文件系统运行的状态信息

集群硬件配置

Datanode/TaskTracker

在集群中,大部分的机器设备是作为Datanode和TaskTracker工作

  • 4个磁盘驱动器(单盘1-2T),支持JBOD(Just a Bunch Of Disks,磁盘簇)
  • 2个4核CPU,至少2-2.5GHz
  • 16-24GB内存
  • 千兆以太网

NameNode

NameNode提供整个HDFS文件系统的NameSpace(命名空间)管理、块管理等所有服务,因此需要更多的RAM(内存),与集群中的数据块数量相对应,并且需要优化RAM的内存通道带宽,采用双通道或三通道以上内存。

  • 8-12个磁盘驱动器(单盘1-2T)
  • 2个4核/8核CPU
  • 16-72GB内存
  • 千兆/万兆以太网

SecondaryNameNode

在小型集群中可以和NameNode共用一台机器,较大的群集可以采用与NameNode相同的硬件

集群规模

  • Hadoop集群规模可大可小,初始时,可以从一个较小规模的集群开始,比如包含10个节点,然后,规模随着存储器和计算需求的扩大而扩大
  • 如果数据每周增大1TB,并且有三个HDFS副本,然后每周需要一个额外的3TB作为原始数据存储。要允许一些中间文件和日志(假定30%)的空间,由此,可以算出每周大约需要增加一台新机器。存储两年数据的集群,大约需要100台机器
  • 对于一个小的集群,名称节点(NameNode)和JobTracker运行在单个节点上,通常是可以接受的。但是,随着集群和存储在HDFS中的文件数量的增加,名称节点需要更多的主存,这时,名称节点和JobTracker就需要运行在不同的节点上
  • 第二名称节点(SecondaryNameNode)会和名称节点可以运行在相同的机器上,但是,由于第二名称节点和名称节点几乎具有相同的主存需求,因此,二者最好运行在不同节点上

集群网络拓扑

  • 普通的Hadoop集群结构由一个两阶网络构成
  • 每个机架(Rack)有30-40个服务器,配置一个1GB的交换机,并向上传输到一个核心交换机或者路由器(1GB或以上)
  • 在相同的机架中的节点间的带宽的总和,要大于不同机架间的节点间的带宽总和

在这里插入图片描述

集群的建立与安装

采购好相关的硬件设备后,就可以把硬件装入机架,安装并运行Hadoop

安装Hadoop有多种方法:

  • 手动安装

    参考文章:http://dblab.xmu.edu.cn/blog/2441-2/

  • 自动化安装

    • 为了缓解安装和维护每个节点上相同的软件的负担,可以使用一个自动化方法实现完全自动化安装,比如Red Hat Linux’ Kickstart、Debian或者Docke
    • 自动化安装部署工具,会通过记录在安装过程中对于各个选项的回答来完成自动化安装过程。

集群基准测试

  • 如何判断一个Hadoop集群是否已经正确安装?可以运行基准测试
  • Hadoop自带有一些基准测试程序,被打包在测试程序JAR文件中
  • 用TestDFSIO(测试分布式文件系统输入输出)基准测试,来测试HDFS的IO性能
  • 用排序测试MapReduce:Hadoop自带一个部分排序的程序,这个测试过程的整个数据集都会通过洗牌(Shuffle)传输至Reducer,可以充分测试MapReduce的性能

在云计算环境中使用Hadoop

  • Hadoop不仅可以运行在企业内部的集群中,也可以运行在云计算环境中
  • 可以在Amazon EC2中运行Hadoop。EC2是一个计算服务,允许客户租用计算机(实例),来运行自己的应用。客户可以按需运行或终止实例,并且按照实际使用情况来付费
  • Hadoop自带有一套脚本,用于在EC2上面运行Hadoop
  • 在EC2上运行Hadoop尤其适用于一些工作流。例如,在Amazon S3中存储数据,在EC2上运行集群,在集群中运行MapReduce作业,读取存储在S3中的数据,最后,在关闭集群之前将输出写回S3中;如果长期使用集群,复制S3数据到运行在EC2上的HDFS中,则可以使得数据处理更加高效,因为,HDFS可以充分利用数据的位置,S3则做不到,因为,S3与EC2的存储不在同一个节点上

小结

  • Hadoop被视为事实上的大数据处理标准,这里介绍了Hadoop的发展历程,并阐述了Hadoop的高可靠性、高效性、高可扩展性、高容错性、成本低、运行在Linux平台上、支持多种编程语言等特性
  • Hadoop目前已经在各个领域得到了广泛的应用,雅虎、Facebook、百度、淘宝、网易等公司都建立了自己的Hadoop集群
  • 经过多年发展,Hadoop项目已经变得非常成熟和完善,包括Common、Avro、Zookeeper、HDFS、MapReduce、HBase、Hive、Chukwa、Pig等子项目,其中,HDFS和MapReduce是Hadoop的两大核心组件
  • 最后介绍了如何在Linux系统下完成Hadoop的安装和配置,这个部分是后续实践环节的基础
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值