配置网络
1.修改主机名
master:
-
vi /etc/sysconfig/network
-
NETWORKING=yes
-
HOSTNAME=master
slave1
-
vi /etc/sysconfig/network
-
NETWORKING=yes
-
HOSTNAME=slave1
slave2
-
vi /etc/sysconfig/network
-
NETWORKING=yes
-
HOSTNAME=slave2
slave3
-
vi /etc/sysconfig/network
-
NETWORKING=yes
-
HOSTNAME=slave3
2.修改ip地址(这里只示范master)
-
vi /etc/sysconfig/network-scripts/ifcfg-eth0
-
BOOTPROTO=dhcp
-
ONBOOT=yes #开机启用本配置
service network restart
3.修改ip地址和主机名的映射关系(这里只示范master)
-
vi /etc/hosts
-
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
-
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
-
192.168.8.200 master
-
192.168.8.201 slave1
-
192.168.8.202 slave2
-
192.168.8.203 slave3
centos6.5关闭防火墙和SELinux(这里只示范master)
关闭命令: service iptables stop
永久关闭防火墙:chkconfig iptables off
两个命令同时运行,运行完成后查看防火墙关闭状态
service iptables status
使用getenforce命令查看是否关闭
修改vi /etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled,执行该命令后重启机器生效
查看:
4 创建用户(用来操作hadoop)(这里只示范master)
- 创建新用户
[root@localhost ~]# adduser pang
为这个用户初始化密码,linux会判断密码复杂度,不过可以强行忽略:
-
[root@localhost ~]# passwd pang
-
更改用户 pang的密码
-
新的 密码:
-
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
-
重新输入新的 密码:
-
passwd:所有的身份验证令牌已经成功更新。
2.授权
-
[root@localhost ~]# ls -l /etc/sudoers
-
-r--r----- 1 root root 4251 9月 25 15:08 /etc/sudoers
-
sudoers只有只读的权限,如果想要修改的话,需要先添加w权限:
-
[root@localhost ~]# chmod -v u+w /etc/sudoers
-
mode of "/etc/sudoers" changed from 0440 (r--r-----) to 0640 (rw-r-----)
-
然后就可以添加内容了,在下面的一行下追加新增的用户:
-
[root@localhost ~]# vim /etc/sudoers
-
## Allow root to run any commands anywher
-
root ALL=(ALL) ALL
-
pangALL=(ALL) ALL #这个是新增的用户
-
wq保存退出,这时候要记得将写权限收回:
-
[root@localhost ~]# chmod -v u-w /etc/sudoers
-
mode of "/etc/sudoers" changed from 0640 (rw-r-----) to 0440 (r--r-----)
这时候使用新用户登录,使用sudo:
第一次使用会提示你,你已经化身超人,身负责任。而且需要输入密码才可以下一步。如果不想需要输入密码怎么办,将最后一个ALL修改成NOPASSWD: ALL
。
4、SSH免密登陆
在Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个datanode上的各种守护进程的,这就须要在节点之间执行指令的时候是不须要输入密码的形式,故我们须要配置SSH运用无密码公钥认证的形式。以本文中的四台机器为例,现在Master是主节点,他须要连接Slave1、Slave2和Slave3。须要确定每台机器上都安装了ssh,并且datanode机器上sshd服务已经启动。
切换到hadoop用户( 保证用户hadoop可以无需密码登录,因为我们后面安装的hadoop属主是hadoop用户。)需要使得Master到Slave1,Slave2,Slave3免密登陆,以及Slave1,Slave2,Slave3到Master的免密登陆,以及Master,Slave1,Slave2,Slave3到自身回环口的免密登陆
在每台主机都生成密钥:
注意是在cmj用户之下,而不是root,因为我们最终是要使用cmj用户来使用hadoop,而你在cmj用户下配置免密登陆后,切换至root用户或者其他用户的使用ssh登陆时,仍然需要密码。
-
#su pang
-
#ssh-keygen -t rsa
-
#cat ~/.ssh/id_rsa.pub
这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录下。
1) 操作master服务器生成authorized_keys文件,并把公钥写入:cat id_rsa.pub >> authorized_keys。
然后把master服务器authorized_keys文件复制到slave1服务器中:
scp authorized_keys pang@192.168.8.201:/home/pang/.ssh
2) 操作slave1服务器把公钥写入复制过来的authorized_keys文件中:cat id_rsa.pub >> authorized_keys。
然后把slave1服务器authorized_keys文件复制到slave2服务器中:
scp authorized_keys pang@192.168.8.202:/home/pang/.ssh
3) 操作slave2服务器把公钥写入复制过来的authorized_keys文件中:cat id_rsa.pub >> authorized_keys。
然后把slave2服务器authorized_keys文件复制到slave3服务器中:
scp authorized_keys pang@192.168.8.203:/home/pang/.ssh
4) 操作slave3服务器把公钥写入复制过来的authorized_keys文件中:cat id_rsa.pub >> authorized_keys。
然后把slave3服务器authorized_keys文件复制到master、slave1、slave2三台服务器中:
scp authorized_keys pang@192.168.8.200:/home/pang/.ssh
scp authorized_keys pang@192.168.8.201:/home/pang/.ssh
scp authorized_keys pang@192.168.8.202:/home/pang/.ssh
5、安装hadoop
我的安装目录为:/home/pang/ ,下载安装包后,直接解压安装即可:(这里只示范master)
-
cd /home/pang/
-
sudo wget -c https://archive.apache.org/dist/hadoop/common/hadoop-1.2.1/hadoop-1.2.1-bin.tar.gz
-
tar -xzvf hadoop-1.2.1-bin.tar.gz
为了方便,使用hadoop命令或者start-all.sh等命令,修改master上/etc/profile 新增以下内容:如果没权限就切换root用户给master修改/etc/profile的权限chmod +x /etc ,chmod 777 /etc/profile
-
export HADOOP_HOME=/home/pang/hadoop-1.2.1
-
export PATH=$PATH:$HADOOP_HOME/bin
修改完毕后,执行source /etc/profile
来使其生效
6、集群配置(所有节点相同:以下先操作master服务器修改hadoop配置文件,然后整个复制分发到slave服务器节点就行了)
1)创建hadoop临时文件目录:
-
cd hadoop-1.2.1
-
mkdir tmp
2)/conf目录下配置文件core-site.xml
-
<configuration>
-
<property>
-
<name>fs.default.name</name>
-
<value>hdfs://master:9000</value>
-
</property>
-
<property>
-
<name>hadoop.tmp.dir</name>
-
<value>/home/pang/hadoop-1.2.1/tmp</value>
-
</property>
-
</configuration>
fs.default.name
是NameNode的URI。hdfs://主机名:端口/hadoop.tmp.dir
:Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。
3) /conf目录下配置文件mapred-site.xml
-
<configuration>
-
<property>
-
<name>mapred.job.tracker</name>
-
<value>master:9001</value>
-
</property>
-
</configuration>
mapred.job.tracker
是JobTracker的主机(或者IP)和端口。主机:端口。
4) /conf目录下配置文件hdfs-site.xml
-
<configuration>
-
<property>
-
<name>dfs.replication</name>
-
<value>3</value>
-
</property>
-
</configuration>
5) /conf目录下配置文件masters
master