• Hadoop环境搭建(centos)


    Hadoop环境搭建(centos)

    本平台密码83953588abc

    配置Java环境

    • 下载JDK(本实验从/cgsrc 文件中复制到指定目录)
        mkdir /usr/local/java
        cp /cgsrc/jdk-8u171-linux-x64.tar.gz /usr/local/java/
    

    JDK至少1.8以上!!!

    • 解压JDK安装包
        cd /usr/local/java
        tar -zxvf jdk-8u171-linux-x64.tar.gz
        rm -f jdk-8u171-linux-x64.tar.gz
    
    • 添加环境变量

    配置JAVA_HOME环境变量。修改文件vim ~/.bashrc

        export JAVA_HOME=/usr/local/java/jdk1.8.0_171
        export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar
        export PATH=$PATH:${JAVA_HOME}/bin
    

    如果PATH环境变量修改错误,则可能出现Linux常用命令无法找到的现象!!!

    使修改环境生效,source ~/.bashrc.

    检查是否设置正确.

        echo $JAVA_HOME   #检查变量值
        java -version     #查看java版本
    

    配置分布式模式

    选定一台机器作为名称节点(Master),另外两条作为数据节点(Slave)。

    配置hosts文件

    在Master上修改/etc/hosts文件:

    使用命令vim /etc/hosts

        ip1  master
        ip2  slave1
        ip3  slave2
    

    测试节点之间是否已经联通:

        ping master -c 3
        ping slave1 -c 3
        ping slave2 -c 3
    

    配置SSH无密码登录

    • 必须要让master节点可以SSH无密码登录到各个节点上。首先,生成master节点的公匙,如果之前已经生成过公匙,必须删除原来的公匙,重新生成一次,命令如下:
        cd ~/.ssh  #如果没有该目录,先执行一次ssh localhost
        rm -f ./id_rsa*  #删除之前生成的公匙
        ssh-keygen -t rsa  #执行该命令后,遇到提示信息,均按Enter即可。
    
    • 为了让master节点能无密码SSH登录到本机,需要在mater节点上执行如下 cat ./id_rsa.pub >> ./authorized_keys.

      检测是否成功,ssh master ,遇到提示信息,yes即可, exit退出。

    • 把master上的公匙传输到slave节点:

        scp ~/.ssh/id_rsa.pub root@slave1:/root
        scp ~/.ssh/id_rsa.pub root@slave1:/root
    

    其中本次实验平台,要把slave1、slave2换成相应的IP。

    • 传输完成后在slave1和slave2节点上将SSH公匙加入授权:
        mkdir ~/.ssh
        cat ~/id_rsa.pub >> ~/.ssh/authoried_keys
        rm -f ~/id_rsa.pub
    

    配置环境变量

    • 将Hadoop安装包复制到/usr/local目录上:

      cp /cgsrc/hadoop-2.7.1.tar.gz /usr/local/

    • 解压

        cd /usr/local
        tar -zxvf hadoop-2.7.1.tar.gz
        rm -f hadoop-2.7.1.tar.gz
        mv hadoop-2.7.1/ hadoop  #将hadoop-2.7.1重命名为hadoop
    
    • 配置环境变量
      • 打开~/.bashrc文件

        vim ~/.bashrc
      • 输入以下内容

        export PATH=$PATH:/usr/1ocal/hadoop/bin:/usr/1ocal/hadoop/sbin
      • 文件生效

        source ~/.bashrc
      • 查看hadoop版本

        hadoop version

    配置集群环境

    配置集群环境时,需要修改/usr/local/hadoop/etc/hadoop目录下的配置文件,这里仅设置正常启动必须的设置项,包括slaves、core-site.xml、hdfs
    -site.xml、mapred-site.xml、yarn-site.xml共五个文件。

    • 修改文件slaves

      需要把所有数据节点的主机名写入该文件,每行一个,默认为localhost
      (即把本机作为数据节点)。在进行集群配置时,可以保留localhost,让master节点同时充当名称节点和数据节点,也可以删除localhost这行,让master节点仅作为名称节点使用。
      本节让master节点仅作为名称节点使用,因此将slaves文件中原来的内容删除,添加如下内容:

      slave1

      slave2
    • 修改文件core-site.xml
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://master:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/usr/1ocal/hadoop/tmp</value>
        </property>
    </configuration> 
    
    • 修改文件hdfs-site.xml

      对于Hadoop的分布式文件系统HDFS而言,一般是采用元余存储,冗余因子一般是3,也就是说一份数据保存3份副本。而我们只有两个数据节点,即数据只能保存两份,所以,dfs.replication设置为2,文件具体内容如下:
    <configuration>
        <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
        </property>
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/usr/1ocal/hadoop/tmp/dfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/usr/1ocal/hadoop/tmp/dfs/date</value>
        </property>
    </configuration>
    
    • 修改文件mapred-site.xml

      /usr/local/hadoop/etc/hadoop 目录下有一个mapred-site.xml.template,需要复制该文件为mapred-site.xml:

      cp mapred-site.xml.template mapred-site.xml
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.address</name>
            <value>master:10020</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>master:19888</value>
        </property>
    </configuration>
    
    • 修改文件yarn-site.xml
    <configuration>
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>master</value>
        </property>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
    </configuration>
    

    配置slave节点

    将master节点上的/usr/local/hadoop复制到slave节点上。

        cd /usr/local 
        rm -rf ./hadoop/tmp #删除临时文件
        rm -rf ./hadoop/1ogs/* #删除日志文件
        tar -zcf ~/hadoop.master.tar.gz. /hadoop #先压缩再复制
        cd ~
        scp ./hadoop.master.tar.gz  root@slave1: /root
        scp ./hadoop.master.tar.gz  root@slave2: /root
    

    在slave1和slave2上执行如下命令:

        rm -rf usr/local/hadoop #如果有旧文件则先删除
        tar -zxf ~/hadoop.master.tar.gz -C /usr/1ocal
        rm -f ~/hadoop.master.tar.gz
    

    启动Hadoop集群

    • 首次启动Hadoop集群时,需要先在master节点执行名称节点的格式化:
      hdfs namenode-format
    • 现在可以启动Hadoop了,启动需要在master节点上进行,执行如下命令:
        start-dfs.sh 
        start-yarn.sh 
        mr-jobhistory-daemon.sh start historyserver
    
  • 相关阅读:
    进程与线程的区别与联系
    IPC 进程间通信
    sql中的group by 和 having 用法
    大端小端格式
    Spring AOP的一个比喻和IOC的作用
    volatile变量
    策略模式
    划分算法与快速排序
    希尔排序及希尔排序java代码
    红黑树
  • 原文地址:https://www.cnblogs.com/SmithBee/p/12755990.html
Copyright © 2020-2023  润新知