zoukankan      html  css  js  c++  java
  • 初学hadoop之hadoop集群搭建

    简介:

      Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。  

    Hadoop实现了一个分布式文件系统Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

    Hadoop的框架最核心的设计就是:HDFSMapReduceHDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

    分布式架构的常见概念:

      1.集群

        小饭店原来是一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,这两个厨师的关系就是集群。

      2.分布式 

        为了让厨师专心炒菜,把菜做到极致,又请了个配菜师负责切菜,备菜,备料,厨师和配菜师的关系就是分布式的,一个配菜师也忙不过来,有请了个配菜师,这两个配菜师的关系就是集群了。所以说有分布式的架构中可能有集群,但集群不等于有分布式。

       3.节点

        节点是指一个可以独立按照分布式协议完成一组逻辑的程序个体。在具体的项目中,一个节点表示的是一个操作系统上的进程

    一.hadoop分布式集群的搭建

      我们需要搭建hadoop集群环境首先需要环境的支持

      1.环境支持

        操作系统: CentOS7 64

             JDK环境: JDK 8

             Hadoop环境: hadoop-2.8.0

             虚拟机名称: master(主)+slave1(从1)+slave2(从2)

        首先配置一个静态id

        配置真机网络共享

       配置虚拟机虚拟网络

      

     

      找到系统工具,设置,网络

       将自动改为手动配置如下信息(配置完了重启即可)

      2.设置主机名

        我这里是直接将所有的配置全都配置完克隆了两台slave

    #编辑hostname文件修改主机名称
    vim /etc/hostname

        主就使用命令改为master,从就使用命令改为slave01,slave02

         

         使用命令查看主机名是否修改成功

          注意:如果不成功可能需要重启虚拟机!!!

        hostname

         

       3.安装JDK

        注意:Linux上原来的JDK是不完整的需要我们手动将他们一个个的卸载重新安装我们的JDK

        首先先使用命令查看Linux上原来的JDK

    #查看各自默认安装的JDK
    rpm -qa|grep jdk
    

        

         使用 rpm -e --nodeps命令 一个一个卸载

    rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
    rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
    rpm -e --nodeps java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
    rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
    

        安装我们的JDK,这里我是使用xf工具上传的解压包上传到/usr/local/java

          注意:这里的java路径是我自己创建的

       使用命令解压压缩包

    #解压压缩文件
    tar -zxvf jdk-8u181-linux-x64.tar.gz
    

      

       解压成功后查看目录

      配置JDK

      首先修改ect下的profile文件

    #编辑profile文件
    vim /etc/profile

      加入以下内容,请各位按照自身的安装目录为准

    export JAVA_HOME=/usr/local/jdk1.8.0_121
    export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    

     在文件的最底下添加即可

     

       使用命令刷新一下文件,因为Linux不会自己刷新

    source /etc/profile 
    

      

       输入java -version命令查看是否安装成功

       4.安装并完成hadoop的配置

        使用xf工具将hadoop的压缩包上传到Linux里的usr/local/hadoop(自己创建的)

       使用命令行解压此压缩包

    tar -zxvf hadoop-2.8.0.tar.gz

      

       编辑profile文件也就是配置JDK的文件

    vim /ect/profile
    

      添加如下内容,路径请务必写你自己的

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

      

       添加完成后刷新文件

    source /etc/profile 

      编辑hosts文件,将三台主机的主机名称对应的ip地址写入(我这里还没有后续是直接克隆的)

    #编辑hosts文件
    vim /etc/hosts
    #写入如下内容,注意IP地址以自身为准
    192.168.147.11 master
    192.168.147.12 slave1
    192.168.147.13 slave2

      完成hadoop内部的配置,切换到hadoop2.8的内部文件夹下

    cd /usr/local/hadoop/hadoop-2.8.0/etc/hadoop/

     

       配置slaves文件

    vim slaves

      

       删除掉原有的localhost,添加slave主机名

      

      配置core-site.xml文件

    vim core-site.xml

      configuration节点中加入如下节点

    <property>
         <name>fs.defaultFS</name>
         <value>hdfs://master:9000</value>
    </property>
    <property>
         <name>hadoop.tmp.dir</name>
       <!--视自身的安装位置决定-->
         <value>/usr/local/hadoop-2.8.0/tmp</value> 
    </property>

     

      配置hdfs-site.xml文件

    vim hdfs-site.xml
    

      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/local/hadoop-2.8.0/hdfs/name</value>

    </property>

    <property>

          <name>dfs.datanode.data.dir</name>

          <value>file:/usr/local/hadoop-2.8.0/hdfs/data</value>

    </property>

      

       编辑hadoop-env.sh

       加入以下内容也就是JDK的安装目录

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

      

       编辑yarn-env.sh文件

      

       配置yarn-site.xml

    vim yarn-site.xml

      configuration节点中加入如下内容

    <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</value>
    </property>
    <property>
               <name>yarn.resourcemanager.address</name>
               <value>master:8032</value>
    </property>
    <property>
              <name>yarn.resourcemanager.scheduler.address</name>
              <value>master:8030</value>
    </property>
    <property>  
        <name>yarn.log-aggregation-enable</name>  
        <value>true</value>  
    </property> 
    <property>
             <name>yarn.resourcemanager.resource-tracker.address</name>
             <value>master:8031</value>
    </property>
    <property>
             <name>yarn.resourcemanager.admin.address</name>
             <value>master:8033</value>
    </property>
    <property>
             <name>yarn.resourcemanager.webapp.address</name>
             <value>master:8088</value>
    </property>
    

      配置mapred-site.xml文件

      由于mapred-site.xml文件不存在,需要将mapred-site.xml.template克隆出来一份

    cp mapred-site.xml.template  mapred-site.xml
    vim mapred-site.xml

      加入如下内容

    <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>

      

       5.克隆主机

        

       克隆完了修改静态ip

     

       1、在master主机上运行如下

                hdfs namenode -format

      2、启动服务命令

        start-all.sh 

      3、停止集群的命令

        stop-all.sh

  • 相关阅读:
    解决安装python3后yum不能使用情况
    一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB
    nginx 的基本配置与虚拟主机配置
    /etc/nginx/nginx.conf配置文件详解
    简单使用ab命令压力测试
    死锁和死锁检测
    centos7下搭建消息中间件--RocketMQ
    Centos7.2配置https
    Mysql 通过binlog日志恢复数据
    MySQL主从复制+备份
  • 原文地址:https://www.cnblogs.com/ws1149939228/p/12518416.html
Copyright © 2011-2022 走看看