《Hadoop集群与安全》一2.1 在Hadoop集群中配置操作系统

简介:

本节书摘来自华章出版社《Hadoop集群与安全》一书中的第2章,第2.1节,作者 (美)Danil Zburivsky Sudheesh Narayanan,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.1 在Hadoop集群中配置操作系统

正如之前所提到的,Hadoop能够运行在几乎所有Linux版本的系统上。本章随后的讲解会将重点放在CentOS 6.x上,CentOS和Red Hat是Hadoop相关产品安装最为普及的平台。要掌握这些步骤并不难,对于Debian系统所有与配置Hadoop组件的步骤都是一致的,因此读者可以根据自身需求替换对应的包管理器。

2.1.1 选择和设置文件系统

现代Linux系统支持多种不同的文件系统:如EXT3、EXT4、XFS、BTRFS,等等。针对特定的工作负载,这些文件系统具有略微不同的差别。
如果追求性能的稳定性以及高级特性,那么可以使用EXT3,它在最大型的Hadoop集群中已经得到了测试。完整的列表请参见http://wiki.apache.org/hadoop/DiskSetup。在本书中我们将使用EXT4,因为它在大型文件中有着更为出众的表现,这点使它成为了优秀的Hadoop文件系统之一。
要将使用EXT4文件系统的分卷格式化,请在命令解释器中以root用户权限运行下列命令:
image

在本例中,驱动器b上的分块1将会进行格式化。在这条格式化命令中包含了多个选项,讲解如下:
-m 0:该选项将预留给超级用户的空间设置为0(默认值为5%)。在大型文件系统中将节省巨大的磁盘空间。如果每台服务器上有16TB的容量,那么总共能节省大约800GB的空间。
-O extent,sparse_super,flex_bg:该选项开启了基于分区的分配,以此在大规模的连续输入输出请求中提升效率。sparse_super选项同样能够节省磁盘空间。通过分配更少的超级块备份拷贝在大型文件系统中节省空间。flex_bg选项强制文件系统紧密排列元数据分块,以此进一步提升性能。
在文件系统中进行分卷时有两个需要注意的选项:noatime和noadirtime。默认情况下文件系统通过升级元数据时间戳字段对操作进行跟踪,其中包括读取文件或者访问目录。在繁忙的系统中这将导致巨大的开销,因此我们应该将该选项关闭。下面的示例在/etc/fstab中关闭了该特性:
image

请注意所有这些配置参数都只能应用于DataNode数据节点硬盘。我们推荐在NameNode上使用磁盘阵列。请根据控制器的制造商确定磁盘阵列的配置。

2.1.2 设置Java开发包

Hadoop是用Java开发的,因此必须确认在Hadoop节点上安装了对应版本的JDK。请确保在所有节点上都使用了相同版本的JDK。目前官方支持的JVM版本只有Oracle公司一家。有报告表示Hadoop在OpenJDK上也有良好的表现,但是我们仍然坚持使用Oracle JDK。在编写本书时,Hadoop正在Java 6上进行测试运行,而Oracle最新的Java版本为7,实际上Java 6在2013年2月已经退出了历史舞台。在http://wiki.apache.org/hadoop/HadoopJavaVersions上读者可以找到所有经过Hadoop测试的Java版本。CentOS中并没有包含Oracle JDK,因此读者需要单独下载进行安装。可以从http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html上获得安装包(如果下载链接发生了变化,请读者在Google上搜索Oracle Java 6)。可以选择最新的6.x版本,新的升级和安全补丁都会随时进行更新。请确保使用rpm文件进行安装。我们将使用Cloudera公司的发行版,包括在随后章节用于安装Hadoop的Apache Hadoop(CDH)包,它依赖于Oracle Java的rpm文件。下面是安装64位Oracle Java 1.6.0_45的命令:
image

请确认在所有Hadoop节点上都进行了安装(包括网关服务器)。

2.1.3 其他操作系统设定

