hadoop完全分布式系统搭建

Hadoop完全分布式

集群规划

192.168.120.11  node01   NameNode  DataNode NodeManager

192.168.120.12  node02               DataNode NodeManager   ResourceManager

192.168.120.13  node03               DataNode NodeManager

前期准备

Centos7

Jdk1.8

Hadoop 2.6.5

主机名和IP分配(根据自己的需求分配)

主机名

node01

node02

node03

IP地址

192.168.120.11

192.168.120.12

192.168.120.13

设置网络:

根据此分别设置每台机器的NAT模式的地址

设置IP

NAT模式的地址

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

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=ens33

UUID=5163149b-31ba-4587-8c10-434648530b37

DEVICE=ens33

ONBOOT=yes

IPADDR=192.168.120.11

GATEWAY=192.168.120.2

DNS1=114.114.114.114

NETMASK=255.255.255.0

设置主机名

vi /etc/hosts

三台机器分别设置

node01中

node01

vi /etc/hosts

node02中

node02

node03中

vi /etc/hosts

node03

设置本机的ip到主机名的映射关系

vi /etc/hosts

192.168.120.11 node01

192.168.120.12 node02

192.168.120.13 node03

reboot 重启虚拟机

ping www.baidu.com

ping  node02

看看是否可以ping通

 配置ssh免密登录

在node01中进行

     ssh-keygen -t rsa     生成ssh秘钥对然后按三次回车

ssh-copy-id root@node01   将公钥加入node01机器的受信列表中

ssh-copy-id root@node02   将公钥加入node02机器的受信列表中

ssh-copy-id root@node03   将公钥加入node03机器的受信列表中

ResourceManager: node02需登录到node01,node02,node03

    设置如下:

ssh-keygen -t rsa 后回车几次就可以啦

ssh-copy-id  root@node01

ssh-copy-id  root@node02

ssh-copy-id  root@node03

   检测:

      ssh node01

ssh node02

ssh node03

安装JDK:node01中进行 

tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/

通过scp分发

scp -r  /opt/module/jdk-8u144 root@node02:/opt/module/

scp -r  /opt/module/jdk-8u144 root@node03:/opt/module/

vi /etc/profile     

export  JAVA_HOME=/opt/module/jdk1.8.0_144

export PATH=$PATH:$JAVA_HOME/bin

再次通过scp分发

scp -r  /etc/profile root@node02:/etc/

scp -r  /etc/profile root@node03:/etc/

重新加载source文件

source /etc/profile

检测配置是否生效

 jps

 java -version

安装hadoop 并配置环境变量:node01

安装

tar -zxvf hadoop-2.6.5.tar.gz  -C /opt/module/

scp分发

scp -r  /opt/module/hadoop-2.6.5 root@node02:/opt/module/

scp -r  /opt/module/hadoop-2.6.5 root@node03:/opt/module/

配置

vim /etc/profile

export HADOOP_HOME=/opt/module/hadoop-2.6.5

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

scp分发profile文件

scp -r  /etc/profile root@node02:/etc/

scp -r  /etc/profile root@node03:/etc/

重新加载三台机器都做

source /etc/profile

测试:

 hadoop

 hdfs

配置 hadoop-env.sh中环境变量设置

 vim /opt/module/hadoop-2.9.2/etc/hadoop/hadoop-env.sh 文件

将原来export JAVA_HOME=$JAVA_HOME

修改为jdk安装目录==> export JAVA_HOME= /opt/module/jdk1.8.0_144

配置core-site.xml文件

vim /opt/module/hadoop-2.6.5/etc/hadoop/core-site.xml

  <property>

    <name>fs.defaultFS</name>

    <value>hdfs://node01:9000</value>

  </property>

  <property>

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

   <value>/opt/module/hadoop-2.6.5/data</value>

  </property>

在配置core-site.xml时想要使那台节点作为NameNode节点,就在配置文件中使用那个节点主机名作为fs.defaultFS的名字使用,图中使用的是node01作为NameNode,

配置hdfs-site.xml配置文件

vim /opt/module/hadoop-2.6.5/etc/hadoop/hdfs-site.xml

   <property>

    <name>dfs.replication</name>

    <value>3</value>

  </property>

这里将副本数量修改为了3份,默认配置也是3份

配置slaves文件

vim /opt/module/hadoop-2.6.5/etc/hadoop/slaves

node01

node02

node03

yarn-site.xml配置

vim /opt/module/hadoop-2.6.5/etc/hadoop/yarn-site.xml

加入如下内容:

  <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

</property>

<property>

        <name>yarn.resourcemanager.hostname</name>

        <value>node02</value>

</property>

      上述yarn.resourcemanager.hostname配置中的node02为当前机器的主机名

mapred-site.xml配置

cd /opt/module/hadoop-2.6.5/etc/hadoop

复制文件并且重命名为mapred-site.xml

cp mapred-site.xml.template  mapred-site.xml

vim mapred-site.xml

加入如下配置:

<property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

</property>

scp分发

scp -r /opt/module/hadoop-2.6.5/etc/hadoop root@node02:/opt/module/hadoop-2.6.5/etc/

slaves文件用来决定哪些节点为datanode,因为node01节点既要是NameNode也要是DataNode因此也要讲node01放在salves文件中,这样才会认为自己也是一个dataNode节点

在node01节点上进行Namenode格式化

hdfs namenode -format

启动hdfs集群

在node01上执行:  start-dfs.sh   关闭使用: stop-dfs.sh

启动yarn集群

    start-yarn.sh   //必须在ResourceManager结点上执行就是node02上面

关闭集群

stop-yarn.sh

stop-dfs.sh

stop-all.sh

查看各个节点进程,根据自己虚拟机查看进程

node01

[root@node01 hadoop-2.6.5]# jps

2291 NodeManager

1592 NameNode

1853 SecondaryNameNode

2413 Jps

1678 DataNode

node02

[root@node02 hadoop-2.6.5]# jps

1604 DataNode

2244 NodeManager

2328 Jps

1964 ResourceManager

node03

[root@node03 hadoop-2.6.5]# jps

1760 NodeManager

1882 Jps

1484 DataNode

在node01中访问hdfs提供的web界面 

   systemctl status firewalld   查看防火墙

 systemctl stop firewalld    关闭防火墙

http://192.168.120.11:50070/

http://192.168.120.12:8088/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值