• [大数据] hadoop全分布式安装


    一、准备工作

    在伪分布式的搭建基础上修改配置,搭建全分布式hadoop环境,伪分布式安装参照 hadoop伪分布式安装 

    首先准备4台虚拟机,信息如下:

    192.168.1.11  namenode1

    192.168.1.12  datanode1

    192.168.1.13  datanode2

    129.168.1.14  datanode3

    第一台namenode1用做NameNode节点,我们使用伪分布式安装好的环境(将其配置文件进行修改,并分发给其他3个节点)。

    第二台datanode1用作第一台DataNode以及SecondaryNameNode。

    第三台和第四台虚拟机,即datanode2和datanode3用作纯粹的Datanode节点。

    在每台虚拟机上做如下基本操作:

    1.配置各自的hostname(以namenode1为例)

    vi /etc/hostname
    
    namenode1

    2.配置主机映射

    vi /etc/hosts
    
    192.168.1.11    namenode1
    192.168.1.12    datanode1
    192.168.1.13    datanode2
    192.168.1.14    datanode3

    3.在namenode1上生成ssh公钥,并拷贝给其他节点

    ssh-keygen -t rsa
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@namenode1
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@datanode1
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@datanode2
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@datanode3

    4.保证每台虚拟机的JDK安装

    [root@datanode1 ~]# jps
    2705 Jps

    如果未安装JDK或未配置环境变量,请参照伪分布式安装中的步骤进行JDK的安装。

    二、修改Hadoop配置文件

    从伪分布式环境中,将hadoop包直接拷贝到namenode1的/opt目录下:

    [root@namenode1 ~]# cd /opt/
    [root@namenode1 opt]# ll
    total 0
    drwxr-xr-x 10 root root 150 Nov 19 16:00 hadoop-2.6.5

    这个hadoop包中的配置文件都是在伪分布安装时的配置。我们要对其进行一些修改:

    1.备份伪分布式的配置文件:

    [root@namenode1 etc]# cd /opt/hadoop-2.6.5/etc/
    [root@namenode1 etc]# cp -r hadoop hadoop_pseudo/

    2.修改core-site.xml

    vi /opt/hadoop-2.6.5/etc/hadoop/core-site.xml
    
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://namenode1:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/var/hadoop/full</value>
        </property>
    </configuration>

    3.修改hdfs-site.xml

    vi /opt/hadoop-2.6.5/etc/hadoop/hdfs-site.xml
    
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>datanode1:50090</value>
        </property>
    </configuration>

    在这里,我们将SecondaryNameNode放在datanode1节点上,当然也可以用一台单独的虚拟机来运行。

    4.修改slaves

    vi /opt/hadoop-2.6.5/etc/hadoop/slaves
    
    datanode1
    datanode2
    datanode3

    三、将修改好配置后的hadoop包分发给其余三个节点

    scp -r /opt/hadoop-2.6.5 root@datanode1:/opt/
    scp -r /opt/hadoop-2.6.5 root@datanode2:/opt/
    scp -r /opt/hadoop-2.6.5 root@datanode3:/opt/

    四、为所有节点的hadoop配置环境变量

    当然也可以通过分发的形式:

    scp /etc/profile root@datanode1:/etc/
    scp /etc/profile root@datanode2:/etc/
    scp /etc/profile root@datanode3:/etc/

    在每台虚拟机上让环境变量生效:

    . /etc/profile

    五、初始化全分布式hadoop集群

    在namenode1上运行:

    [root@namenode1 opt]# hdfs namenode -format
    19/11/19 16:24:33 INFO namenode.NameNode: STARTUP_MSG: 
    /************************************************************
    STARTUP_MSG: Starting NameNode
    STARTUP_MSG:   host = namenode1/192.168.1.11
    STARTUP_MSG:   args = [-format]
    STARTUP_MSG:   version = 2.6.5
    ......
    ......
    ......
    19/11/19 16:24:38 INFO namenode.NameNode: SHUTDOWN_MSG: 
    /************************************************************
    SHUTDOWN_MSG: Shutting down NameNode at namenode1/192.168.1.11
    ************************************************************/

    查看/var/hadoop下的文件:

    [root@namenode1 name]# cd /var/hadoop/
    [root@namenode1 hadoop]# ll
    total 0
    drwxr-xr-x 3 root root 16 Nov 19 16:24 full
    # 此时存在格式化产生的namenode节点数据存放目录
    cd /var/hadoop/full/dfs/name

    而在其他三个节点上,此时还不存在此类目录,因为格式化的时候只会作用于NN,而要在启动集群的时候才会在DN上产生这类目录。

    六、启动集群

    start-dfs.sh
    [root@namenode1 sbin]# start-dfs.sh 
    Starting namenodes on [namenode1]
    namenode1: starting namenode, logging to /opt/hadoop-2.6.5/logs/hadoop-root-namenode-namenode1.out
    datanode1: starting datanode, logging to /opt/hadoop-2.6.5/logs/hadoop-root-datanode-datanode1.out
    datanode3: starting datanode, logging to /opt/hadoop-2.6.5/logs/hadoop-root-datanode-datanode3.out
    datanode2: starting datanode, logging to /opt/hadoop-2.6.5/logs/hadoop-root-datanode-datanode2.out
    Starting secondary namenodes [datanode1]
    datanode1: starting secondarynamenode, logging to /opt/hadoop-2.6.5/logs/hadoop-root-secondarynamenode-datanode1.out

    我们可以看到,nn启动在namenode1上,snn启动在datanode1上,其余dn启动在datanode1、datanode2、datanode3上。

    访问192.168.1.11:50070可以成功打开hadoop提供的web管理页面:

    保持学习,否则迟早要被淘汰*(^ 。 ^ )***
  • 相关阅读:
    restore db fail
    MAC 设置环境变量path的常用方法
    python编码问题 decode与encode
    python 正则表达式 提取网页中标签的中文
    转:Linux实时将所有输出重定向到文件
    selenium 定位无标签的元素
    re.compile
    Python urllib.quote
    Shell #*/ 和 %/*
    [转载] python必碰到的问题---encode与decode,中文乱码
  • 原文地址:https://www.cnblogs.com/leokale-zz/p/11889731.html
Copyright © 2020-2023  润新知