logo资料库

hadoop分布式计算平台搭建.pdf

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
RHEL 5.2 下的 Hadoop 分布式集群 环境搭建文档 编辑:Nigel_Zeng 日期:2011-2-26 本文档修订历史: 版本号 修订人 修订说明 1.0.0-20110226 Nigel_Zeng (http://blog.sina.com.cn/nigelzeng) 新建
一、 前言 偶然间同学跟我谈到 hadoop 分布式集群,恰好同学也 需要自己去搭建 hadoop 平台,因此我想自己何不也搭建个 hadoop 平台玩玩呢。故有了这篇搭建记录。 二、 Hadoop 简介 Hadoop 是 Apache 软件基金会所研发的开放源码并行运 算编程工具和分布式文件系统,与 MapReduce 和 Google 档 案系统的概念类似。 Hadoop is a top-level Apache project being built and used by a global community of contributors,using the Java programming language. Yahoo! has been the largest contributor to the project, and uses Hadoop extensively across its businesses. Hadoop was created by Doug Cutting,who named it after his son's stuffed elephant. It was originally developed to support distribution for the Nutch search engine project.
三、 环境搭建 1、安装前的准备 ·VMware Workstation ACE 6.02 ·3 台 RHEL5.2 虚拟机 ·hadoop-0.20.2.tar.gz ·jdk-6u17-linux-i586.bin 2、安装 JDK JDK 安装较为简单,不赘述。 Tip: 使用 VMware Workstation 安装了 3 个 RHEL 5.2 系统。 装好一个 RHEL,并且安装好 JDK,再利用 VMware Workstation 的克隆功能完成另外两个的安装。 3、 更改主机名、IP  IP 设置: hadoop1:192.168.0.100 ( NameNode ) hadoop2:192.168.0.101 ( DataNode ) hadoop3:192.168.0.102 ( DataNode ) # vi /etc/sysconfig/network-script/ifcfg-eth0 修改此文件为:
# service network restart 重启网络服务 Tip: 在做 hadoop1、hadoop2 的 IP 设置的时候也许会出现这 个问题,原因是克隆虚拟机的时候 MAC 地址还是一样的。 在这里点击“探测”修改 MAC 地址:  更改主机名 修改/etc/sysconfig/network 里面的 hostname,这里改成
你想改的主机名。然后再修改/ete/hosts 文件,改成如下设 置: 当然你也可以使用 DNS 来配置主机名与 IP 的映射,因为这 里只是个局域网环境,所有就用修改 hosts 的方法来完成映 射功能。 Tip: 1、关于这个 hosts 文件的配置,如果该台机器作 Namenode 用,则需要在 hosts 文件中加上集群中所有机器的 IP 地址及其对应的主机名;如果该台机器作 Datanode 用, 则只需要在 hosts 文件中加上本机 IP 地址和 Namenode 机器 的 IP 地址。 当然你也可以像我一样,三个 hosts 文件都一样。 2、对于 Hadoop 来说,在 HDFS 看来,节点分为 Namenode 和 Datanode,其中 Namenode 只有一个,Datanode 可以是很 多 ; 在 MapReduce 看 来 , 节 点 又 分 为 Jobtracker 和 Tasktracker,其中 Jobtracker 只有一个,Tasktracker 可 以是很多。我是将 namenode 和 jobtracker 部署在 hadoop1 上,hadoop2, hadoop3 作为 datanode 和 tasktracker。当
然 你 也 可 以 将 namenode , datanode , jobtracker , tasktracker 全部部署在一台机器上。  SSH设置 ·工作原理 在 Hadoop 启动以后,Namenode 是通过 SSH(Secure Shell) 来启动和停止各个节点上的各种守护进程的,这就需要在节 点之间执行指令的时候是不需要输入密码的方式,故我们需 要配置 SSH 使用无密码公钥认证的方式。 首先要保证每台机器上都装了 SSH 服务器,且都正常启 动。实际中我们用的都是 OpenSSH,这是 SSH 协议的一个免 费开源实现。现在的 linux 发行版一般都默认安装了 SSH 的, 开机的时候你可以观察下是否有名字为 sshd 的守护程序启 动,如果没有,则需要安装 OpenSSH 软件。 以本文中的 3 台机器为例,现在 hadoop0 是主节点,它 需要主动发起 SSH 连接到 hadoop1,对于 SSH 服务来说, hadoop0 就是 SSH 客户端,而 hadoop1, hadoop2 则是 SSH 服 务端,因此在 hadoop1,hadoop2 上需要确定 sshd 服务已经 启动。简单的说,在 hadoop0 上需要生成一个密钥对,即一 个私钥,一个公钥。将公钥拷贝到 hadoop1 上,这样,比如 当 hadoop0 向 hadoop1 发起 ssh 连接的时候,hadoop1 上就 会生成一个随机数并用 hadoop0 的公钥对这个随机数进行加
密,并发送给 hadoop0,hadoop0 收到这个加密的数以后用 私钥进行解密,并将解密后的数发送回 hadoop1,hadoop1 确认解密的数无误后就允许 hadoop0 进行连接了。这就完成 了一次公钥认证过程。 ·配置 SSH 过程 需 要 关 闭 SELinux , 关 闭 SELinux 的 方 法 : 修 改 /etc/selinux/config 文件中的 SELINUX="" 为 disabled , 然后重启。如果不想重启系统,使用命令 setenforce 0 注:setenforce 1 设置 SELinux 成为 enforcing 模式 setenforce 0 设置 SELinux 成为 permissive 模式 在 lilo 或者 grub 的启动参数中增加:selinux=0,也可以关闭 selinux 以下是配置 SSH 的无密码公钥认证的过程。对于本文中 的 3 台机器,首先在 hadoop1 上生成密钥对,如代码清单 1 所示: [root@hadoop0 ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: a8:97:55:d3:95:d6:fe:f5:08:ca:4c:6e:24:62:b4:22 root@hadoop0 命令最后的 rsa 只是个代号,你可以取你自己喜欢的名 字。这个命令将为 hadoop0 上的当前用户 root 生成其密 钥对,密钥对的保存路径使用缺省的 /root/.ssh/id_rsa,
要求输入 passphrase 的时候,直接回车。这样生成的证书 以 及 公 钥 将 存 储 在 /root/.ssh 目 录 , 形 成 两 个 文 件 id_rsa,id_rsa.pub。 然后将 id_rsa.pub 文件的内容复制到每一台机器(包括 hadoop0)的/root/.ssh/authorized_keys 文件的尾部。 若机器上不存在 这个 /root/.ssh/authorized_keys 文 件,可以自行创建一个。请注意 id_rsa.pub 文件的内容是 长长的一行,复制时需注意,不要遗漏字符或混入了多余换 行符。 接下来可以做一下 SSH 连接测试,从 hadoop0 分别向 hadoop0, hadoop1, hadoop2,发起 SSH 连接请求,确保不 需要输入密码就能 SSH 连接成功。注意第一次 SSH 连接时 会出现如下提示信息: The authenticity of host [homer06] can't be established. The key fingerprint is: 74:32:91:f2:9c:dc:2e:80:48:73:d4:53:ab:e4:d3:1a Are you sure you want to continue connecting (yes/no)? 请输入 yes, 这样 OpenSSH 会把连接过来的这台主机 的信息自动加到 /root/.ssh/know_hosts 文件中去,第二 次再连接时,就不会有这样的提示信息了。 然后你会发现不需要输入密码就可以建立 ssh 连接了, 恭喜你,配置成功了,不过,别忘了测试本机 ssh hadoop1。 Tip:
分享到:
收藏