centos7安装分布式hadoop

作者: 水煮鱼又失败了 | 来源:发表于2020-07-25 18:13 被阅读0次

    1 场景

    1.1 目的

    centos7环境下安装分布式hadoop。hadoop版本:2.7.1。

    1.2 准备工作

    (1)操作系统版本

    centos7.3.1611

    (2)服务器主从

    192.168.1.11 master
    192.168.1.12 slave1
    192.168.1.13 slave2
    

    主从部署,参见文章:https://www.jianshu.com/p/4c145367208b

    (3)JDK版本

    JDK版本:1.8

    JDK1.8安装,参见文章:https://www.jianshu.com/p/0b9467edf04d

    (4)创建相关目录

    主节点和从节点,均需创建如下目录:

    hadoop程序目录:

    mkdir /usr/local/dsj
    

    hadoop数据目录:

    mkdir /home/hadoop/hadoop
    mkdir /home/hadoop/hadoop/data
    mkdir /home/hadoop/hadoop/name
    mkdir /home/hadoop/hadoop/tmp
    

    2 安装master

    总体顺序是,先将master节点安装配置好,然后将对应的文件拷贝到从节点服务器(slave1/slave2)。

    以下均在主节点服务器上操作。

    2.1 下载解压

    下载地址:

    https://archive.apache.org/dist/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz

    下载后,解压到目录/usr/local/dsj/hadoop-2.7.1(此目录为安装目录)

    tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local/dsj
    

    2.2 配置环境变量

    (1)打开配置文件

    vi /etc/profile
    

    (2)文件末尾增加配置

    export HADOOP_HOME=/usr/local/dsj/hadoop-2.7.1
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    

    (2)让配置生效

    source /etc/profile
    

    2.3 hdfs配置

    (1)更改核心配置文件

    vi /usr/local/dsj/hadoop-2.7.1/etc/hadoop/core-site.xml
    

    增加如下配置:

    <!-- hdfs通信地址 -->
    <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
    </property>
    <!-- hadoop运行时产生文件的存储路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/hadoop/tmp</value>
    </property>
    

    (2)修改hdfs配置文件

    vi /usr/local/dsj/hadoop-2.7.1/etc/hadoop/hdfs-site.xml
    

    添加如下内容:

    <property>
         <name>dfs.name.dir</name>
         <value>/home/hadoop/hadoop/name</value>
         <description>namenode上存储hdfs名字空间元数据 </description>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/home/hadoop/hadoop/data</value>
        <description>datanode上数据块的物理存储位置</description>
    </property>
    <!-- 设置hdfs副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.http.address</name>
        <value>master:50070</value>
    </property>
    

    (3)修改hadoop-env.sh

    vi /usr/local/dsj/hadoop-2.7.1/etc/hadoop/hadoop-env.sh
    

    原配置:export JAVA_HOME=${JAVA_HOME}
    更改为JDK绝对路径:

    export JAVA_HOME=/usr/local/dsj/jdk1.8.0_121
    

    2.4 yarn配置

    (1)配置mapred-site.xml

    复制配置文件:

    cd /usr/local/dsj/hadoop-2.7.1/etc/hadoop
    cp mapred-site.xml.template mapred-site.xml
    

    打开配置文件:

    vi /usr/local/dsj/hadoop-2.7.1/etc/hadoop/mapred-site.xml
    

    文件中增加配置:

    <!-- 通知框架MR使用YARN -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    

    (2)配置yarn-site.xml

    打开配置文件:

    vi /usr/local/dsj/hadoop-2.7.1/etc/hadoop/yarn-site.xml
    

    增加如下配置:

    <!-- reducer取数据的方式是mapreduce_shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!--RM的hostname-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    

    2.5 配置从节点

    vi /usr/local/dsj/hadoop-2.7.1/etc/hadoop/slaves
    

    更改配置如下:

    slave1
    slave2
    

    2.6 拷贝主节点文件到从节点

    (1)主节点拷贝hadoop文件到从节点

    scp -r /usr/local/dsj/hadoop-2.7.1/ slave1:/usr/local/dsj/
    scp -r /usr/local/dsj/hadoop-2.7.1/ slave2:/usr/local/dsj/
    

    (2)主节点拷贝环境变量到从节点

    scp /etc/profile slave1:/etc/profile
    scp /etc/profile slave2:/etc/profile
    

    3 配置slaver

    以下均在从节点服务器上操作。

    在slave1、slave2节点上执行如下操作,使从主节点拷贝到从节点上的环境变量生效:

    source /etc/profile
    

    4 格式化节点

    master节点上执行操作,格式化节点:

    /usr/local/dsj/hadoop-2.7.1/bin/hdfs namenode -format
    

    5 测试

    (1)启动hdfs

    start-dfs.sh
    

    (2)启动yarn

    start-yarn.sh
    

    6 优化

    (1)core-site.xml增加配置

    <!-- 流文件的缓冲区 128K(默认4K) -->
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
    

    (2)hdfs-site.xml增加配置

    <!-- 缺省文件块大小128MB(默认64M)-->
    <property>
        <name>dfs.block.size</name>
        <value>134217728</value>
    </property>
    <!-- NameNode 节点上面为处理datanode节点来来气的远程调用的服务线程数量(默认10) -->
    <property>
        <name>dfs.namenode.handler.count</name>
        <value>64</value>
    </property>
    

    (3)mapred-site.xml增加配置

    <!-- Map任务的中间结果是否进行压缩,减少网络带宽压力-->
    <property>
        <name>mapreduce.map.output.compress</name>
        <value>true</value>
    </property>
    <!-- 压缩方式 -->
    <property>
        <name>mapreduce.map.output.compress.codec</name>
        <value>org.apache.hadoop.io.compress.SnappyCodec</value>
    </property>
    <!-- map任务需要的内存大小-->
    <property>
        <name>mapreduce.map.memory.mb</name>
        <value>2048</value>
    </property>
    <!-- map任务需要的虚拟机核数(默认1) -->
    <property>
        <name>mapreduce.map.cpu.vcores</name>
        <value>1</value>
    </property>
    <!-- reduce需要的内存大小-->
    <property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>2048</value>
    </property>
    <!-- reduce需要的内存核数(默认1) -->
    <property>
        <name>mapreduce.reduce.cpu.vcores</name>
        <value>1</value>
    </property>
    

    相关文章

      网友评论

        本文标题:centos7安装分布式hadoop

        本文链接:https://www.haomeiwen.com/subject/vfymlktx.html