除了上述内容外,还需要对其他操作系统设定进行修改来确保Hadoop集群的正常运作。首先需要确认集群中的主机名/IP地址解析是否运行正常。当Hadoop主节点(比如NameNode或者JobTracker)首次从DataNode获取心跳信息后,它会记录下IP地址用于随后的通信。因此有必要在集群中为所有节点都配置合适的主机名,同时确保它们能使用/etc/hosts文件正确解析IP地址。为了保证主机报告了正确的IP地址,可以使用ping命令并确认返回的IP地址。/etc/hosts文件的示例如下所示:
image

我们推荐为集群中的节点配置有意义的主机名,以此反映主机所担当的功能。这种方法也有利于采用脚本生成一份在所有服务器中传递的主机/IP列表。

2.1.4 设置CDH存储库

根据选择的发行版,有多种安装Hadoop的方法。即使是同样的发行版也有各种安装途径。CDH提供了多种辅助模式帮助我们在集群中安装Hadoop包:可以使用Cloudera管理器网络接口来自动发现集群中的节点,安装和预先配置合适的安装包;或者设置CDH存储库,之后手工安装组件。在本书中我们采用手工安装,因为这能帮助我们更好地理解Hadoop中的机制以及组件之间进行交互的区别。我们仍然采用yum包管理工具确保文件的复制位置以及服务的设置,等等。这样我们就能将更多的注意力放在组件的配置上。
首先要做的是新增yum存储库。存储库的选择依赖于读者选择的操作系统,完整的列表请参见http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-Installation-Guide/cdh4ig_topic_4_4.html。本书中的所有示例都采用了最新的版本:64位CentOS 6上的CDH 4.2。在读者阅读本书时可能会有新的CDH发布,因此请读者自行对指令进行调整。要增加存储库,请在服务器上下载该文件,网址为http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/cloudera-cdh4.repoand place it into /etc/yum.repos.d/。
还需要新增一个存储库密钥:
image

在完成该步骤后,可以运行下列命令确认可用的Hadoop包:
image

相关文章
|
2月前
|
存储 弹性计算 安全
带你读《从基础到应用云上安全航行指南》——九大提升ECS实例操作系统安全性的技巧(1)
带你读《从基础到应用云上安全航行指南》——九大提升ECS实例操作系统安全性的技巧(1)
335 1
|
2月前
|
分布式计算 Hadoop Java
Hadoop快速入门——第一章、认识Hadoop与创建伪分布式模式(Hadoop3.1.3版本配置)
Hadoop快速入门——第一章、认识Hadoop与创建伪分布式模式(Hadoop3.1.3版本配置)
65 0
|
2月前
|
存储 弹性计算 安全
带你读《从基础到应用云上安全航行指南》——九大提升ECS实例操作系统安全性的技巧(2)
带你读《从基础到应用云上安全航行指南》——九大提升ECS实例操作系统安全性的技巧(2)
664 1
带你读《从基础到应用云上安全航行指南》——九大提升ECS实例操作系统安全性的技巧(2)
|
7天前
|
分布式计算 负载均衡 Hadoop
Hadoop集群节点添加
Hadoop集群节点添加
|
11天前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03+04】【Hadoop集群资源管理器yarn】(图片来源于网络)(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第5天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
39 9
|
12天前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
【4月更文挑战第4天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
22 4
|
15天前
|
存储 分布式计算 Hadoop
【Hadoop】Hadoop的三种集群模式
【4月更文挑战第9天】【Hadoop】Hadoop的三种集群模式
|
16天前
|
分布式计算 Hadoop Java
centos 部署Hadoop-3.0-高性能集群(一)安装
centos 部署Hadoop-3.0-高性能集群(一)安装
16 0
|
1月前
|
缓存 网络协议 安全
【软件设计师备考 专题 】操作系统的配置
【软件设计师备考 专题 】操作系统的配置
49 1
|
1月前
|
分布式计算 资源调度 Hadoop
Hadoop集群基本测试
Hadoop集群基本测试
26 0

热门文章

最新文章