Hadoop硬件合理配置及raid方面的调研


前言

最近公司在Hadoop服务器未来规划,所以调研了各个方面,有点杂乱,这里记录一下。


提示:仅供参考

一、Hadoop硬件合理配置

不同应用,对Hadoop的配置、规划以及硬件要求都不一样

  • 计算密集型应用
    • 机器学习
    • 数据挖掘
  • IO密集型应用
    • 索引,检索
    • 统计,聚类
    • 数据解码与解压缩

HDFS

  • 可靠的存储PB级别数据
  • 文件设计为批处理优化,如大量数据块(Block)的顺序读写,HDFS中文件按块(Block)分割存储及处理
  • 可配置的每文件副本数,缺省3份
  • 支持机架(rack)感知的数据块放置策略

特点:

  • 并行磁盘访问
  • 节点磁盘容错
  • 节点失效会导致数据块副本重新复制
  • 流水线副本复制
  • 副本数3或者10无太大性能差异

性能要求:
主要对于网络带宽以及存储容量要求
硬件偏好:硬盘> 网络> …

MapReduce

  • 批量处理框架
  • 从HDFS读取海量数据
  • 大量上层应用框架,如Hive以及Pig

特点:

  • 通常需要读取整个数据集
  • 数据写数量因应用不同而不同
    - ETL为读写密集型应用
    - 机器学习为读密集型应用
  • Shuffle过程对网络要求通常极大
    - 是Map和Reduce任务之间的M:M数据传输对应
    - 可能导致网络风暴

性能要求:
CPU能力直接影响并行能力(slot数目)
硬件偏好:CPU > 网络带宽> …
内存要求视具体应用

HBase

  • 提供低延时随机读写
  • 使用HDFS作为底层可靠存储
  • 基于Hadoop核心(HDFS/MapReduce) 提供服务

特点:

  • 高性能数据随机写
    - 通过Memstore缓存数据写入再flush,并做compaction
    - 顺序写WAL(write-ahead log)文件以避免磁盘寻址操作
  • 高性能数据随机读
    - 使用BlockCache避免过多的磁盘IO操作

性能要求:

  • 延时,内存大小以及Cache命中率直接影响数据读写性能
    硬件偏好:内存> 网络带宽> …

二、Hadoop架构配置建议

1.管理节点NameNode

  • 可以选用高配服务器,使用SSD 作为系统盘,使用RAID10,日志在其他盘保存以提高性能

2.数据节点DataNode

  • 一般而言,使用更多的机器而不是升级服务器配置
    - 采购主流的最”合算”配置的服务器,可以降低整体成本
    - 数据多分布可获得更好的scale-out并行性能以及可靠性
    - 需要考虑物理空间、网络规模以及其他配套设备等综合因素来考虑集群服务器数目

  • 基本配置
    通常按1块硬盘+2个CPU核+6至8GB内存的比例配置升级硬件可以满足多数应用的需求,尤其是IO密集型应用,网卡能用万兆网卡就用万兆网卡。

3.JBOD vs. RAID

  • 数据节点数据盘使用JBOD(Just a Bunch Of Disks),不要使用RAID

•RAID将HDFS并行流式读写操作变成随机读写,降低了性能
•RAID的读写性能受制于阵列中速度最慢的磁盘
•JBOD各磁盘操作独立,因此平均性能好于性能最差的磁盘
•HDFS的流式并行读取使得RAID0没有意义
•Yahoo测试表明JBOD性能比RAID0快10%到30%
•HDFS的副本冗余存储策略降低了单机数据可靠性的重要性,使得RAID1-6没有意义

  • 在RAID无法被移除的情况下,每一个物理硬盘可以被设为一个单独的RAID 0
  • 数据节点系统盘可使用RAID 10

4. SSD与Hadoop

由于Hadoop的磁盘IO多为顺序读写,因此不能完全发挥SSD的性能优势,大约比HDD快1倍

3.raid方面

Hadoop之为何不使用RAID?
参考链接:https://blog.csdn.net/zjttlance/article/details/82792728
尽管建议采用RAID(Redundant Array of Independent Disk,即磁盘阵列)作为namenode的存储器以保护元数据,但是若将RAID作为datanode的存储设备则不会给HDFS带来益处。HDFS所提供的节点间数据复制技术已可满足数据备份需求,无需使用RAID的冗余机制。

