• Hadoop集群搭建


    部署规划

    三台centos7虚拟机

    172.17.9.27 Master
    172.17.9.28 Slave1
    172.17.9.29 Slave2
    步骤:

    一、添加用户

    # 创建新用户hadoop
    useradd -m hadoop -s /bin/bash  
    设置密码
    passwd hadoop
    添加管理员权限
    visudo

    二、centos默认安装了ssh

    三、安装jdk

    解压安装包:tar -zxvf openjdk-7u75-b13-linux-x64-18_dec_2014.tar.gz
    mv -r java-se-7u75-ri/ /usr/java/
    配置
    vim /etc/profile
    把以下代码添加到profile文件的done行下面:
    export JAVA_HOME= /usr/java/
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    让修改的文件生效:source /etc/profile
    查看Java安装结果
    java -version

    四、修改host

    vim /etc/hostname
    添加:HOSTNAME=Master
    0

    五、修改IP映射

    vim /etc/hosts
    0

    六、ssh无密码登录节点

    Master 节点可以无密码 SSH 登陆到各个 Slave 节点上
    首先生成 Master 节点的公匙,在 Master 节点的终端中执行
    # 如果没有该目录,先执行一次ssh localhost
    cd ~/.ssh              
    # 删除之前生成的公匙(如果有)
    rm ./id_rsa*           
    # 一直按回车就可以
    ssh-keygen -t rsa      
    在Master节点上运行
    cat ./id_rsa.pub >> ./authorized_keys
    完成后可执行 ssh Master 验证一下(可能需要输入 yes,成功后执行 exit 返回原来的终端)。接着在 Master 节点将上公匙传输到 全部的Slave 节点:
    scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/

    七、配置slave节点

    在其他 Slave 节点上配置 hadoop 用户、设置sudo权限,安装 Java 环境,设置映射
    接着在 SlaveX 节点上,将 ssh 公匙加入授权:
    mkdir ~/.ssh # 如果不存在该文件夹需先创建,若已存在则忽略
    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

    八、安装Hadoop

    解压安装好的
    tar -xzvf hadoop-2.7.2.tar.gz
    mv hadoop-2.7.1 /usr/hadoop
    # 修改文件权限
    sudo chown -R hadoop:hadoop ./hadoop       
    检查Hadoop是否可用,以下截图为成功截图,输出了版本
    ./bin/hadoop version
     
     
    将 Hadoop 安装目录加入 PATH 变量中,这样就可以在任意目录中直接使用 hadoo、hdfs 等命令了,如果还没有配置的,需要在 Master 节点上进行配置。首先执行 vim ~/.bashrc,加入一行:
    export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
    保存后执行 source ~/.bashrc 使配置生效。
    九、配置集群分布式环境
    集群/分布式模式需要修改 /usr/hadoop/etc/hadoop 中的5个配置文件,更多设置项可点击查看官方说明,这里仅设置了正常启动所必须的设置项: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 。
     
    1, 文件 slaves,将作为 DataNode 的主机名写入该文件,每行一个,默认为 localhost,所以在伪分布式配置时,节点即作为 NameNode 也作为 DataNode。分布式配置可以保留 localhost,也可以删掉,让 Master 节点仅作为 NameNode 使用。
    0
    2, 文件 core-site.xml 改为下面的配置:
    0
    3, 文件 hdfs-site.xml,dfs.replication 一般设为 3,但我们只有两个 Slave 节点,所以 dfs.replication 的值还是设为 2:
    0
    4, 文件 mapred-site.xml (可能需要先重命名,默认文件名为 mapred-site.xml.template),然后配置修改如下:
    0
    5, 文件 yarn-site.xml:
    0
    配置好后,将 Master 上的 /usr/hadoop 文件夹复制到各个节点上
    tar -zcf ~/hadoop.master.tar.gz ./hadoop # 先压缩再复制
    在 Slave1 节点上执行:注意上面最后一行的Slave1,其他节点可改为Slave2,3,4等,同样下面也要在不同的节点允许
    0
    首次启动需要先在 Master 节点执行 NameNode 的格式化:
    hdfs namenode -format # 首次运行需要执行初始化,之后不需要
    0
    关闭防火墙centos7
    systemctl stop firewalld.service # 关闭firewall systemctl disable firewalld.service # 禁止firewall开机启动
    接着可以启动 hadoop 了,启动需要在 Master 节点上进行:
    start-dfs.sh
    出错了 Slave1 Error:JAVA_HOME is not set and could not be findz
    修改hadoop路径下etc/hadoop/hadoop-env.sh文件,将默认JAVA_HOME=$JAVA_HOME改成JAVA平台的实际安装目录,
    例如:export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
    start-yarn.sh
    设置ssh密钥的时候需要用Hadoop账号,不然会出错。
    mr-jobhistory-daemon.sh start historyserver
    通过命令
    jps 可以查看各个节点所启动的进程。正确的话,在 Master 节点上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 进程,如下图所示:
    0
    hdfs dfsadmin -report命令,查看HDFS试用情况
    关闭:把stop-dfs.sh 改成 stop-all.sh
  • 相关阅读:
    Codeforces Round#410 Div.2
    AtCoder Beginner Contest-060
    如何将gedit变成c++编译器
    洛谷 P2486 [SDOI2011]染色
    让lu哥头痛了许久的代码(洛谷:树的统计)
    字符串模拟入门
    luogu P1553 数字反转(升级版)
    那些令人难忘的——坑
    luogu P1341 无序字母对
    最短路相关题目
  • 原文地址:https://www.cnblogs.com/oliver-yt/p/15413879.html
Copyright © 2020-2023  润新知