搭建全分布式Hadoop

title: 搭建全分布式Hadoopnode

date:2017-12-25 22:12:54shell

环境准备

  • 想要搭建全分布式hadoop, 咱们至少要有两台机器, 一台作主节点, 一台作从节点. 本人是选择开启虚拟机来实现
  • hadoop资源下载 密码: c2vw

虚拟机配置

  1. 虚拟机选择,本人使用的是Virtual Box, Vmvare也能够, 这个无所谓,
  2. 其余都没什么讲的, 建立虚拟机的时候一路回车就行了, 可是网络模式记得改成桥接, 不要使用NAT网络地址转换

文件传输

  1. 将文件传输到服务器上, 由于我用的是Ubuntu Server因此用ssh传输 scp local_file remote_user@remote_ip:/home/user_namebash

    • local_file: 本地文件名(使用绝对地址)
    • remote_user: 远程主机用户名, 用户名相同时可省略
    • remote_ip: 远程主机ip, 不知道的话使用ifconfig命令查看便可
    • /home/user_name: 你想传输文件到远程主机的地址

其余配置

  1. 找到上传文件的地址, 执行install.sh
  2. 执行完shell脚本后, 使用hadoop version查看hadoop是否成功安装
  3. 修改/etc/hostname, 给两个结点更名, 我这里主节点更名为master, 从结点更名为slaver0
  4. 修改/etc/hosts, 将第二行127.0.1.1所有注释掉, 在下面添加IP地址和对应的主机名服务器

    • MAIN_IP master
    • SLAVER_IP slaver0
  5. 在hadoop安装目录建立logs目录并更改拥有者和所属组sudo mkdir /opt/hadoop/logs chown -R mapred logs chgrp -R hadoop logs sudo chmod 775 logs

xml配置

  • 修改/opt/hadoop/etc/hadoop/core-site.xml 指明在集群中谁承担主节点的角色
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://MAIN_IP:9000</value>
    </property>
</configuration>
#9000是端口, 不容许改动 这里的MAIN_IP是指当作主节点的虚拟机的IP,下同
  • 修改/opt/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
  • 修改/opt/hadoop/etc/hadoop/yarn-site.xml
<configuration>
    <!--指定ResourceManager的地址-->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>MAIN_IP</value>
        </property>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yran.nodemanager.local-dirs</name>
            <value>/data/hadoop/yarn/logs</value>
        </property>
    </configuration>
  • 修改/opt/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
    <property>
        <name>dfs.nameservices</name>
        <value>hadoop-cluster1</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/data/hadoop/hdfs/snn</value>
    </property>
    <property>
        <name>fs.checkpoint.dir</name>
        <value>file:/data/hadoop/hdfs/snn</value>
    </property>
    <property>
        <name>fs.checkpoint.edits.dir</name>
        <value>file:/data/hadoop/dfhs/snn</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/data/hadoop/hdfs/dn</value>
    /property>
</configuration>

创建yarn和hdfs执行所需目录

  1. 创建data目录网络

    • sudo mkdir /data
  2. 在/data目录下新建hadoop目录ssh

    • sudo mkdir /data/hadoop
  3. 在hadoop目录下新建hdfs和yarn目录分布式

    • sudo mkdir /data/hadoop/hdfs
    • sudo mkdir /data/hadoop/yarn
  4. 在hdfs目录下新建dn, nn, snn目录oop

    • sudo mkdir /data/hadoop/hdfs/dn
    • sudo mkdir /data/hadoop/hdfs/nn
    • sudo mkdir /data/hadoop/hdfs/snn
  5. 在yarn目录下新建logs, nm目录code

    • sudo mkdir /data/hadoop/yarn/logs
    • sudo mkdir /data/hadoop/yarn/nm
  6. 更改hdfs和yarn所属用户和用户组orm

    • sudo chown -R hdfs hdfs/
    • sudo chgrp -R hadoop hdfs/
    • sudo chgrp -R hadoop yarn/

格式化

  • hdfs namenode -format 记住这个主节点和从节点都须要格式化, 不能只格式化一个

其余服务器配置

  • 在其余服务器上, 也是一样的操做, 能够不从新配置, 将咱们改过的配置文件, 用tar打包scp发送至其余服务器, 覆盖安装便可

服务器集群及关闭

使用 su - hdfs, 进入hdfs帐户 默认密码hadoop

在主节点上启动

  • hadoop-daemon.sh start/stop namenode
  • yarn-daemon.sh start/stop resourcemanager

在从节点上启动

  • hadoop-daemon.sh start/stop datenode
  • yarn-daemon.sh start/stop nodemanager
  • 若是想偷懒的话,能够在主节点上使用start/stop-all.sh

监控平台

可能会遇到的错误

  • install.sh没法执行, 注意看是否有执行权限, 若是没有的话使用chmod命令添加执行权限,
  • hadoop version显示没有这个命令, 看看本身~/.bashrc文件里有没有以下代码export JAVA_HOME=/opt/jdk export HADOOP_HOME=/opt/hadoop export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 没有的话加进去
  • 东西搭起来后, 发现DataNode在master上, 更改/opt/hadoop/etc/hadoop/slaves, 默认是localhost, 改成SLAVER_IP
相关文章
相关标签/搜索