1.3 为Hadoop集群选择操作系统

为Hadoop集群选择操作系统是一项相对简单的任务。Hadoop核心以及生态系统组件都是由Java编写的,当然其中也有一些例外。虽然Java代码本身就是跨平台的,但是目前Hadoop只能运行在类似Linux这样的系统上。理由是许多设计决定都是以Linux进行考虑的,因此类似于“开始/停止”脚本以及权限模型(permissions model)这样核心Hadoop组件都依赖于Linux环境。
Hadoop在Linux平台上的实现方式都是相同的并且在不同的版本上都有良好的表现:Red Hat、CentOS、Debian、Ubuntu、Suse以及Fedora。在所有这些版本上运行Hadoop都没有特别的要求。如果所有的依赖项解析以及命令解释器支持脚本都运行良好,那么Hadoop也能够成功运行在其他类似POSIX(比如Solaris或者BSD)的操作系统上。目前大部分Hadoop产品的安装都运行在Linux上,我们之后的讲解也会将重点放在该操作系统上。本书中的示例都运行在CentOS上,和Red Hat一样,它也是应用最为广泛的实际应用系统之一。
Apache Hadoop提供了源文件以及用于稳定发行版的RPM以及DEB包。目前它是1.0版本的一个分支。我们可以根据源代码构建Hadoop,但是对于大部分用户我们并不推荐这么做,因为这要求构架大型Java项目的经验以及精细的依赖项解析。Cloudera以及Hortonworks发行版为用户提供了方便的途径在服务器上安装存储库以及所需要的包。
Hadoop并没有严格要求在所有节点上运行相同的操作系统,但是根据经验来说保持节点配置的一致性更有利于我们进行管理。