共计 8404 个字符,预计需要花费 22 分钟才能阅读完成。
网上搭建 Hadoop + Zookeeper + HBase 平台的文章可以说是铺天盖地的,非常的多,在这里就把自己配置这个平台时候留下的一个非常基础的文档发出来,供大家指点学习,有问题欢迎大家提出。
先从最基本的配置 Hadoop 平台开始。
l 首先配置主机名称和 ip 地址、还有主机名与 ip 地址对应的 hosts 文件。
最终配置成的节点的 ip 地址分布如下:
机器名称 |
IP 地址 |
Master.Hadoop |
192.168.117.122 |
Slave1.Hadoop |
192.168.117.121 |
Slave2.Hadoop |
192.168.117.120 |
1. 查看当前的主机名称:
2. 修改当前主机的名称:
之前有文档时用命令:hostname。
发现 reboot 之后的效果如图:
原来用 hostname 修改主机名只是适用于本次操作。如果 reboot 之后主机名会恢复成 /etc/sysyconfig/network 中的 HOSTNAME 的值。
修改主机名继续。修改主机名需要切换到 root 用户,普通用户是无法修改 /etc 文件夹里面的文件的。修改之后不能保存,提示为只读。
切换用户。重新修改 HOSTNAME 值,然后 reboot 主机就可以永久的修改主机名了。
3. 修改当前主机的 ip 地址
Ip 地址信息存储在 /etc/sysconfig/network-scripts 文件夹下,需要对 ifcfg-eth0 文件进行配置。如图所示:
修改完毕之后可以用 ifconfig 命令查看。
此处不再切图,查看一下就 ok。
4. 配置 hosts 文件
/etc/hosts 这个文件时用来配置主机将要用到的 DNS 服务器信息的。用户连接集群内的主机名的时候,查看该主机名对应的 IP 地址。
在 /etc/hosts 中添加下列的信息,并且其他的两个主机也要这样配置。
192.168.117.122
Master.Hadoop
192.168.117.121
Slave1.Hadoop
192.168.117.120
Slave2.Hadoop
修改 master 节点的情况如下:
测试结果:
说明配置成功。
5. 把上面的 1 - 4 的配置以同样的方式配置到 Slave1.Hadoop 和 Slave2.Hadoop 两个节点中去
l 所需要的软件
1. JDK 软件
JDK 版本:jdk-7u45-linux-i586.tar.gz
下载地址:http://www.Oracle.com/technetwork/Java/javase/downloads/jdk7-downloads-1880260.html
相关阅读:
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm
2. Hadoop 软件
Hadoop 版本:hadoop-2.2.0.tar.gz
下载地址:http://www.apache.org/dist/hadoop/core/hadoop-2.2.0/
l 对于获取所需要的软件,可以通过两种途径,一种是通过 wget 直接在 linux 节点上直接下载,或者配置 vsftpd 服务,通过该服务传递文件。当然也可以安装 winscp 直接传递文件。在这里简单的说一下配置 vsftpd 服务的过程,下面再说 wget 直接下载文件。
l VSFTP 的安装和配置
1. 首先查看主机是否已经安装了 VSFTP
没有反应,说明没有 VSFTP 服务。
2. 安装 VSFTP 服务
直到最后一行显示如下:
证明安装成功。
为安装文件创建 log
测试安装后的效果:
服务都为关闭,通过下面的语句来开启:
这样就开启了 vsftp 服务。
但是现在还不可用,需要进一步配置服务。
3. 配置 vsftpd 服务
参考虾皮上的配置。
anonymous_enable=YES–> anonymous_enable=NO // 不允许匿名用户访问,默认是允许
xferlog_file=/var/log/vsftpd.log# 设定 vsftpd 的服务日志保存路径。注意,该文件默认不存在。必须要手动 touch 出来
#idle_session_timeout=600–> idle_session_timeout=600 // 会话超时,客户端连接到 ftp 但未操作,默认被注释掉,可根据个人情况修改
#async_abor_enable=YES–> async_abor_enable=YES // 支持异步传输功能,默认是注释掉的,去掉注释
#ascii_upload_enable=YES–> ascii_upload_enable=YES // 支持 ASCII 模式的下载功能,默认是注释掉的,去掉注释
#ascii_download_enable=YES–> ascii_download_enable=YES // 支持 ASCII 模式的上传功能,默认是注释掉的,去掉注释
#ftpd_banner=Welcometo blah FTP service //FTP 的登录欢迎语,本身是被注释掉的,去不去都行
#chroot_local_user=YES–> chroot_local_user=YES
// 禁止本地用户登出自己的 FTP 主目录,本身被注释掉,去掉注释
4. iptables 防火墙
因为在 hadoop 运行的时候,需要关闭 iptables 防火墙,所以在有些网站里面给出如何在 iptables 中添加 vsftpd 服务。其实也不麻烦,也就是在 iptables 里面添加 20,21 端口号,通过在 /etc/sysconfig/iptables 中添加下列两行:
-A INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 20 -j ACCEPT
重启服务,vsftpd 服务就不会再受 iptables 的影响了。
当然也可以这样,直接用命令:service iptables stop 关闭服务,
并且设置开机不自动启动,通过命令:chkconfig iptables off
其实这个是早晚要关的。如果单纯的配置 vsftpd 的服务,就按上面的方法配置。再加上下面的第 5,6 步 vsftpd 服务就配置完毕了。
5. 设置 Selinux
通过命令查看当前 selinux 的设置的状态:
getsebool -a | grep ftp
注意两个参数:allow_ftp_full_access à off ftp_home_dir àoff
修改两个位 on 通过下面的命令:
setsebool-P ftp_home_dir 1
setsebool-P allow_ftpd_full_access 1
6. 重启 vsftpd 服务,如果没有关闭 iptables,也可以重启一下 iptables 服务,这样 vsftpd 服务就算配置好了。
网上搭建 Hadoop + Zookeeper + HBase 平台的文章可以说是铺天盖地的,非常的多,在这里就把自己配置这个平台时候留下的一个非常基础的文档发出来,供大家指点学习,有问题欢迎大家提出。
先从最基本的配置 Hadoop 平台开始。
l 首先配置主机名称和 ip 地址、还有主机名与 ip 地址对应的 hosts 文件。
最终配置成的节点的 ip 地址分布如下:
机器名称 |
IP 地址 |
Master.Hadoop |
192.168.117.122 |
Slave1.Hadoop |
192.168.117.121 |
Slave2.Hadoop |
192.168.117.120 |
1. 查看当前的主机名称:
2. 修改当前主机的名称:
之前有文档时用命令:hostname。
发现 reboot 之后的效果如图:
原来用 hostname 修改主机名只是适用于本次操作。如果 reboot 之后主机名会恢复成 /etc/sysyconfig/network 中的 HOSTNAME 的值。
修改主机名继续。修改主机名需要切换到 root 用户,普通用户是无法修改 /etc 文件夹里面的文件的。修改之后不能保存,提示为只读。
切换用户。重新修改 HOSTNAME 值,然后 reboot 主机就可以永久的修改主机名了。
3. 修改当前主机的 ip 地址
Ip 地址信息存储在 /etc/sysconfig/network-scripts 文件夹下,需要对 ifcfg-eth0 文件进行配置。如图所示:
修改完毕之后可以用 ifconfig 命令查看。
此处不再切图,查看一下就 ok。
4. 配置 hosts 文件
/etc/hosts 这个文件时用来配置主机将要用到的 DNS 服务器信息的。用户连接集群内的主机名的时候,查看该主机名对应的 IP 地址。
在 /etc/hosts 中添加下列的信息,并且其他的两个主机也要这样配置。
192.168.117.122
Master.Hadoop
192.168.117.121
Slave1.Hadoop
192.168.117.120
Slave2.Hadoop
修改 master 节点的情况如下:
测试结果:
说明配置成功。
5. 把上面的 1 - 4 的配置以同样的方式配置到 Slave1.Hadoop 和 Slave2.Hadoop 两个节点中去
l 所需要的软件
1. JDK 软件
JDK 版本:jdk-7u45-linux-i586.tar.gz
下载地址:http://www.Oracle.com/technetwork/Java/javase/downloads/jdk7-downloads-1880260.html
相关阅读:
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm
在这个第二部分,我们配置 ssh 无密码验证登陆还有 Java 环境的配置,都是特别重要的步骤。
l SSH 无密码验证配置
1. 确认已经安装了 SSH 和 rsync
2. 在 Master 节点上生成密钥文件
执行完了第一条命令之后会提示时候按照默认的目录存放 key,点击 Enter 之后效果如上图。
查看 key 文件是否已经生成:
3. 把 id_rsa.pub 追加授权的 key 里面。此时生成一个新的文件 authorized_keys:
4. 修改 authorized_keys 文件的权限,为了安全取消其执行的权限,。
5. 配置 SSH(需要使用 root 权限)
修改 SSH 配置文件“/etc/ssh/sshd_config”的内容。
然后修改里面的三个选项,把前面的注释符号“#”去掉即可,如下图:
然后重启 SSH 服务,退出 root 登陆,使用普通用户验证是否成功。
退出 root 登陆,可以从下图中可以得出无密码登陆本机已经设置完毕。
6. 把公钥复制到所有的 Slave 机器上。
7. 登陆 Slave 机器完成剩余的 SSH 配置。在 Slave1 上新建.ssh 文件夹,并修改为700(只有属主有读、写、执行权限)
注:
将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport
chown -R lamport:users*
-rw——- (600) — 只有属主有读写权限。
-rw-r–r– (644) — 只有属主有读写权限;而属组用户和其他用户只有读权限。
-rwx—— (700) — 只有属主有读、写、执行权限。
-rwxr-xr-x (755) — 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx–x–x (711) — 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) — 所有用户都有文件读、写权限。这种做法不可取。
-rwxrwxrwx (777) — 所有用户都有读、写、执行权限。更不可取的做法。
8. 追加授权文件到 authorized_keys,追加完了之后记得删掉 id_rsa.pub 文件,因为你在配置其他节点的时候还会向本节点发送该文件,会发生冲突的。修改 authorized_keys 的权限为600.(非常重要)
9. 用 root 用户修改 /etc/ssh/sshd_config 修改完并且重启 SSH 服务
10. 最后验证 Master 使用 SSH 无密码登陆 Slave1
照上面的方法修改 Slave2 的时候,
注:就因为没有修改.ssh 为 700 和 authorized_keys 为 600 造成 SSH 无密码登陆 Slave2 失败,所以这一步非常重要。
11. 用同样的方法,来设置 Slave1、Slave2 无密码登陆其他的机器,
12. 遇到的一个问题:
这个问题很是苦恼,该修改的权限也都修改了,同样的权限,在 Slave2 中就可以,但是在 slave1 中就是生成不了。
最终的解决方案是:http://www.linuxidc.com/Linux/2013-12/94495p4.htm
卸载掉 selinux,据说这个是 os 中 selinux 中的一个 bug。
然后接着生成密钥对就成功了。
l 配置 java 环境,配置 jdk
1. 首先第一步先下载 rpm 包需要用下面的命令才可以。网上也有很多介绍的,原因是由于 Oracle.com 网站的问题。
wget–no-cookies –no-check-certificate –header “Cookie:gpw_e24=http%3A%2F%2Fwww.oracle.com” http://download.oracle.com/otn-pub/java/jdk/7u45-b18/jdk-7u45-linux-i586.rpm
2. 执行:rpm -ivh /usr/jdk-7u45-linux-i586.rpm
3. 配置环境变量:
进入 root 登陆,打开 /etc/profile 添加 java 变量。
参考网址:http://www.linuxidc.com/Linux/2012-10/71937.htm
4. 输入:java –version 来检测结果,发现默认的 jdk 是 openJDK 是默认的 java 环境。
5. 然后要重新的 install 一下 java 和 javac。修改 jdk1.7.0_45 作为最新的 java 环境。
在配置 Slave2 的时候应该注意,其 os 为 CentOS6.2_x64。所以配置其 jdk 的时候必须安装 64 位的 jdk。其他的配置和之前的一样。
Fixing “open id_rsa failed: Permission denied.” in RHEL6
Super quick answer: sudo yum remove selinux*
Running Red Hat Enterprise Linux Server release 6.x? Cannot generate SSH public/private keys with ssh-keygen? Me too!
user@ server:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Could not create directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
open /home/user/.ssh/id_rsa failed: Permission denied.
Saving the key failed: /home/user/.ssh/id_rsa.
I searched the intertubes, and all thread responses say to check the file permissions or my $HOME environment variable. They were fine. The only odd result in the list was: http://rhn.redhat.com/errata/RHBA-2010-0013.html which includes a paragraph:
* SELinux denials caused by the ssh-keygen’s
“system_u:object_r:initrc_exec_t” context caused ssh-keygen to fail to
generate public/private RSA key pairs. These updated SELinux policy rules
allow ssh-keygen to successfully generate public/private RSA key pairs as
expected. (BZ#538453)
The problem should have been repaired in the previous version of Red Hat according to the advisory. There was no reason SELinux should be installed on the system, but considering all the other extraneous software I’d already removed, I figured it was.
user@ server:~$ sudo yum remove selinux*
Loaded plugins: product-id, rhnplugin, security, subscription-manager
Updating certificate-based repositories.
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package selinux-policy.noarch 0:3.7.19-126.el6_2.4 will be erased
---> Package selinux-policy-targeted.noarch 0:3.7.19-126.el6_2.4 will be erased
--> Finished Dependency Resolution
Yes, it was. Once I removed SELinux, ssh-keygen ran successfully. So frustrating…
user@ server:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
Note: This was causing a fprint failed error in gitolite’s gl-setup also.