• Hadoop 单机与完全分布式配置


    Hadoop 单机模式安装配置

    • Hadoop 的单机模式安装非常简单,只需要配置好环境变量即可运行,这个模式一般用来学习和测试hadoop 的功能。

    1、获取软件

    http://hadoop.apache.org/

    tar  -xf   hadoop-2.7.6.tar.gz   -C  ./

    2、安装配置 java 环境,安装 jps 工具

    yum -y install java-1.8.0-openjdk-devel java-1.8.0-openjdk

    3、设置环境变量,启动运行

    vim  etc/hadoop/hadoop-env.sh

    export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre"
    export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop"

    查看版本

    cd  /usr/local/hadoop
    ./bin/hadoop version

    测试  《 分析/etc/passwd 里面 的数据 把结果保存到 /passwd 里面 》

    cd  /usr/local/hadoop/
    ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /etc/passwd /passwd

    搭建完全分布式

    HDFS 分布式文件系统
    完全分布式

    • 系统规划

    =======================================================
    主机                                                 角色                      软件
    10.211.55.10                                 NameNode                HDFS
    Nn01                                       SecondaryNameNode
    =======================================================
    10.211.55.11                                DataNode                   HDFS
    Node1
    =======================================================
    10.211.55.12                                DataNode                   HDFS
    Node2
    =======================================================
    10.211.55.13                                DataNode                   HDFS
    node3
    =======================================================

    Hadoop 配置文件及格式
    • 文件格式
    – Hadoop-env.sh
    JAVA_HOME
    HADOOP_CONF_DIR
    – Xml 文件配置格式
    <property>
           <name>关键字</name>
           <value>变量值</value>
           <description> 描述 </description>
    </property>

     

    – 禁用 selinux
    SELINUX=disabled

    – 禁用 firewalld
    systemctl stop firewalld
    systemctl mask firewalld


    – 安装 java-1.8.0-openjdk-devel
    yum install -y java-1.8.0-openjdk-devel

    • 基础环境准备
    – 在3台机器上配置 /etc/hosts
    – 注: 所有主机都能 ping 同 namenode 的主机名
    – namenode 能 ping 同所有节点
    – java -version 验证 java 安装
    – jps 验证角色

    • 配置 SSH 信任关系(namenode)
    – 注意:不能出现要求输入 yes 的情况,每台机器都要能登录成功,包括本机!!!
    – ssh_config
    StrictHostKeyChecking no
    – ssh-keygen -b 2048 -t rsa -N  ''  -f key
    – ssh-copy-id  -i  ./key.pub  root@ip.xx.xx.xx

    • HDFS 完全分布式系统配置
    – 环境配置文件 hadoop-env.sh
    – 核心配置文件 core-site.xml
    – HDFS配置文件 hdfs-site.xml
    – 节点配置文件 slaves

    完全分布式
    • 环境配置文件 hadoop-env.sh
    – openjdk 的安装目录
    – JAVA_HOME
    – hadoop 配置文件的存放目录
    – HADOOP_CONF_DIR

    完全分布式
    • 核心配置文件 core-site.xml
    – fs.defaultFS 文件系统配置参数
    – hadoop.tmp.dir 数据目录配置参数

    vim   /usr/local/hadoop/etc/core-site.xml
    <configuration>
        <property>
         <name>fs.defaultFS</name>
         <value>hdfs://nn01:9000</value>
       </property>
       <property>
         <name>hadoop.tmp.dir</name>
         <value>/var/hadoop</value>
       </property>
    </configuration>
    

      

    完全分布式
    • HDFS 配置文件 hdfs-site.xml
    – namenode 地址声明
    – dfs.namenode.http-address
    – secondarynamenode 地址声明
    – dfs.namenode.secondary.http-address
    – 文件冗余仹数
    – dfs.replication

    • HDFS 配置文件 hdfs-site.xml

    vim   /usr/local/hadoop/etc/hdfs-site.xml
    <configuration>
       <property>
          <name>dfs.namenode.http-address</name>
          <value>nn01:50070</value>
       </property>
       <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>nn01:50090</value> 
       </property>
       <property>
          <name>dfs.replication</name>
          <value>2</value>    
       </property>
    </configuration>
    

      

    • 节点配置文件 slaves
    – 只写 datanode 节点的主机名称
    node1
    node2
    node3
    – 同步配置
    – hadoop 所有节点的配置参数完全一样,我们在一台配置好以后,要把配置文件分发到其它所有主机上去

    for i in {11..13} ;do scp -r /usr/local/hadoop/etc/hadoop/* 10.211.55.$i:/usr/local/hadoop/etc/hadoop/ ; done
    

      

    NN01: 格式化 namenode

    cd    /usr/local/hadoop
    ./bin/hdfs namenode -format
    

      

    NN01: 启动集群

     ./sbin/start-dfs.sh

    停止集群可以使用

     ./sbin/stop-dfs.sh

    ALL: 验证角色 jps

    NN01: 验证集群是否组建成功

    ./bin/hdfs dfsadmin -report
    

      

    服务启动日志路径

    /usr/local/hadoop/logs
    

    配置秘书管理   SecondaryNameNode

       秘书配置文件不存在,需要把源文件拷贝一个新的配置文件

     cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
    

      

    mapred-site.xml 配置

    vim  /usr/local/hadoop/etc/mapred-site.xml

    <configuration>
       <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
    </property> </configuration>

    yarn-site.xml 配置

    vim  /usr/local/hadoop/etc/yarn-site.xml

    <configuration>
    <!-- Site specific YARN configuration properties -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>nn01</value>
        </property>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
    </configuration>

    ALL: 同步配置到主机

    for i in {11..13} ;do scp /usr/local/hadoop/etc/hadoop/* 192.168.1.$i:/usr/local/hadoop/etc/hadoop/ ;done
    

    NN1: 启动服务 

    cd  /usr/local/hadoop/
    ./sbin/start-yarn.sh
    

      

    ALL: 验证角色 :   jps

    NN1: 验证节点状态

    cd  /usr/local/hadoop/
     ./bin/yarn node -list
    

      

    测试集群结果

    namenode web             地址 http://10.211.55.10:50070 
    sedondary namenode web   地址 http://10.211.55.10:50090
    yarn resourcemanager     管理地址 http://10.211.55.10:8088
    
    datanode web             地址 http://10.211.55.11:50075
    
    nodemanager web          地址 http://10.211.55.11:8042
    

      

    增加修复节点
    按照单机方法安装一台机器,部署运行的 java 环境
    拷贝 namenode 的文件到本机
    启动 datanode

    ./sbin/hadoop-daemons.sh start datanode
    

    设置同步带宽

    ./bin/hdfs dfsadmin -setBalancerBandwidth 60000000
    ./sbin/start-balancer.sh
    

      


    删除节点
    在主节点操作添加
    ]# vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml

    <property>
         <name>dfs.hosts.exclude</name>
         <value>/usr/local/hadoop/etc/hadoop/exclude</value>
    </property>
    

    增加 exclude 配置文件,写入要删除的节点 主机名

    touch    /usr/local/hadoop/etc/hadoop/exclude
    

      

    开始导出数据

    cd  /usr/local/hadoop/
    ./bin/hdfs dfsadmin -refreshNodes
    

      

    查看状态
    Normal 正常状态
    Decommissioned in Program 数据正在迁移
    Decommissioned 数据迁移完成


    yarn 增加 nodemanager

    ./sbin/yarn-daemon.sh start nodemanager
    

    yarn 停止 nodemanager

    ./sbin/yarn-daemon.sh stop nodemanager
    

      

    yarn 查看节点状态

    ./bin/yarn node -list
    

      

    HDFS 基本使用
    HDFS 使用
    • HDFS 基本命令

    cd  /usr/local/hadoop/
    

      

    查看
    – ./bin/hadoop fs –ls /
    – 对应 shell 命令 ls /

    创建目录
    – ./bin/hadoop fs –mkdir /abc
    – 对应 shell 命令 mkdir /abc

    删除目录
    – ./bin/hadoop fs –rmdir /abc
    – 对应 shell 命令 rmdir /abc

    创建文件
    – ./bin/hadoop fs –touchz /urfile
    – 对应 shell 命令 touch /urfile

    查看文件里的内容
    – ./bin/hadoop fs –cat /urfile
    – 对应 shell 命令 cat /urfile

    删除文件
    – ./bin/hadoop fs –rm /urfile
    – 对应 shell 命令 rm /urfile

     上传文件

     ./bin/hadoop fs –put localfile /remotefile

    下载文件

     ./bin/hadoop fs –get /remotefile

    • 创建文件夹

    ./bin/hadoop fs -mkdir /input

    • 上传要分析的文件

    ./bin/hadoop fs -put *.txt /input
    

      

    • 提交分析作业

    ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input /output

    • 查看结果

    ./bin/hadoop fs –cat output/*
    

      

    NFS 网关

    1 、新添加一台服务器     写入所有集群节点的  /etc/hosts 文件中

    10.211.55.14      nfsgw

    2、(nfsgw, nn01)在这两台服务器添加用户

    groupadd -g 500 nsd1804
    useradd -u 500 -g   500 nsd1804
    

      

    3、NN01:  停止集群

    cd  /usr/local/hadoop/
    ./sbin/stop-all.sh

    4、NN01:  增加配置 core-site.xml

    vim  /usr/local/hadoop/etc/core-site.xml
    <property>
         <name>hadoop.proxyuser.nsd1804.groups</name>
         <value>*</value>
    </property>
    <property>
         <name>hadoop.proxyuser.nsd1804.hosts</name>
         <value>*</value>
    </property>

    5、NN01:  同步配置 core-site.xml   

    node1 node2 node3


    6、NN01:  启动集群

    ./sbin/start-dfs.sh
    

      

    7、NN01:  查看状态

    ./bin/hdfs dfsadmin -report
    

      

    在新服务器配置 nfsge 上

    安装 java-1.8.0-openjdk-devel

    同步 nn01 的 /usr/local/hadoop 到 nfsge 的相同目录下
     hdfs-site.xml 增加配置

    vim  /usr/local/hadoop/etc/hdfs-site.xml
    <property>
           <name>nfs.exports.allowed.hosts</name>
           <value>* rw</value>
    </property>
    <property>
           <name>nfs.dump.dir</name>
           <value>/var/nfstmp</value>
    </property>
    

      

    nfsge :服务器上

    创建转储目录,并给用户 nsd1804 赋权

    mkdir /var/nfstmp
    chown nsd1804:nsd1804 /var/nfstmp
    

      

    nfsge服务器: 给 /usr/local/hadoop/logs 赋权

    setfacl -m u:nsd1804:rwx  /usr/local/hadoop/logs

    创建数据根目录 /var/hadoop

    mkdir /var/hadoop
    

      

    必须用 root 启动,必须先启动 !!!

    cd  /usr/local/hadoop/
    ./sbin/hadoop-daemon.sh --script ./bin/hdfs start portmap
    

      

    必须用代理用户启动,必须后启动 !!!

     在nfsge服务器上 登录代理服务器   nsd1804

    su  -  nsd1804
    cd  /usr/local/hadoop/
    ./sbin/hadoop-daemon.sh --script ./bin/hdfs start nfs3
    

      

    Client: 安装 nfs-utils
    mount 共享目录

    mount -t nfs -o vers=3,proto=tcp,nolock,noatime,sync,noacl 10.211.55.14:/  /mnt/
    

      

    查看注册服务

    rpcinfo -p 192.168.1.15
    

      


    查看共享目录

    showmount -e 192.168.1.15
    

      

     那里不对 老铁请指出 大家一起学习

    end  !!!!!!!!!

  • 相关阅读:
    【loj2639】[Tjoi2017]不勤劳的图书管理员
    【bzoj3514】Codechef MARCH14 GERALD07加强版
    BZOJ1002【FJOI2007】轮状病毒
    数论基础(附加例题)
    表达式总结
    背包
    hdu1027
    hdu1026
    hdu1025
    hdu1024
  • 原文地址:https://www.cnblogs.com/zzc-log/p/9594987.html
Copyright © 2020-2023  润新知