Hadoop集群完全分布式模式部署

配置网络

1.修改主机名

master:

 
  1. vi /etc/sysconfig/network

  2.  
  3. NETWORKING=yes

  4.  
  5. HOSTNAME=master

slave1

 
  1. vi /etc/sysconfig/network

  2.  
  3. NETWORKING=yes

  4.  
  5. HOSTNAME=slave1

slave2

 
  1. vi /etc/sysconfig/network

  2.  
  3. NETWORKING=yes

  4.  
  5. HOSTNAME=slave2

slave3

 
  1. vi /etc/sysconfig/network

  2.  
  3. NETWORKING=yes

  4.  
  5. HOSTNAME=slave3

2.修改ip地址(这里只示范master)

 
  1. vi /etc/sysconfig/network-scripts/ifcfg-eth0

  2. BOOTPROTO=dhcp

  3. ONBOOT=yes #开机启用本配置

service network restart

3.修改ip地址和主机名的映射关系(这里只示范master)

 
  1. vi /etc/hosts

  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

  3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

  4. 192.168.8.200 master

  5. 192.168.8.201 slave1

  6. 192.168.8.202 slave2

  7. 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)

  1. 创建新用户
[root@localhost ~]# adduser pang

为这个用户初始化密码,linux会判断密码复杂度,不过可以强行忽略:

 
  1. [root@localhost ~]# passwd pang

  2.  
  3. 更改用户 pang的密码

  4.  
  5. 新的 密码:

  6.  
  7. 无效的密码: 密码未通过字典检查 - 过于简单化/系统化

  8.  
  9. 重新输入新的 密码:

  10.  
  11. passwd:所有的身份验证令牌已经成功更新。

    2.授权 

 
  1. [root@localhost ~]# ls -l /etc/sudoers

  2.  
  3. -r--r----- 1 root root 4251 9月 25 15:08 /etc/sudoers

 
  1. sudoers只有只读的权限,如果想要修改的话,需要先添加w权限:

  2.  
 
  1. [root@localhost ~]# chmod -v u+w /etc/sudoers

  2.  
  3. mode of "/etc/sudoers" changed from 0440 (r--r-----) to 0640 (rw-r-----)

 
  1. 然后就可以添加内容了,在下面的一行下追加新增的用户:

  2.  
 
  1. [root@localhost ~]# vim /etc/sudoers

  2.  
  3. ## Allow root to run any commands anywher

  4.  
  5. root ALL=(ALL) ALL

  6.  
  7. pangALL=(ALL) ALL #这个是新增的用户

 
  1. wq保存退出,这时候要记得将写权限收回:

  2.  
 
  1. [root@localhost ~]# chmod -v u-w /etc/sudoers

  2.  
  3. 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登陆时,仍然需要密码。

 
  1. #su pang

  2. #ssh-keygen -t rsa

  3. #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)

 
  1. cd /home/pang/

  2. sudo wget -c https://archive.apache.org/dist/hadoop/common/hadoop-1.2.1/hadoop-1.2.1-bin.tar.gz

  3. 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

 
  1.  
  2. export HADOOP_HOME=/home/pang/hadoop-1.2.1

  3. export PATH=$PATH:$HADOOP_HOME/bin

修改完毕后,执行source /etc/profile 来使其生效

6、集群配置(所有节点相同:以下先操作master服务器修改hadoop配置文件,然后整个复制分发到slave服务器节点就行了

1)创建hadoop临时文件目录:

 

 
  1. cd hadoop-1.2.1

  2. mkdir tmp

2)/conf目录下配置文件core-site.xml

 
  1. <configuration>

  2.  
  3. <property>

  4. <name>fs.default.name</name>

  5. <value>hdfs://master:9000</value>

  6. </property>

  7.  
  8. <property>

  9. <name>hadoop.tmp.dir</name>

  10. <value>/home/pang/hadoop-1.2.1/tmp</value>

  11. </property>

  12.  
  13. </configuration>

fs.default.name是NameNode的URI。hdfs://主机名:端口/
hadoop.tmp.dir :Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。

3) /conf目录下配置文件mapred-site.xml

 
  1. <configuration>

  2.  
  3. <property>

  4. <name>mapred.job.tracker</name>

  5. <value>master:9001</value>

  6. </property>

  7.  
  8. </configuration>

 

mapred.job.tracker是JobTracker的主机(或者IP)和端口。主机:端口。

4) /conf目录下配置文件hdfs-site.xml

 

 
  1. <configuration>

  2. <property>

  3. <name>dfs.replication</name>

  4. <value>3</value>

  5. </property>

  6. </configuration>

5) /conf目录下配置文件masters

master
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值