zoukankan      html  css  js  c++  java
  • Hadoop 分布式部署HDFS-hadoop用户部署

    关闭防火墙和SELinux
    systemctl stop firewalld.service
    systemctl disable firewalld.service
    
    setenforce 0
    sed -i 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config
    
    
    修改/etc/hosts 文件,加入引入其他服务器主机
    10.10.10.62    testdb62 
    10.10.10.136   testdb136
    10.10.10.63    testdb63
    
    
    集群部署规划
    testdb62   NameNode(HDFS)  DataNode(HDFS)   NodeManager(YARN)
    testdb136  DataNode(HDFS)  ResourceManager(YARN)  NodeManager(YARN)  
    testdb63   SecondaryNameNode(HDFS)  DataNode(HDFS)  NodeManager(HDFS)
    
    
    创建 hadoop 用户
    useradd hadoop
    
    
    修改hadoop 用户密码
    passwd hadoop
    
    
    给hadoop sudo权限
    vi /etc/sudoers
    hadoop ALL=(root) NOPASSWD:ALL
    
    
    为hadoop用户配置ssh免密登录
    ssh-keygen
    cd ~/.ssh
    cat id_rsa.pub > authorized_keys 
    chmod 600 *
    cd ~/
    scp -r .ssh testdb136:~/
    scp -r .ssh testdb63:~/
    
    最后每个节点都要验证
    ssh testdb62 date
    ssh testdb136 date
    ssh testdb63 date
    
    
    创建目录
    mkdir /opt/hadoop
    mkdir /data/hadoop/data/tmp  -p
    
    
    查询是否安装jdk
    rpm -qa | grep jdk
    
    
    如果安装的版本低于1.7,卸载该JDK
    rpm -e 软件包
    
    
    查看JDK安装路径
    which java
    
    
    安装jdk
    这里使用的是rpm 包的安装方式,所以,JAVA_HOME是在 /usr/java/jdk1.8.0_65 
    
    
    打开/etc/profile文件,在profile文件末尾添加jdk路径
    vi /etc/profile  
    
    #JAVA_HOME
    export JAVA_HOME=/usr/java/jdk1.8.0_65
    export PATH=$PATH:$JAVA_HOME/bin
    
    
    解压安装文件到 /opt/hadoop 下面
    tar -zxvf hadoop-2.7.2.tar.gz -C /opt/hadoop/
    
    
    修改权限
    chown  -R  hadoop:hadoop  /opt/hadoop
    chown  -R  hadoop:hadoop  /data/hadoop 
    
    
    打开/etc/profile文件,在profile文件末尾添加hadoop路径
    vi /etc/profile   
    
    ##HADOOP_HOME
    export HADOOP_HOME=/opt/hadoop/hadoop-2.7.2
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
    
    
    让修改后的文件生效
    source /etc/profile
    
    
    测试是否安装成功
    hadoop version
    
    
    创建集群同步命令脚本
    vi /opt/hadoop/hadoop-2.7.2/bin/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 i in  {testdb62,testdb136,testdb63} 
    do
        echo ------------------- $i --------------
        rsync -rvl $pdir/$fname $user@$i:$pdir
    done
    
    
    给脚本执行权限
    chmod 755  /opt/hadoop/hadoop-2.7.2/bin/xsync
    
    
    
    创建集群分发命令脚本
    vi /opt/hadoop/hadoop-2.7.2/bin/xcall
    
    #!/bin/bash
    pcount=$#
    if((pcount==0));then
            echo no args;
            exit;
    fi
    
    for i in  {testdb62,testdb136,testdb63}
    do
        echo ----------hostName $i---------
        ssh $i $@
    done
    
    
    给脚本执行权限
    chmod 755  /opt/hadoop/hadoop-2.7.2/bin/xcall
    
    
    配置文件所在的目录: /opt/hadoop/hadoop-2.7.2/etc/hadoop
    配置core-site.xml
    vi core-site.xml
    
    <!-- 指定HDFS中NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://testdb62:9000</value>
    </property>
    
    <!-- 指定Hadoop运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/data/hadoop/data/tmp</value>
    </property>
    
    
    配置hadoop-env.sh
    vi hadoop-env.sh
    export JAVA_HOME=/usr/java/jdk1.8.0_65
    
    
    配置hdfs-site.xml
    vi hdfs-site.xml
    
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    
    <!-- 指定Hadoop辅助名称节点主机配置 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>testdb63:50090</value>
    </property>
    
    
    配置yarn-env.sh
    vi yarn-env.sh
    export JAVA_HOME=/usr/java/jdk1.8.0_65
    
    
    配置yarn-site.xml
    vi 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>testdb136</value>
    </property>
    
    
    配置mapred-env.sh
    vi mapred-env.sh
    export JAVA_HOME=/usr/java/jdk1.8.0_65
    
    
    配置mapred-site.xml
    cp mapred-site.xml.template mapred-site.xml
    
    vi mapred-site.xml
    
    <!-- 指定mr运行在yarn上 -->
    <property>      
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    
    
    
    配置slaves  
    vi  slaves
    在该文件中增加如下内容:
    
    testdb62
    testdb136
    testdb63
    
    
    在集群上分发配置好的Hadoop配置文件
    xsync  core-site.xml  
    xsync  hadoop-env.sh  
    xsync  hdfs-site.xml   
    xsync  yarn-env.sh  
    xsync  yarn-site.xml  
    xsync  mapred-env.sh  
    xsync  mapred-site.xml  
    xsync  slaves
    
     
     
    启动集群
    如果集群是第一次启动,需要格式化NameNode
    hdfs namenode -format
    
    启动HDFS
    start-dfs.sh
    
    jps
    4166 NameNode
    4482 Jps
    4263 DataNode
    
    
    jps
    3218 DataNode
    3288 Jps
    
    jps
    3221 DataNode
    3283 SecondaryNameNode
    3364 Jps
    
    
    启动YARN
    start-yarn.sh
    
    注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。
    
    web端查看SecondaryNameNode,浏览器中输入:http://10.10.10.63:50090/status.html
    
    
    集群基本测试
    上传小文件
    hadoop fs -mkdir -p /user/hadoop_test/input
    hadoop fs -put rsync-test-scp.log  /user/hadoop_test/input
    
    
    上传大文件
    hadoop fs -put /home/hadoop/hadoop-2.7.2.tar.gz  /user/hadoop_test/input
    
     
    下载
    hadoop fs -get /user/hadoop_test/input/hadoop-2.7.2.tar.gz ./
    
    
    
    集群启动/停止方式总结
    各个服务组件逐一启动/停止
    分别启动/停止HDFS组件
    hadoop-daemon.sh  start / stop  namenode / datanode / secondarynamenode
    
    
    启动/停止YARN
    yarn-daemon.sh  start / stop  resourcemanager / nodemanager
    
    
    各个模块分开启动/停止(配置ssh是前提)常用
    整体启动/停止HDFS
    start-dfs.sh   /  stop-dfs.sh
    
    
    整体启动/停止YARN
    start-yarn.sh  /  stop-yarn.sh
  • 相关阅读:
    【树状数组·进阶篇】树状数组实现平衡树(树状数组上二分)
    【$Polya$定理·应用篇】$Polya$定理的几种模型简介
    【博弈论·入门篇】$SG$函数基础入门
    关于win10安装CPC专利软件以及win10安装office2003
    部署react项目到服务器,配置nginx的伪静态
    中等 39. 组合总和 (递归,去除数组中重复的元素)
    jsonp策略,cors响应头,实现跨域
    文档-关于这次参加比赛写文档的总结
    前端-关于这次暑假的和大家一起做项目的总结
    servlet获取前台数据或者返回前台数据乱码的问题
  • 原文地址:https://www.cnblogs.com/l10n/p/12605216.html
Copyright © 2011-2022 走看看