当前位置:   article > 正文

Hadoop(三):集群式运行环境搭建_写完hadoop集群启停脚本必须加绝对路径才能运行

写完hadoop集群启停脚本必须加绝对路径才能运行

Hadoop(三):集群式运行环境搭建

这里比较推荐你使用VMware作为虚拟机的管理器。

准备

  • VMware
  • 一台配置好的ubuntu(其他linux操作系统也可以,我使用ubuntu 16作为例子)

ubuntu配置

首先在其中一台虚拟机配置好:(我的ubuntu安装后的user为ace

  1. 安装java。

    创建java目录

    mkdir /usr/java
    //下面修改权限组,我这里是ace,你的要根据你的user定
    chown -R ace@ace /usr/java
    
    • 1
    • 2
    • 3

    然后将java的安装包解压至此

    安装java然后配置环境变量,将java包解压到一个路径,比如/usr/java,然后修改环境变量/etc/profile

    export JAVA_HOME=/usr/java/jdk1.8.0_181
    export JRE_HOME=/usr/java/jdk1.8.0_181/jre
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
    
    • 1
    • 2
    • 3
    • 4

    然后

    source /etc/profile
    
    • 1

在这里插入图片描述

  1. 安装hadoop

    创建hadoop目录

    mkdir /usr/hadoop
    //下面修改权限组,我这里是ace,你的要根据你的user定
    chown -R ace@ace /usr/hadoop
    
    • 1
    • 2
    • 3

    然后将hadoop的安装包解压至此

    安装hadoop然后配置环境变量,将hadoop解压到一个路径,比如/usr/hadoop,然后修改环境变量/etc/profile

    ## Hadoop Home
    export HADOOP_HOME=/usr/hadoop/hadoop-2.7.2
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
    
    • 1
    • 2
    • 3
    • 4

    然后

    source /etc/profile
    
    • 1

在这里插入图片描述

克隆ubuntu

由于我们是要有集群环境的,所以一台虚拟机是不行的,所以要克隆两台,并修改一些配置

1. 克隆

在vmware上边栏菜单中:虚拟机=》管理=》克隆

在这里插入图片描述
在这里插入图片描述

然后启动克隆的虚拟机

2. 配置

修改hostname

vi /etc/hostname
  • 1

修改为与原ubuntu不一样的主机名,这里我修改为了xiatom-2和xiatom-3(原先的为xiatom-1)

修改hosts

vi /etc/hosts
  • 1

修改为如下内容,其中ip地址可以使用ifconfig在终端查询,要求ip与主机名对应

192.168.222.131 xiatom-1
192.168.222.132 xiatom-2
192.168.222.133 xiatom-3
  • 1
  • 2
  • 3

在这里插入图片描述

这里要注意,将dhcp关闭,使用静态ip地址否则ip地址变化会导致hosts映射错误

3. 测试

在每个主机分别ping一下其他主机,可以ping通则ok。

如xiatom-1

ping xiatom-2
ping xiatom-3
  • 1
  • 2

完全分布式集群配置

首先是进群结构规划

xiatom-1xiatom-2xiatom-3
HDFSNameNode、DataNodeDataNode2NameNode、DataNode
YARNNodeManagerResourceManager、NodeManagerNodeManager

在配置之前一定要指定每个节点的ip地址固定,也就是关闭dhcp自己分配ip,否则根据host可能查不到正确的节点。并且在hosts文件中不能有127.0.0.1的映射

下面所有配置都要对所有节点配置

首先进入

cd /usr/hadoop/hadoop-2.7.2/etc/hadoop
  • 1
  1. core-stie.xml

    <configuration>
    
        <!-- 指定HDFS中NameNode的地址 -->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://xiatom-1:9000</value>
        </property>
    
        <!-- 指定Hadoop运行时产生临时文件 -->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/hadoop/hadoop-2.7.2/data/tmp</value>
        </property>
    
    
    </configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  2. hdfs-site.xml

    <configuration>
        <!-- 指定Hadoop second-namenode -->
        <property>
              <name>dfs.namenode.secondary.http-address</name>
              <value>xiatom-3:50090</value>
        </property>
    </configuration>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  3. yarn-site.xml

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
    
        <!-- Reducer获取数据的方式 -->
        <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</value>
        </property>
    
        <!-- 指定YARN的ResourceManager的地址 -->
        <property>
             <name>yarn.resourcemanager.hostname</name>
             <value>xiatom-2</value>
        </property>
    </configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  4. mapred-site.xml

    将模板复制一份

    cp mapred-site.xml.template mapred-site.xml
    
    • 1

    修改mapred-site.xml

    <configuration>
    
    <!-- 指定MR运行在Yarn上 -->
    <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
    </property>
    </configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

拷贝到其他节点:(前提是可以ping通)

rsync -rvl /usr/hadoop/hadoop-2.7.2/etc/hadoop ace@xiatom-2:/usr/hadoop/hadoop-2.7.2/etc/hadoop
  • 1

这里可以看到是ace用户

hadoop中env脚本配置java环境变量

进入$HADOOP_HOME/etc/hadoop,修改如下三个文件

  • hadoop-env.sh
  • yarn-env.sh
  • mapred-env.sh

将其中的JAVA_HOME改为绝对路径,如果不更改的话可以直接使用这些脚本(因为JAVA_HOME以及加入到环境变量了)

但是当使用其他脚本调用此脚本的时候JAVA_HOME是识别不到的,所以需要我们修改为绝对路径

hadoop集群整体配置

$HADOOP_HOME/etc/hadoop:

修改slave(当执行hadoop脚本时所有slave中的节点都会执行)

将所有节点写入slave:

xiatom-1
xiatom-2
xiatom-3
  • 1
  • 2
  • 3

配置SSH免密登录

下面这几个命令最好在root和普通用户模式下都使用

ssh-keygen -t rsa
//然后三个回车

ssh-copy-id xiatom-2
ssh-copy-id xiatom-3
  • 1
  • 2
  • 3
  • 4
  • 5

这样就可以免密登陆其他节点,并且可以群起hadoop

启动hadoop各节点内组件

启动前,注意如果是第一次启动那么要把所有节点的data/ logs/删去,然后格式化namenode。

进入namenode所在节点(xiatom-1)

cd $HADOOP_HOME/sbin

start-dfs.sh
  • 1
  • 2
  • 3

进入resource-manager所在节点 (xiatom-2)

cd $HADOOP_HOME/sbin

start-yarn.sh
  • 1
  • 2
  • 3

然后可以使用jps查看是否启动成功,如下图(其中jobhistoryServer是我自己又加的,所以没配的话是没有)

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/880160
推荐阅读
相关标签
  

闽ICP备14008679号