此外,尽管RAID条带化技术(RAID 0)被广泛用户提升性能,但是其速度仍然比用在HDFS里的JBOD(Just a Bunch Of Disks)配置慢。JBOD在所有磁盘之间循环调度HDFS块。RAID 0的读写操作受限于磁盘阵列中最慢盘片的速度,而JBOD的磁盘操作均独立,因而平均读写速度高于最慢盘片的读写速度。需要强调的是,各个磁盘的性能在实际使用中总存在相当大的差异,即使对于相同型号的磁盘。针对某一雅虎集群的评测报告(http://markmail.org/message/xmzc45zi25htr7ry)表明,在一个测试(Gridmix)中,JBOD比RAID 0 快10%;在另一测试(HDFS写吞吐量)中,JBOD比RAID 0 快30%。

最后,若JBOD配置的某一磁盘出现故障,HDFS可以忽略该磁盘,继续工作。而RAID的某一盘片故障会导致整个磁盘阵列不可用,进而使相应节点失效。

更多技术细节可以查看:Why not RAID-0? It’s about Time and Snowflakes

总结

之后系统盘用ssd,数据盘能用jbod就用jbod,不能用就使用raid0,raid阵列中raid0是最快的,而数据安全性的问题则通过hdfs的副本机制来解决,解决方案

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Windows 上安装 Hadoop 需要一些额外的配置。步骤如下: 1. 下载 Hadoop 的 Windows 版本。 2. 解压 Hadoop 到一个目录。 3. 配置 JAVA_HOME 环境变量。 4. 修改 Hadoop 的配置文件,包括 core-site.xml,hdfs-site.xml 和 mapred-site.xml。 5. 在命令行中运行 Hadoop 的命令来启动和配置 Hadoop 集群。 注意: Hadoop 在 Windows 上的性能可能不如在 Linux 上的性能。 ### 回答2: Hadoop是一个开源的分布式计算框架,用于处理大规模的数据集。以下是在Windows上安装和配置Hadoop的步骤。 1.准备工作 在开始安装之前,请确保您拥有以下工具: Windows电脑(64位) Java JDK(版本为1.7或更高版本) Hadoop(版本为2.7.1或更高版本) 2.安装Java JDK 访问Oracle官方网站以下载最新的Java JDK(Java SE Development Kit)版本。下载完成后,安装JDK并配置JAVA_HOME环境变量。在安装Java时,确保安装JDK而不是JRE。 3.安装Hadoop 下载所需版本的Hadoop,并解压缩至本地目录,比如:D:\hadoop-3.2.2。 4.配置环境变量 将Hadoop bin目录添加至PATH环境变量中。 5.配置Hadoop环境 进入D:\hadoop-3.2.2\etc\hadoop目录并打开hadoop-env.cmd文件。在文件末尾添加以下语句: set JAVA_HOME=D:\java\jdk-13.0.2 set HADOOP_HOME=D:\hadoop-3.2.2 6.配置Hadoop核心文件 打开D:\hadoop-3.2.2\etc\hadoop\core-site.xml文件,并添加以下代码: <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> 7.配置Hadoop HDFS文件系统 打开D:\hadoop-3.2.2\etc\hadoop\hdfs-site.xml文件,并添加以下代码: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/D:/hadoop-3.2.2/hadoopdata/namenode</value> </property> <property> <name>dfs.datanode.name.dir</name> <value>file:/D:/hadoop-3.2.2/hadoopdata/datanode</value> </property> </configuration> 8.格式化Hadoop文件系统 打开命令提示符,输入以下命令: D:\hadoop-3.2.2>d: D:\hadoop-3.2.2>cd D:\hadoop-3.2.2\bin D:\hadoop-3.2.2\bin>hadoop namenode -format 9.启动Hadoop 在命令提示符中输入以下命令以启动Hadoop: D:\hadoop-3.2.2\bin>start-all.cmd 10.验证Hadoop是否运行成功 在浏览器地址栏中输入http://localhost:50070/,如果看到Hadoop的webUI和集群的详细信息,则代表Hadoop已经成功运行。 通过以上步骤,您已经成功地在Windows上安装和配置了Hadoop。如果需要进一步了解Hadoop的使用方法,请参考官方文档或其他教程。 ### 回答3: Hadoop是一个开源的分布式计算平台,它可以方便地处理大规模数据集的存储和分析。本文将介绍如何在Windows上安装和配置Hadoop。 第一步:安装Java Hadoop基于Java开发,所以需要先安装Java。可以从Oracle官网下载Java并按照提示安装。安装完成后,打开命令提示符窗口,输入“java -version”命令,确认Java已经正确安装。 第二步:下载Hadoop 从Apache官网下载Hadoop,选择合适版本并下载压缩包。解压缩后将Hadoop文件夹移动到一个合适的位置,例如C盘根目录,重命名为“hadoop”。 第三步:配置Hadoop环境变量 为了方便使用Hadoop,需要将Hadoop路径添加到系统环境变量中。在Windows系统中,可以右键点击“此电脑”图标,选择“属性”菜单,在弹出的窗口中选择“高级系统设置”,然后选择“环境变量”选项卡。在“系统变量”窗口中添加以下两个变量: HADOOP_HOME C:\hadoop Path %HADOOP_HOME%\bin;%HADOOP_HOME%\sbin 注意:在Window系统中配置环境变量时,路径分隔符使用“;”,而不是Unix/Linux中的“:”。 第四步:配置Hadoop配置文件 进入Hadoop文件夹中的“etc\hadoop”目录,找到core-site.xml文件,修改以下内容: <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration> 找到hdfs-site.xml文件,修改以下内容: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/hadoop/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/hadoop/hdfs/datanode</value> </property> </configuration> 找到mapred-site.xml.template,将其重命名为mapred-site.xml,修改以下内容: <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration> 第五步:启动Hadoop 打开命令提示符窗口,进入Hadoop的bin目录,执行以下命令: start-all.cmd 这将启动所有Hadoop服务。可以在浏览器中输入“localhost:50070”来访问Hadoop的Web界面,查看Hadoop集群的运行状态。 至此,Hadoop的安装和配置完成。通过对Hadoop的学习和掌握,可以处理海量数据集,应用于大数据的存储和分析等方面

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值