初識Hadoop一,配置及啓動服務

1、Hadoop簡介:html

  Hadoop是由Apache基金會所開發的分佈式系統基礎架構,實現了一個分佈式文件系統(Hadoop Distributed File System),簡稱HDFS;Hadoop框架最核心設計就是HDFS和MapReduce,HDFS爲海量數據提供了存儲,MapReduce爲海量數據提供了計算。java

  Hadoop要解決的問題:海量數據的存儲(HDFS)、海量數據的分析(MapReduce)和資源管理調度(YARN)node

  Hadoop主要做用於分佈式linux

2、Hadoop實現機制apache

  一、Hadoop是把一個文件切割成多個塊(block),分別存儲到不一樣服務器上,並且其中某些服務器又存有這個文件的多個塊,以下圖把文件A分紅4塊(A1\A2\A3\A4)存放在4個服務器上;這樣不只解決了併發請求一個文件時形成的阻塞,增大吞吐量,還作了副本備份服務器

    
  二、Hadoop分佈式部署服務器,那就分主服務器和輔服務器。主服務器也就是NameNode,存儲文件分塊的相關信息,如哪一個塊在哪一個服務器哪一個路徑下,而真正存儲文件的是輔服務器,即DataNode。客戶端請求文件時無需關心如何請求塊,只須要知道HDFS爲文件虛擬的一個文件路徑便可,也就是直接請求NameNode。網絡

  三、Hadoop只有一個NameNode,能夠有多個DataNode,當DataNode不夠用時還能夠添加架構

3、Hadoop安裝、配置及啓動(CentOS7系統)併發

  一、官網下載Hadoop  hadoop-2.7.3.tar.gz框架

  二、須要的軟件環境JDK、SSH、rsync;JDK安裝和部署參照本博文linux學習之系統管理、網絡配置、軟件安裝第九步;ssh、rsync安裝直接用yum install安裝,通常這兩個系統自帶

  二、在/home下新建文件夾hadoop,而後經過FlashFXP工具將下載好的hadoop壓縮包上傳至此文件夾下,使用tar命令解壓

  三、在解壓後的文件下修改配置

    (1)、設置JAVA_HOME環境變量(個人JDK安裝目錄爲/home/jdk/jdk1.8.0_73/)

      vi命令編輯etc/hadoop/hadoop-env.sh,找到相應位置修改以下:

      # The java implementation to use.

      #export JAVA_HOME=${JAVA_HOME}

      export JAVA_HOME=/home/jdk/jdk1.8.0_73

    (2)、編輯文件etc/hadoop/core-site.xml文件,指定默認文件系統和工做空間(如今還路徑下尚未tmp文件夾,執行完hdfs格式化後即可看到相關文件)

      <configuration>

        <property>
          <name>fs.defaultFS</name>
          <value>hdfs://localhost:9000</value>
        </property>

        <property>
          <name>hadoop.tmp.dir</name>
          <value>/home/hadoop/hadoop-2.7.3/tmp/</value>
        </property>

      </configuration>

    (3)、編輯文件etc/hadoop/hdfs-site.xml文件,設置文件副本數,也就是文件分割成塊後,要複製塊個數(因爲此處就本機一個節點,僞分佈式,因此就配置爲1,文件自己,不須要副本)

      <configuration>

        <property>
          <name>dfs.replication</name>
          <value>1</value>
        </property>

      </configuration>

    (4)、編輯文件etc/hadoop/mapred-site.xml文件,此文件其實不存在,二存在mapred-site.xml.template,因此執行命令mv mapred-site.xml.template mapred-site.xml修改此文件名,指定資源調度框架

      <configuration>

        <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
        </property>

      </configuration>

    (5)、編輯文件etc/hadoop/yarn-site.xml文件,yarn也是分佈式管理的,因此配置一個主服務器;而後還要配置中間數據調度的機制

      <configuration>

        <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>localhost</value>
        </property>

        <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
        </property>

      </configuration>

  四、配置完成後,格式化hdfs系統

    hadoop命令通常在bin文件夾下,因此要執行相關命令要在bin目錄下進行操做,爲了之後方便,因此要先把hadoop的bin目錄配置到環境變量中,還有些命令在sbin目錄中,因此也要配置到環境變量

    vi /etc/profile環境變量部分代碼以下

    export JAVA_HOME=/home/jdk/jdk1.8.0_73
    export HADOOP_HOME=/home/hadoop/hadoop-2.7.3/
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    保存後記得用命令source /etc/profile配置當即生效

    (執行前能夠看下hadoop安裝目錄下不存在tmp文件夾)而後執行hadoop namenode -format命令,會發現之前hadoop安裝路徑下不存在tmp文件夾,如今已經有了

  五、啓動HDFS(sbin下有start-dfs.sh)

    HDFS是分佈式系統,因此啓動HDFS時,會啓動配置的各個服務器節點,包括本機,在啓動過程當中是經過ssh遠程操做的,因此在不作特殊配置下,每次啓動到節點(包括本機)相關操做時,都要輸入密碼,若是想避免每次都輸入密碼,可執行下面命令

     ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
      cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
      chmod 0600 ~/.ssh/authorized_keys   
 執行start-dfs.sh啓動HDFS(因爲配置了環境變量,因此能夠直接執行,不用切換到sbin目錄下)

    啓動完後jps命令能夠查看正在啓動的java服務
  

    [root@localhost bin]# jps
    28800 SecondaryNameNode
    28619 DataNode
    28524 NameNode
    29068 Jps
    [root@localhost bin]#

    netstat -nltp命令查看所監聽的端口

    

[root@localhost bin]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:50090 0.0.0.0:* LISTEN 28800/java
tcp 0 0 192.168.36.133:1521 0.0.0.0:* LISTEN 2485/tnslsnr
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 2397/dnsmasq
tcp 0 0 0.0.0.0:50070 0.0.0.0:* LISTEN 28524/java
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1080/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1084/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2263/master
tcp 0 0 0.0.0.0:50010 0.0.0.0:* LISTEN 28619/java
tcp 0 0 0.0.0.0:50075 0.0.0.0:* LISTEN 28619/java
tcp 0 0 127.0.0.1:38242 0.0.0.0:* LISTEN 28619/java
tcp 0 0 0.0.0.0:50020 0.0.0.0:* LISTEN 28619/java
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 28524/java
tcp6 0 0 :::22 :::* LISTEN 1080/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1084/cupsd
tcp6 0 0 :::23 :::* LISTEN 1087/xinetd
tcp6 0 0 ::1:25 :::* LISTEN 2263/master
tcp6 0 0 :::36794 :::* LISTEN 2558/ora_d000_orcl
[root@localhost bin]#

    NameNode和DataNode是經過9000端口通訊的

    50070端口是提供的一個Web頁面,個人系統ip是192.168.36.133,訪問網址http://192.168.36.133:50070/可查看效果

  六、啓動yarn(yarn也是集羣的)

  執行start-yarn.sh命令(在sbin文件夾下),若是前面沒有配置ssh免登陸,也是要輸入登陸密碼的。執行jps命令查看啓動的Java服務,ResourceManager已啓動

[root@localhost home]# jps
4080 Jps
3121 DataNode
3320 SecondaryNameNode
3672 ResourceManager
3768 NodeManager
3021 NameNode
[root@localhost home]#

 到此已經配置啓動完了,下一節開始使用

相關文章
相關標籤/搜索