• HDFS 分布式环境搭建


    HDFS 分布式环境搭建

    作者:Grey

    原文地址:

    博客园:HDFS 分布式环境搭建

    CSDN:HDFS 分布式环境搭建

    准备四个Linux实例

    每个实例对应的 host 和 ip 地址如下

    node01 192.168.150.128
    
    node02 192.168.150.138
    
    node03 192.168.150.139
    
    node04 192.168.150.140
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    每个节点的安排如下

    hostNNSNNDN
    node01
    node02
    node03
    node04

    首先,需要配置静态 ip,

    node01~node04上,分别执行

    vi /etc/sysconfig/network-scripts/ifcfg-ens33
    
    • 1

    内容参考如下内容修改

    在 node01 上

    修改BOOTPROTO="static"

    新增IPADDR="192.168.150.128"

    然后执行:

    service network restart
    
    • 1

    在 node02 上

    修改BOOTPROTO="static"

    新增IPADDR="192.168.150.138"

    然后执行

    service network restart
    
    • 1

    在 node03 上

    修改BOOTPROTO="static"

    新增IPADDR="192.168.150.139"

    然后执行

    service network restart
    
    • 1

    在 node04 上

    修改BOOTPROTO="static"

    新增IPADDR="192.168.150.140"

    然后执行

    service network restart
    
    • 1

    接下来,配置 hostname

    在 node01 上

    执行hostnamectl set-hostname node01

    执行

    vi /etc/sysconfig/network
    
    • 1

    设置为

    NETWORKING=yes
    HOSTNAME=node01
    
    • 1
    • 2

    在 node02 上

    执行hostnamectl set-hostname node02

    执行

    vi /etc/sysconfig/network
    
    • 1

    设置为

    NETWORKING=yes
    HOSTNAME=node02
    
    • 1
    • 2

    在 node03 上

    执行hostnamectl set-hostname node03

    执行

    vi /etc/sysconfig/network
    
    • 1

    设置为

    NETWORKING=yes
    HOSTNAME=node03
    
    • 1
    • 2

    在 node04 上

    执行hostnamectl set-hostname node04

    执行

    vi /etc/sysconfig/network
    
    • 1

    设置为

    NETWORKING=yes
    HOSTNAME=node01
    
    • 1
    • 2

    设置本机的ip到主机名的映射关系,在node01~node04上分别执行vi /etc/hosts

    并添加如下信息:

    192.168.150.128 node01 
    
    192.168.150.138 node02 
    
    192.168.150.139 node03 
    
    192.168.150.140 node04 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    接下来,需要关闭防火墙

    node01~node04上都执行如下命令

    systemctl stop firewalld.service
    
    systemctl disable firewalld.service
    
    firewall-cmd --reload
    
    service iptables stop
    
    chkconfig iptables off
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    关闭 SELINUX

    node01~node04上执行vi /etc/selinux/config, 配置如下选项

    SELINUX=disabled
    
    • 1

    时间同步

    node01~node04上分别执行yum install ntp -y

    且做如下配置

    vi /etc/ntp.conf 
    
    • 1

    添加如下信息

    server ntp1.aliyun.com
    
    • 1

    然后在node01~node04上都执行如下命令

    service ntpd start
    
    chkconfig ntpd on
    
    • 1
    • 2
    • 3

    接下来是配置免密登录

    node01~node04上分别执行

    ssh localhost
    
    • 1

    输入yes

    输入密码

    node01~node04上执行如下命令生成本机的密钥和公钥ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

    node01的公钥发送到另外三个机器,在node01上执行

    scp ~/.ssh/id_dsa.pub root@node02:~/.ssh/node1.id_rsa.pub
    
    scp ~/.ssh/id_dsa.pub root@node03:~/.ssh/node1.id_rsa.pub
    
    scp ~/.ssh/id_dsa.pub root@node04:~/.ssh/node1.id_rsa.pub
    
    • 1
    • 2
    • 3
    • 4
    • 5

    node02的公钥发送到另外三个机器,在node02上执行

    scp ~/.ssh/id_dsa.pub root@node01:~/.ssh/node2.id_rsa.pub
    
    scp ~/.ssh/id_dsa.pub root@node03:~/.ssh/node2.id_rsa.pub
    
    scp ~/.ssh/id_dsa.pub root@node04:~/.ssh/node2.id_rsa.pub
    
    • 1
    • 2
    • 3
    • 4
    • 5

    node03的公钥发送到另外三个机器,在node03上执行

    scp ~/.ssh/id_dsa.pub root@node01:~/.ssh/node3.id_rsa.pub
    
    scp ~/.ssh/id_dsa.pub root@node02:~/.ssh/node3.id_rsa.pub
    
    scp ~/.ssh/id_dsa.pub root@node04:~/.ssh/node3.id_rsa.pub
    
    • 1
    • 2
    • 3
    • 4
    • 5

    node04的公钥发送到另外三个机器,在node04上执行

    scp ~/.ssh/id_dsa.pub root@node01:~/.ssh/node4.id_rsa.pub
    
    scp ~/.ssh/id_dsa.pub root@node02:~/.ssh/node4.id_rsa.pub
    
    scp ~/.ssh/id_dsa.pub root@node03:~/.ssh/node4.id_rsa.pub
    
    • 1
    • 2
    • 3
    • 4
    • 5

    node01上执行

    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    
    cat ~/.ssh/node2.id_rsa.pub >> ~/.ssh/authorized_keys
    
    cat ~/.ssh/node3.id_rsa.pub >> ~/.ssh/authorized_keys
    
    cat ~/.ssh/node4.id_rsa.pub >> ~/.ssh/authorized_keys
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    node02上执行

    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    
    cat ~/.ssh/node1.id_rsa.pub >> ~/.ssh/authorized_keys
    
    cat ~/.ssh/node3.id_rsa.pub >> ~/.ssh/authorized_keys
    
    cat ~/.ssh/node4.id_rsa.pub >> ~/.ssh/authorized_keys
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    node03上执行

    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    
    cat ~/.ssh/node1.id_rsa.pub >> ~/.ssh/authorized_keys
    
    cat ~/.ssh/node2.id_rsa.pub >> ~/.ssh/authorized_keys
    
    cat ~/.ssh/node4.id_rsa.pub >> ~/.ssh/authorized_keys
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    node04上执行

    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    
    cat ~/.ssh/node1.id_rsa.pub >> ~/.ssh/authorized_keys
    
    cat ~/.ssh/node2.id_rsa.pub >> ~/.ssh/authorized_keys
    
    cat ~/.ssh/node3.id_rsa.pub >> ~/.ssh/authorized_keys
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    接下来,需要在node01~node04上都安装Java环境,安装过程略。

    node01~node04上都创建好目录

    mkdir -p /opt/bigdata
    
    • 1

    node01~node04上,将hadoop安装包上传到/opt/bigdata下,然后执行:

    tar xf hadoop-2.6.5.tar.gz
    
    • 1

    然后执行:

    mv hadoop-2.6.5 hadoop
    
    • 1

    添加环境变量vi /etc/profile

    Hadoop加入环境变量:

    export JAVA_HOME=/usr/local/jdk
    
    export HADOOP_HOME=/opt/bigdata/hadoop
    
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    • 1
    • 2
    • 3
    • 4
    • 5

    然后执行source /etc/profile

    接下来是 Hadoop 配置,在node01~node04

    执行vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh

    配置 JAVA_HOME:export JAVA_HOME=/usr/local/jdk

    node01~node04上执行vi $HADOOP_HOME/etc/hadoop/core-site.xml

    之间,加入如下配置:

    <property>
     <name>fs.defaultFSname>
     <value>hdfs://node01:9000value>
    property>
    
    • 1
    • 2
    • 3
    • 4

    node01~node04上执行vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml

    之间,加入如下配置

    <property>
        <name>dfs.replicationname>
        <value>2value>
    property>
    <property>
        <name>dfs.namenode.name.dirname>
        <value>/var/bigdata/hadoop/full/dfs/namevalue>
    property>
    
    <property>
        <name>dfs.datanode.data.dirname>
        <value>/var/bigdata/hadoop/full/dfs/datavalue>
    property>
    
    <property>
        <name>dfs.namenode.secondary.http-addressname>
        <value>node02:50090value>
    property>
    
    <property>
        <name>dfs.namenode.checkpoint.dirname>
        <value>/var/bigdata/hadoop/full/dfs/secondaryvalue>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    node01~node04上执行vi $HADOOP_HOME/etc/hadoop/slaves

    node02
    node03
    node04
    
    • 1
    • 2
    • 3

    node01上格式化启动

    格式化hdfs namenode -format

    启动start-dfs.sh

    如果使用 Windows作为客户端,那么可以配置 hosts 条目

    进入C:\Windows\System32\drivers\etc

    host 文件中增加如下条目:

    192.168.150.128 node01 
    
    192.168.150.138 node02 
    
    192.168.150.139 node03 
    
    192.168.150.140 node04
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    测试一下

    node01上,执行如下命令,

    hdfs dfs -mkdir /bigdata
    
    hdfs dfs -mkdir -p /user/root
    
    hdfs dfs -put hadoop-2.6.5.tar.gz /user/root
    
    • 1
    • 2
    • 3
    • 4
    • 5

    打开浏览器

    通过:

    http://node01:50070/explorer.html#/user/root

    可以看到上传的文件 hadoop-2.6.5.tar.gz

  • 相关阅读:
    【JVM】创建对象的流程详解
    孟克德古道徒步记录
    安装 ELEMENTOR PRO
    Spring MVC中@RequestParam注解的功能是什么呢?
    2022牛客多校(五)
    Day13:vw 和 vh 基本使用
    设计模式中的七大原则
    docker run 命令详解(新手入门必备)
    NDI Tools使用介绍
    弘辽科技:看了这些,你就知道为什么你的淘宝店铺做不起来
  • 原文地址:https://blog.csdn.net/hotonyhui/article/details/126734505