01搭建cdh 前硬件资源的选型
这里就要针对hadoop生态圈 去选择什么样的硬件 cpu 硬盘厂家等
其实,hadoop生态圈一开始的主旨是用廉价的服务器去分布式的存储 处理数据。
但是在目前基本上硬件上的资源对于企业来说,不是多大的问题,所以在硬件上很大程度程度上提高了集群的性能。
各个企业对于服务器的采购也是各不相同,本人对硬件服务器上的知识懂的少,公司有懂这块的小伙伴,在搭建hadoop生态圈组件的时候,对于硬件的选择,这里做一个记录:
节点物理配置信息表如下
节点类型 | CPU | 内存(G) | OS盘大小(G) | 数据分区磁盘 | 网络 | 最小数据分区盘容量 |
---|---|---|---|---|---|---|
管理节点 | 20cores, 2*Intel E5-2650v3 | 128 | 2*600 | / | 2*1Gbps | / |
存储分析节点 | 20cores, 2Intel E5-2650v3 | 128 | 2*600 | 10 * 7200转 2TB SATA | 2*1Gbps | 2000 |
管理节点 | 20cores, 2*Intel E5-2650v3 | 128 | 2*600 | 6 * 10000转 600GB SAS | 2*1Gbps | 600 |
cpu:
节点上CPU的物理核心数
推荐:双路6核以上Intel处理器, 2 * E5-2620v3 以上
命令:cat /proc/cpuinfo
(PS:cpuinfo显示包括超线程虚拟核vcore,vcore总数量一般是物理核2倍)
ref: ark.intel.com
内存(G):
节点上的物理内存推荐:128G,至少64G
命令:free
OS盘大小(G):
节点上操作系统所在盘的空间大小,或者操作系统分区大小
推荐:300G以上
命令:df -h
数据分区磁盘:
除OS盘外,节点上数据磁盘的数量
推荐:服务器所有插槽插满,根据实际数据量规划磁盘容量,所有数据分区磁盘大小相同(HDFS是随机写入磁盘,小容量的磁盘会先被写满)
命令:fdisk(2TB以下磁盘分区),parted(2TB以上磁盘分区),mkfs.ext4(格式化)
检查:/etc/fstab是否所有分区都mount
最小数据盘容量(G):
除OS分区外,节点里数据分区磁盘空间最小的磁盘的容量
一般来说,在线上环境 会给/opt /var/log /data 等单独的盘给200G以上的空间,根据各个需求不同,而定。
磁盘阵列:
Raid0:
RAID 0 是最早出现的RAID 模式,即Data Stripping 数据分条技术。RAID 0 是组建磁盘阵列中最简单的一种形式,只需要2 块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。RAID 0 没有提供冗余或错误修复能力,但实现成本是最低的。
RAID 1:称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。(数据不安全,磁盘挂了,就挂了)
RAID 0+1:名称上我们便可以看出是RAID0 与RAID1 的结合体。在我们单独使用RAID 1也会出现类似单独使用RAID 0 那样的问题,即在同一时间内只能向一块磁盘写入数据,不能充分利用所有的资源。为了解决这一问题,我们可以在磁盘镜像中建立带区集。因为这种配置方式综合了带区集和镜像的优势,所以被称为RAID 0+1。把RAID0 和RAID1 技术结合起来,数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一
个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。RAID0+1 要在磁盘镜像中建立带区集至少4 个硬盘。
RAID5:分布式奇偶校验的独立磁盘结构。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。(数据更安全)
【正常的服务器磁盘做raid 操作,数据可靠性是做raid5 、raid1 相对而言简单操作,但数据不安全,提高了系统的可靠性】
但是:在hadoop生态圈中磁盘的阵列选型为:
不使用RAID
应避免在TaskTracker和DataNode所在的节点上进行RAID。RAID为保证数据可靠性,根据类型的不同会做一些额外的操作,HDFS有自己的备份机制,无需使用RAID来保证数据的高可用性。
不使用LVM
LVM是建立在磁盘和分区之上的逻辑层,将Linux文件系统建立在LVM之上,可实现灵活的磁盘分区管理能力。DataNode上的数据主要用于批量的读写,不需要这种特性,建议将每个磁盘单独分区,分别挂载到不同的存储目录下,从而使得数据跨磁盘分布,不同数据块的读操作可并行执行,有助于提升读性能。
JBOD
JBOD是在一个底板上安装的带有多个磁盘驱动器的存储设备,JBOD没有使用前端逻辑来管理磁盘数据,每个磁盘可实现独立并行的寻址。将DataNode部署在配置JBOD设备的服务器上可提高DataNode性能。
参考链接为:
https://www.cnblogs.com/yinzhengjie/p/10006880.html
原文地址:https://blog.51cto.com/12445535/2364919