完全分布式搭建

前边已经修改完ip了,那么现在就开始搭建完全分布式了

1、修改主机名

hostname(查看主机名)

sudo nano /etc/hostname(修改主机名)

2、修改hosts文件

sudo nano /etc/hosts

添加格式为 IP  + 主机名

之后重启所有虚拟机,然后hostname查看主机名,发现主机名已经改变。

3、克隆虚拟机

 

克隆3台client(centos7)

步骤:右键centos-7-->管理->克隆-> ... -> 完整克隆

 

4、启动客户端并且修改hostname和ip地址

编辑sudo nano /etc/sysconfig/network-scripts/ifcfg-eno33文件(只修改ip就行)

 

编辑sudo nano /etc/hostname

 

编辑sudo nano /etc/resolv.conf

 

nameserver 192.168.17.2(网关地址)

 

重启网络服务

  $>sudo service network restart

这里简要介绍一下namonode和DataNode的作用:

 

 NameNode只负责元数据信息,没有数据流,他只负责维护名字空间,任何对文件系统名字空间的改动都记录在NameNode。系统的文件组织结构和linux非常类似。你可以创建,删除,移动,重命名文件或者目录。

DataNode负责为文件系统的客户提供读/写操作服务。DataNode同时还为NameNode提供block创建,删除,备份机制。

5、ssh免密登录(在你所在用户的根目录下)

 

执行:ssh-keygen -t rsa(一直按回车)
[wang@wang201 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/wang/.ssh/id_rsa): 
Created directory '/home/wang/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/wang/.ssh/id_rsa.
Your public key has been saved in /home/wang/.ssh/id_rsa.pub.
The key fingerprint is:
39:f2:fc:70:ef:e9:bd:05:40:6e:64:b0:99:56:6e:01 usera@serverA
The key's randomart image is:
+--[ RSA 2048]----+
|          Eo*    |
|           @ .   |
|          = *    |
|         o o .   |
|      . S     .  |
|       + .     . |
|        + .     .|
|         + . o . |
|          .o= o. |
+-----------------+

此时会在/home/wang/.ssh目录下生成密钥对

[wang@wang201~]$ ls -la .ssh
总用量 16
drwx------  2 wang wang 4096  8月 24 09:22 .
drwxrwx--- 12 wang wang 4096  8月 24 09:22 ..
-rw-------  1 wang wang 1675  8月 24 09:22 id_rsa
-rw-r--r--  1 wang wang 399  8月 24 09:22 id_rsa.pub

然后将公钥id_rsa.pub上传到wang202服务器的,并以wang用户登录

[wang@wang201~]$ ssh-copy-id wang@wang202
The authenticity of host '10.124.84.20 (10.124.84.20)' can't be established.
RSA key fingerprint is f0:1c:05:40:d3:71:31:61:b6:ad:7c:c2:f0:85:3c:cf.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.124.84.20' (RSA) to the list of known hosts.
wang@wang202's password: 
Now try logging into the machine, with "ssh 'userb@10.124.84.20'", and check in:
 
  .ssh/authorized_keys
 
to make sure we haven't added extra keys that you weren't expecting.

这个时候wang的公钥文件内容会追加写入到wang的 .ssh/authorized_keys 文件中,这样做完之后我们就可以免密码登录了

6、验证一下ssh操作其他机器

使用ssh wang202 就能登录成功了

如果登录不成功或者还需要密码验证,那就把/home/wang/.ssh 下的文件删除,重新做一次ssh的免密。

一般权限修改成700(只要没有w权限就可以了)  里面文件建议644或者600。

7、安装hadoop

a.在根目录新建文件夹 :sudo mkdir /soft

b.修改soft权限:chown -R wang:wang /soft/

c.上传hadoop安装包到给目录下(我用的是hadoop-2.7.3版本的,版本可自选)

d.解压:tar -zxvf hadoop-2.7.3.tar.gz

e.解压后名字太长可以改个名字: mv   hadoop-2.7.3   hadoop

f.解压后在hadoop里创建:mkdir -p /data/tmp(用来保存fsimage和edits文件,非常重要)

g.配置 hadoop/etc/hadoop/下的文件:

core-site.xml:

     <property>
        <name>fs.defaultFS</name>
        <value>hdfs://wang201/</value>
    </property>
    <property>
         <name>hadoop.tmp.dir</name>
        <value>/soft/hadoop-2.7.3/data/tmp</value>
    </property>
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>wang</value>
    </property>        

hdfs-site.xml:

    <property>
        <name>dfs.replication</name>
        <value>3</value>
      </property>
      <property>
            <name>dfs.permissions.enabled</name>
            <value>false</value>
        </property>
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>wang203:50090</value>
        </property>

yarn-site.xml:

    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>wang201</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>

    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>106800</value>
    </property>

mapred-site.xml:

   <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

     <property>
        <name>mapreduce.jobhistory.address</name>
        <value>wang201:10020</value>
    </property>

        <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>wang201:19888</value>
    </property>

 slaves:

wang202
wang203
wang204

 hadoop-env.sh:

export JAVA_HOME=/soft/jdk

 

h.分发配置

              $>cd /soft/hadoop/etc/

              $>scp -r hadoop-2.7.3  wang@wang202:/soft/

              $>scp -r hadoop-2.7.3  wang@wang203:/soft/

              $>scp -r hadoop-2.7.3  wang@wang204:/soft/

格式化文件系统

hadoop namenode -format

显示这样即表示成功了

启动hadoop进程

              $>start-all.sh

然后用jps就能看到有哪些进程了