zoukankan      html  css  js  c++  java
  • 分布式

    1.准备虚拟机
    2.修改静态ip
        DEVICE="eth0"
        BOOTPROTO="static"
        HWADDR="00:0C:29:A2:3B:C9"
        IPV6INIT="yes"
        NM_CONTROLLED="yes"
        ONBOOT="yes"
        TYPE="Ethernet"
        UUID="0202b9d4-9762-4348-aa0c-7ce122f50d9e"
        #IP地址
        IPADDR=192.168.1.111  (自己配置)
        #网关
        GATEWAY=192.168.1.2
        #域名解析器
        DNS1=114.114.114.114
        DNS2=8.8.8.8

        service network restart  重启一下
        ifconfig                 查看IP是否变化,没有变化重启

     修改hostname主机
        vim /etc/sysconfig/network
            NETWORKING=yes
            HOSTNAME=hadoop01 (主机名)
            
            hostname主机重启后生效
    3. 添加用户
        useradd jinghang
        passwd  jinghang
        
    4.创建目录module(解压的安装包)、software(压缩的安装包)
        mkdir /opt/module /opt/software
        
        修改文件所属主和组
        chown -R jinghang:jinghang /opt/module  /opt/software
        
    5.给普通用户添加sudo权限
    报错信息:

    sudo: /etc/sudoers is world writable
    sudo: no valid sudoers sources found, quitting
    sudo: unable to initialize policy plugin

     
    解决方法:

        $ su root     #切换到root权限
        $ 输入你的密码
        sh-3.2# chmod 440 /etc/sudoers
        
        
        在93行添加
        jinghang        ALL=(ALL)       NOPASSWD:ALL

    6.添加主机和IP的映射关系
        vim /etc/hosts
        静态ip        主机名
        192.168.1.111 hadoop01
        192.168.1.112 hadoop02
        192.168.1.113 hadoop03
        
    7.关机拍快照(conf_step1)

    ==================================第七步之后普通用户操作====================

    8.安装jdk和hadoop
        将jdk-8u144-linux-x64.tar和hadoop-2.7.2.tar上传到/opt/software(打开xshell连接SFTP拖动文件到/opt/software)
        
        安装jdk
        1.解压jdk
            tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
            
        2.配置环境变量
            sudo vim /etc/profile
            
                #JAVA_HOME
                export JAVA_HOME=/opt/module/jdk1.8.0_144
                export PATH=$PATH:$JAVA_HOME/bin
            
            注意:如果之前存在java安装包,需要先卸载
            rpm -qa | grep java 查看
            rpm -e 安装包 --nodeps 卸载
            
        安装hadoop
        1.解压hadoop
            tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
        2.配置环境变量
            sudo vim /etc/profile
                #HADOOP_HOME
                export HADOOP_HOME=/opt/module/hadoop-2.7.2
                export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
                
        激活环境变量
        source /etc/profile
        
        检查是否安装成功
        java -version
        java version "1.8.0_144"
        Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
        Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
        
        hadoop version
        Hadoop 2.7.2
        Subversion Unknown -r Unknown
        Compiled by root on 2017-05-22T10:49Z
        Compiled with protoc 2.5.0
        From source with checksum d0fda26633fa762bff87ec759ebe689c
        This command was run using /opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-common-2.7.2.jar
        
        伪分布式配置
        1.添加JAVA_HOME
        hadoop-env.sh
        mapred-env.sh
        yarn-env.sh
        在以上三个文件中添加
        export JAVA_HOME=/opt/module/jdk1.8.0_144
        
        2.设置namenode节点所在的服务器地址和临时文件的存储目录
        vim core-site.xml
            <!-- 指定HDFS中NameNode的地址 -->
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://自己服务器的主机名:9000</value>
            </property>

            <!-- 指定Hadoop运行时产生文件的存储目录 -->
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>/opt/module/hadoop-2.7.2/data/tmp</value>
            </property>
            
        3.配置文件的副本数
            vim hdfs-site.xml
            
                <!-- 指定HDFS副本的数量hadoop集群默认是3个副本 -->
                <property>
                        <name>dfs.replication</name>
                        <value>1</value>
                </property>
                
        4.配置yarn-site.xml
            vim yarn-site.xml
            
            <!-- Reducer获取数据的方式 -->
            <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
            </property>

            <!-- 指定YARN的ResourceManager的地址 -->
            <property>
                    <name>yarn.resourcemanager.hostname</name>
                    <value>自己服务器的主机名</value>
            </property>
            <!-- 日志聚集功能使能 -->
            <property>
                    <name>yarn.log-aggregation-enable</name>
                    <value>true</value>
            </property>

            <!-- 日志保留时间设置7天 -->
            <property>
                    <name>yarn.log-aggregation.retain-seconds</name>
                    <value>604800</value>
            </property>
            
        5.配置mapred-site.xml
            vim mapred-site.xml
            <!-- 指定MR运行在YARN上 -->
            <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
            </property>
            <!-- 历史服务器端地址 -->
            <property>
                    <name>mapreduce.jobhistory.address</name>
                    <value>自己的主机名:10020</value>
            </property>
            <!-- 历史服务器web端地址 -->
            <property>
                    <name>mapreduce.jobhistory.webapp.address</name>
                    <value>自己的主机名:19888</value>
            </property>
            
        以上配置完毕就可以启动集群
        1.格式化namenode(只在集群启动的时候格式化一次)
            bin/hdfs namenode -format
            
            注意:不小心进行了两次格式话(所有的节点服务都需要停掉)
            step1    rm -rf data/  logs/
            step2   bin/hdfs namenode -format
        2.启动namenode
            sbin/hadoop-daemon.sh start namenode
        3.启动datanode
            sbin/hadoop-daemon.sh start datanode
        4.启动resourcemanager
            sbin/yarn-daemon.sh start resourcemanager
        5.一定要去启动nodemanager
            sbin/yarn-daemon.sh start nodemanager
        6.开启历史服务
            sbin/mr-jobhistory-daemon.sh start historyserver
            
        查看你的datanode web服务(注意2.7.2:50070  3.2.1:9870)
        
        https://hadoop.apache.org/docs/r3.2.1/hadoop-project-dist/hadoop-common/ClusterSetup.html
        https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/ClusterSetup.html
        如果要使用
            主机名:50070 需要在windowns中的 C:WindowsSystem32driversetc 添加 hosts(主机和ip的映射关系)
        也可以
            ip:50070
        
        查看yarn的web服务
             主机名:8088
        
        查看历史服务器web端
            主机名:19888
            
        可以完成如下操作:
        (a)在HDFS文件系统上创建一个input文件夹
            [jinghang@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /input
        (b)将测试文件内容上传到文件系统上
            [jinghang@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -put wcinput/wc.input /input
        (c)查看上传的文件是否正确
            [jinghang@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -ls  /input
            [jinghang@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /input/wc.input
        (d)运行MapReduce程序
            [jinghang@hadoop101 hadoop-2.7.2]$ bin/hadoop jar
            share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input  /output
        (e)查看输出结果
            命令行查看:
            [jinghang@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /output/*

    完全分布式

    1.准备3台客户机(关闭防火墙、静态ip、主机名称

    2.安装JDK

    和伪布分布式一样

    3.配置并安装Hadoop

    4.配置环境变量

    5.配置集群

    6.单点启动

    7.配置ssh

    8.群起并测试集群

    scp 拷贝

    基本语法

    scp    -r          $pdir/$fname              $user@hadoop$host:$pdir/$fname

    命令   递归       要拷贝的文件路径/名称    目的用户@主机:目的路径/名称

     

    rsync 远程同步工具

     

    rsync    -av       $pdir/$fname              $user@hadoop$host:$pdir/$fname

     

    命令   选项参数   要拷贝的文件路径/名称    目的用户@主机:目的路径/名称

    xsync集群分发脚本

    [xiaokai@hadoop102 ~]$mkdir bin

    [xiaokai@hadoop102 ~]$ cd bin/

    [xiaokai@hadoop102 bin]$ touch xsync

    [xiaokai@hadoop102 bin]$ vi xsync

    配置内容

    #!/bin/bash

    #1 获取输入参数个数,如果没有参数,直接退出

    pcount=$#

    if ((pcount==0)); then

    echo no args;

    exit;

    fi

     

    #2 获取文件名称

    p1=$1

    fname=`basename $p1`

    echo fname=$fname

     

    #3 获取上级目录到绝对路径

    pdir=`cd -P $(dirname $p1); pwd`

    echo pdir=$pdir

     

    #4 获取当前用户名称

    user=`whoami`

     

    #5 循环

    for((host=103; host<105; host++)); do

            echo ------------------- hadoop$host --------------

            rsync -av $pdir/$fname $user@hadoop$host:$pdir

    done

    配置集群

    1核心配置文件

    配置core-site.xml

    [jinghang@hadoop102 hadoop]$ vi core-site.xml

    在该文件中编写如下配置

    <!-- 指定HDFSNameNode的地址 -->

    <property>

    <name>fs.defaultFS</name>

          <value>hdfs://hadoop102:9000</value>

    </property>

     

    <!-- 指定Hadoop运行时产生文件的存储目录 -->

    <property>

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

    <value>/opt/module/hadoop-2.7.2/data/tmp</value>

    </property>

    2HDFS配置文件

    配置hadoop-env.sh

    [jinghang@hadoop102 hadoop]$ vi hadoop-env.sh

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

    配置hdfs-site.xml

    [jinghang@hadoop102 hadoop]$ vi hdfs-site.xml

    在该文件中编写如下配置

    <property>

    <name>dfs.replication</name>

    <value>3</value>

    </property>

     

    <!-- 指定Hadoop辅助名称节点主机配置 -->

    <property>

          <name>dfs.namenode.secondary.http-address</name>

          <value>hadoop104:50090</value>

    </property>

    3YARN配置文件

    配置yarn-env.sh

    [jinghang@hadoop102 hadoop]$ vi yarn-env.sh

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

    配置yarn-site.xml

    [jinghang@hadoop102 hadoop]$ vi yarn-site.xml

    在该文件中增加如下配置

    <!-- Reducer获取数据的方式 -->

    <property>

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

    <value>mapreduce_shuffle</value>

    </property>

     

    <!-- 指定YARNResourceManager的地址 -->

    <property>

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

    <value>hadoop103</value>

    </property>

    4MapReduce配置文件

    配置mapred-env.sh

    [jinghang@hadoop102 hadoop]$ vi mapred-env.sh

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

    配置mapred-site.xml

    [jinghang@hadoop102 hadoop]$ cp mapred-site.xml.template mapred-site.xml

     

    [jinghang@hadoop102 hadoop]$ vi mapred-site.xml

    在该文件中增加如下配置

    <!-- 指定MR运行在Yarn-->

    <property>

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

    <value>yarn</value>

    </property>

    集群单点启动

    1)如果集群是第一次启动,需要格式化NameNode

    [jinghang@hadoop102 hadoop-2.7.2]$ hdfs namenode -format

    2hadoop102上启动NameNode

    [jinghang@hadoop102 hadoop-2.7.2]$ hadoop-daemon.sh start namenode

    [jinghang@hadoop102 hadoop-2.7.2]$ jps

    3461 NameNode

    3hadoop102hadoop103以及hadoop104上分别启动DataNode

    [jinghang@hadoop102 hadoop-2.7.2]$ hadoop-daemon.sh start datanode

    [jinghang@hadoop102 hadoop-2.7.2]$ jps

    3461 NameNode

    3608 Jps

    3561 DataNode

    [jinghang@hadoop103 hadoop-2.7.2]$ hadoop-daemon.sh start datanode

    [jinghang@hadoop103 hadoop-2.7.2]$ jps

    3190 DataNode

    3279 Jps

    [jinghang@hadoop104 hadoop-2.7.2]$ hadoop-daemon.sh start datanode

    [jinghang@hadoop104 hadoop-2.7.2]$ jps

    3237 Jps

    3163 DataNode

     

    免密登陆

    [jinghang@hadoop102 .ssh]$ ssh-keygen -t rsa

    然后三次回车,生成公钥和秘钥

    在用ssh-copy-id 主机名(全部)

     

     

  • 相关阅读:
    0593. Valid Square (M)
    0832. Flipping an Image (E)
    1026. Maximum Difference Between Node and Ancestor (M)
    0563. Binary Tree Tilt (E)
    0445. Add Two Numbers II (M)
    1283. Find the Smallest Divisor Given a Threshold (M)
    C Primer Plus note9
    C Primer Plus note8
    C Primer Plus note7
    C Primer Plus note6
  • 原文地址:https://www.cnblogs.com/qu125-tf/p/12069736.html
Copyright © 2011-2022 走看看