Hadoop分布式环境搭建

网络环境

CentOS网络策略

虚拟机网络设置为NAT模式

ip user/password(hadoop) hostname user/password(root)
192.168.182.15 hadoop/hadoop master root/root123
192.168.182.16 hadoop/hadoop slave1 root/root123
192.168.182.17 hadoop/hadoop slave2 root/root123

主机策略

VMware Network Adapter VMnet8设置

VMware Network Adapter VMnet8设置

虚拟机虚拟网络编辑器设置

这个里面需要注意的是要讲虚拟机里面的默认网关设置成虚拟网络编辑器里面的网关,也就是主机VMnet8的网络适配器的默认网关,192.168.182.2,同时将DNS设置成114.114.114.114

联通各个节点

host相关设置

切换root权限后编辑/etc/hosts和/etc/hostname

hostsname修改后需要重启网络或者重启才能生效

SSH免密码登陆

生成密钥对,写入授权文件并赋值权限

编辑/etc/ssh/sshd_config

打通虚拟机之间的SSH免密码登陆,在master节点上把id_rsa.pub文件通过scp传到slave1的hadoop用户文件夹下面

在slave1节点上面查看是否传输过来,并将文件加入授权文件中,然后重启ssh

在master节点上面检查

在传输文件的时候如果slave1节点没有.ssh文件夹,创建一个.ssh文件夹,并赋予700的管理权限,然后将公钥追加到授权文件中,并赋予600的权限

软件环境

JDK

下载tar.gz格式的JDK

解压文件

解压到当前文件夹

tar -zxvf jdk-8u144-linux-x64.tar.gz

剪切文件夹到/usr目录下面

在/etc/profile最后添加

使文件生效并测试

Hadoop

文件准备

选择hadoop版本:
    hadoop-2.7.3

解压文件

tar zxvf hadoop-2.2.0_x64.tar.gz

解压后

重命名文件夹

sudo mv hadooop-2.7.3 hadoop

剪切到usr下面

这个地方做了一个小测试
sudo mv hadooop-2.7.3 hadoop
后面是文件夹名的话会直接把文件夹改名
sudo mv hadooop-2.7.3 /usr
后面是路径的话会把文件夹剪切到路径下面去
sudo mv hadooop-2.7.3/*  hadoop
后面是文件夹名加上/*的话会文件夹下文的文件全部剪切到另一个文件夹下面去

在用户目录下面创建目录
~/tmp
~/dfs/name
~/dfs/data

注意用户和用户组

hadoop配置

这里总共有7个文件需要修改

  1. /usr/hadoop/etc/hadoop/hadoop-env.sh
  2. /usr/hadoop/etc/hadoop/yarn-env.sh
  3. /usr/hadoop/etc/hadoop/slaves
  4. /usr/hadoop/etc/hadoop/core-site.xml
  5. /usr/hadoop/etc/hadoop/hdfs-site.xml
  6. /usr/hadoop/etc/hadoop/mapred-site.xml
  7. /usr/hadoop/etc/hadoop/yarn-site.xml

配置文件中节点不要有空格

  • hadoop-env.sh

  • /usr/hadoop/etc/hadoop/yarn-env.sh

  • /usr/hadoop/etc/hadoop/slaves

  • /usr/hadoop/etc/hadoop/core-site.xml

这里用到了之前创建的文件夹 ~/tmp (/home/hadoop/tmp)

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</value>
    </property>

    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>

    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>

    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
        <description>hadoop用户可以代理任意机器上的用户</description>
    </property>

    <property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
        <description>hadoop用户代理任何组下的用户</description>
    </property>
</configuration>
  • /usr/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/dfs/name</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/dfs/data</value>
    </property>

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

    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
</configuration>

这里用到了之前创建的文件夹~/dfs (/home/hadoop/dfs)
~/dfs/name (/home/hadoop/dfs/name)
~/dfs/data (/home/hadoop/dfs/data)

  • /usr/hadoop/etc/hadoop/mapred-site.xml

先把模板文件拷贝一份并重命名

cp mapred-site.xml.template mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

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

    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>
  • /usr/hadoop/etc/hadoop/yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>

    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>

    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>

    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>

    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
    
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>

配置环境变量

测试

启动HDFS

在master节点

  1. 格式化hdfs hdfs namenode -format 或者 hdfs namenode format

  2. 启动hdfs start-dfs.sh

在slave1和slave2节点上面使用jps命令

master节点上的NameNode和SecondaryNameNode启动起来了;slave节点上的DataNode启动起来了,这就说明HDFS启动成功

启动yarn

master节点上面

slave节点上面

master节点上的ResourceMananger启动起来了;slave节点上的NodeMananger启动起来了,这就说明yarn启动成功

访问WebUI

访问http//:master:8088

搭建成功

posted @ 2020-05-26 22:40  一只盐桔鸡  阅读(75)  评论(0编辑  收藏  举报