深刻Hadoop

一、HDFS架構、啓動過程node

  1)開發環境的準備apache

    a.安裝Maven(用於管理項目依賴包)編程

      將apache-maven-3.0.5.tar.gz解壓到/opt/models目錄下緩存

      配置/etc/profile增長MAVEN_HOME和PATH,source /etc/profile服務器

      退出從新登陸mvn -version架構

      建立倉庫目錄~/.m2eclipse

      將repository.tar.gz上傳到/opt/softwares目錄下ssh

      解壓到~/.m2目錄下maven

      cp /opt/modules/apache-maven-3.0.5/conf/settings.xml .tcp

    b.安裝Eclipse

      將tools中的Eclipse壓縮包解壓

      打開虛擬機進入eclipse目錄運行./eclipse

      配置maven爲本身的maven目錄

    c.配置Eclipse與Maven插件

    d.設置Linux下Eclipse快捷鍵

二、HDFS Java API 使用

  1)獲取文件系統

    a.Configuration類  -->Configuration conf = new Configuration();

    b.FileSystem類  -->FileSystem fileSystem = FileSystem.get(conf);  return fileSystem;

  2)獲取輸入流

    a.定義文件名  -->String fileName = "文件路徑";

    b.Path類  -->Path readPath = new Path(fileName);  獲取該文件的路徑

    c.FSDataInputStream inStream = fileSystem.open(readPath);  獲取輸入流(從文件系統中)

    d.FileInputStream inStream = new FileInputStream("文件路徑");  獲取本地文件輸入流

  3)獲取輸出流

    定義文件名putFileName並獲取路徑writePath

    FSDataInputStream outStream = fileSystem.create(writePath);  獲取輸出流

  4)讀和寫流

    try(

      IOUtils.copyBytes(inStream,outStream,4096,false);

    }catch(Exception e){

        e.printStackTrace();

     }final{

       IOUtils.closeStream(inStream);

       IOUtils.closeStream(outStream);

      }

三、YARN架構、應用監控

  1)safemode,namenode啓動後進入safemode,等待datanode發送block report,等到達到閾值0.999後過30s退出safemode

    手動進入safemode模式:bin/hdfs dfsadmin -safemode enter(leave)

四、MapReduce編程模型

  1)一種分佈式計算模型,MapReduce將整個並行計算過程抽象到兩個函數

    a.Map:對一些獨立元素組成的列表的每個元素進行指定的操做,能夠高度並行

    b.Reduce:對一個列表元素進行合併

    c.數據的流向input-->map-->reduce-->output,以<key,value>對的形式流動

  2)

   3)MapReduce中的數據類型:  -->都要實現Writable接口,以便序列化進行傳輸,key要繼承WritableComparable

      a.Text

      b.LongWritable

      c.IntWritable

      d.NullWritable  當key或value值爲空時使用

      e.定義變量-->get,set方法-->構造方法-->重寫equals,hashcode,tostring方法

        -->實現WritableComparable接口中write,readFields,compareTo方法

五、MapReduce Shuffle過程

六、集羣搭建

七、集羣基準測試  --》測試集羣的性能

    a.吞吐量,namenode存儲元數據的性能,yarn跑多個小做業時性能,

    b.監控集羣  cloudera

八、使用ntp配置內網時間同步

    a.以一臺機器做爲時間服務器  -->rpm -qa | grep 'ntp'

      vi /etc/ntp.conf  修改三處

      vi /etc/sysconfig/ntpd  添加一行SYNC_HWCLOCK=yes

      service ntpd start

      chkconfig ntpd on

    b.其餘機器定時同步  -->切換到root用戶寫腳本

      0-59/10 * * * * /usr/sbin/ntpdate localhost

 九、Zookeeper

十、HDFS HA    -->高可用性

    NameNode  Active

    NameNode  Standby

    核心:保證兩個NameNode中的文件系統元數據同步  -->Shared Edits-->jornal node

        時刻知道DataNode的BLock Report    -->同時向兩個NameNode發送報告

    client經過Proxy代理來選擇Namenode,經過Zookeeper實現自動故障轉移

    工做:1)Shared Edits

        2)standby Namenode

        3)proxy        

        4)兩個Namenode的隔離性  -->同時只能有一個Namenode向client提供服務

            使用sshfence的方式須要配置兩個namenode的無密碼登陸

    依賴於zookee來實現自動故障轉移

       a,將namenode從standby轉換爲active

          選舉

      b.監控    -->ZKFC(failure Contronner):是Zookeeper的一個客戶端

十一、中高級特性

  1)federation    -->聯盟,不用應用可使用不一樣的namenode進行數據管理

    多個namenode分別管理各自文件的元數據,數據都存儲在全部的datanode上

  2)Snapshots    -->快照,只讀的基於時間點的文件系統拷貝,只有元數據,沒有數據的快照

  3)集中式緩存管理  -->容許用戶將一部分目錄或文件房子緩存中

  4)Distributed Copy  -->集羣間的數據拷貝  bin/hadoop distcp

      不一樣版本間的Hadoop集羣拷貝走hftp協議

十二、YARN HA

相關文章
相關標籤/搜索