此文獻給正打算入門大數據的朋友:大數據學習筆記1000條(2)

501、MapReduce計算框架中的輸入和輸出的基本數據結構是鍵-值對。

502、Hadoop神奇的一部分在於sort和shuffle過程。

503、Hive驅動計算的“語言”是一XML形式編碼的。

504、Hive通過和Jobtracker通信來初始化MapReduce任務(Job)。

505、Metastore(元數據存儲)是一個獨立的關係型數據庫。

很多初學者,對大數據的概念都是模糊不清的,大數據是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大數據學習qq羣:458345782,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大數據講師給大家免費授課,給大家分享目前國內最完整的大數據高端實戰實用學習流程體系

506、Pig常用於ETL(數據抽取、數據轉換、數據裝載)。

507、Hadoop團隊通常會將Hive和Pig結合使用。

508、Hive無法提供數據庫特性(如行級別更新,快速查詢響應和支持事務)。

509、HBase的設計靈感來自goole的bigTable。

510、HBase面向列存儲,列組成列族。

511、HBase對每個列保留多個版本。

512、HBase使用HDFS來持久化存儲數據。

513、將程序設計成驅動,比較方便移植。

514、HBase沒有提供SQL語言。

515、Hadoop面向批處理系統。

516、CLI是我們使用Hive的最常用方式。

517、Jobtracker管理着Job,而HDFS則由namenode管理。

518、元數據存儲中存儲了表的模式和分區信息等元數據。

519、Hive會將輸出寫到標準輸出中。

520、–e執行字符串包含的命令。

521、–s去掉ok。

522、–f執行文件。

523、如果查詢中的表名和這個例子並不相關,我們有時候會使用src。

524、用戶可以使用上下鍵來滾動查詢歷史命令。

525、用!執行bash shell命令。

526、Hive Cli 可執行Hadoop的dfs命令。

527、Hive本身提供了不同時區互相轉換的內置函數。

528、Hive中的列支持使用strct、map和arry集合數據類型。

529、Hive中並沒有鍵的概念。

530、Hive不會再數據加載時進行驗證,而是在查詢時進行。

531、Hive中數據庫的概念本質上僅僅是表的一個目錄式命名空間。

532、Hive會爲每個數據接庫創建一個目錄。

533、數據庫的文件目錄名是以.db結尾。

534、Hive中並沒有嵌套數據庫的概念。

535、Hive不允許用戶刪除一個包含有表的數據庫。

536、Hive會自動增加兩個表屬性:last_modified_by|last_modified_time。

537、Hive總是將創建的表的目錄放置在這個所屬的數據庫目錄之後。

538、Show tables命令可以列舉出所有的表。

539、管理表(內布表)不方便和其他工作共享數據。

540、Exte Nal告訴Hive這個表示外部表。

541、Location 告訴Hive數據位於哪個路徑下。

542、因爲表示外部的,所以Hive並非人爲其完全擁有這份數據。

543、有些Hive QL並不使用外部表。

544、分區字段,表現得舊和普通的字段一樣。

545、對數據進行分區,也許最重要的原因是爲了更快地查詢。

546、通過show partitions命令查看錶中存在的所有分區。

547、Hive沒有行級操作。

548、Hive通常指定的路徑應該是一個目錄,而不是單獨的文件。

549、Hive要求源文件和目標文件以及目錄應該在同一個文件系統中。

550、指定overwrite關鍵字,目標文件之前存在的會被刪除。

551、Hive並不會驗證用戶裝載的數據和表的模式是否匹配。

552、Hive會驗證文件格式是否和表結構定義的一致。

553、INSERT語句允許用戶通過查詢語句向目標表中插入數據。

554、靜態分區鍵必須出現在動態分區鍵之前。

555、Hive中沒有臨時表的概念。

556、Select是sql中的射影算子。

557、可用正則來選舉我們想要的列。

558、Float和double相比較會出現問題。

559、RLike可用正則指定匹配條件。

560、Hive目前不支持on中的or。

561、視圖可以允許保存一個查詢並像對待表一樣對這查詢進行操作。

562、Hive值有有限的索引功能。

563、Bitmap索引普遍應用於排重後值較少的列。

564、Hive中分區的功能是非常有用的。

565、每個task都是一個新的Jvm實例,都需要開啓和銷燬的開銷。

566、分區提供一個隔離數據和優化查詢的便遍歷的方式。

567、分桶是將數據集分解或更容易管理的若干部分的另一種技術。

568、Hive提供了serde抽象,其用於從輸入中提取數據。

569、一個serDe通常是從左向右進行解析的。

570、Hive提供了一個列式SerDe來以混合列式格式存儲信息。

571、Hive中通常使用“UDF”來表示任意的函數(用戶自定義函數)。

572、Streaming提供了另一種處理數據的方式。

573、Hive中文件格式間具有明顯的差異。

574、Hive文本文件格式選擇和記錄格式是對應的。

575、SequenceFile可以在塊級別和記錄級別進行壓縮。

576、對於列式存儲而言,進行壓縮通常會非常高效。

577、Hive功能強大的一個方面體現在不同的存儲格式間轉換數據非常地簡單。

578、SerD是序列化/反序列化的簡寫形式。

579、Hive引擎使用定義的InputFormat來讀取一行數據記錄。

580、Thrift是一個軟件框架,其用於跨語言的服務開發。

581、HiveServer使用Thrift提供服務。

582、存儲處理程序是一個結合InputFormat、OutPutFormat、SerDe和Hive需要使用的特定的代碼。

583、存儲處理程序負責從底層存儲系統中讀取或寫入數據。

584、Hadoop起源於Apache Nutch的子項目。

585、HBase彌補了Hadoop只能離線批處理的不足。

586、HBase能夠存儲小文件,提供海量數據的隨機檢查。

587、大數據強調3v特徵:即Volume(量級)、Varity(種類)和Velocity(速度)。

588、結構優化,質量提高,是一種實現實質性的跨越式的進程。

589、NoSQL是Not only SQL,泛指非關係型數據庫。

590、NoSQL的實現具有兩個特徵:使用硬盤和把隨機存儲器作存儲載體。

591、NoSQL的Cache是記錄級的,是一種粗粒度的Cache。

592、NoSQL無須事先爲要存儲的數據建立字段,隨時可以存儲自定義的數據格式。

593、HBase是一個高可靠、高性能、面向列、可伸縮的分佈式數據庫。

594、HBase是NoSQL數據庫。

595、HBase可以通過行健(RowKey)檢索數據,僅支持單行事務,主要用於存儲非結構化和半結構化的鬆散數據。

596、HBase的單表可以有百億行,百萬列。

597、HBase是面向列的存儲和權限控制,並支持列獨立檢索。

598、HBase嚴重依賴Hadoop的HDFS組件。

599、MapReduce可以直接訪問HBase。

600、HBase中最重要的訪問方式是原生Java API。

601、客戶端Client是整個HBase系統的入口。

602、HMaster主要負責Table和Region的管理工作。

603、HRegionServer主要負責響應用戶I/O請求。

604、HStore存儲是HBase存儲的核心。

605、HStore兩部分:Memstore和StoreFile。

606、當StoreFile文件增長到一定閥值,會觸發CompCut。

607、HBase的同一個表的記錄可以有不一樣的列。

608、HBase中最基本的單元是列。

609、每一個行的行健是唯一的。

610、HBase中的表有若干行,每行有很多列,列中的值有多個版本,每個版本的值稱爲一個單元格,單元格存不同的列值。

611、HBase稱爲無模式數據庫的原因是HBase的表沒有列定義,沒有類型。

612、創建連接是一項非常消耗資源的工作。

613、HBase爲我們提供了一個連接池。

614、行鍵是按字段排序由低到高存儲在表中。

615、HBase中行鍵是唯一的索引。

616、HBase中的列族是一些列的集合。

617、一個列族中所有列成員有着相同的前綴。

618、一個列族的成員在文件系統上都是存儲在一起的。

619、在創建表的時候至少指定一個列族。

620、修改列族要先停用表。

621、HBase中的單元格由行鍵、列族、列、時間戳唯一確定。

622、單元格的內容是不可分別的字節數組。

623、每個單元格都保存着同一份數據的多個版本。

624、時間戳是64位的整數。

625、HBase對數據模型4個操作包括:Get、Put、Scan和Delete。

626、多用戶多線程對統一行的讀寫操作都不會影響該行數據的原子性。

627、Get方法獲取數據時,HBase返回的結果包含所有匹配的單元格數據。

628、Result實例中包含列族、列限定符和時間戳等。

629、Put操作要麼向表增加新行,要麼更新行。

630、Put操作每次都會發起一次到服務器的RPC操作。

631、HBase客戶端有一個緩衝區,大大提高寫入性能。

632、HBase提供compare-and-set先檢查,再執行。

633、HBase沒有update操作。

634、Scan操作允許多行特定屬性迭代。

635、HBase的Delete操作可以指定刪除某個列族或者某個列,或某時間更早的數據。

636、HBase的Delete操作並不是真正地從磁盤刪除數據。

637、RowKey、Column、Version組合在一起稱爲HBase的一個單元格。

638、Version用一個長整型表示(時間)。

639、Get是在Scan的基礎上實現的。

640、一個put操作會爲一個Cell創建一個版本,默認使用當前時間戳。

641、刪除操作的實現是創建一個墓碑標記。

642、Get和Scan操作返回的是經過排序的數據。

643、返回的數據首選按行字典序排序,其次是列族、然後是列修飾符,最後的時間戳逆序。

644、獲取列族的完整列名的唯一方法是處理所有行。

645、HBase不支持連接查詢,即Join查詢。

646、ICV(HBase計數器)操作發送在RegionServer上。

647、事務特性ACID,如HBase這種NoSQL數據庫僅提供對行級別的原子性。

648、HBase不是一個具備完整ACID特性的數據庫。

649、HBase中一個表的數據會被劃分成很多的Region。

650、剛剛穿件的表只有一個Region。

651、每一個Region由一個RegionServer管理。

652、每個Region包含起始RowKey的記錄,不包含結束RowKey的記錄。

653、Region的拆分與轉移是由HBase自動完成。

654、CAP原理是數據庫軟件的理論基礎。

655、HBase爲了擴展性和性能考慮,弱化了事務性。

656、RowKey是不可分割的字節數,按字典排序由低到高存儲在表中。

657、RowKey決定了訪問HBase表時可以得到的性能。

658、Region基於Rowkey爲一個區間的行提供服務。

659、Hfile在硬盤上存儲有序的行。

660、HBase只能在RowKey上建立索引。

661、RowKey優化:

1、字典排序

2、進行散列

3、儘量短

662、列族是一些列的集合。

663、一個列族的所有列成員有着相同的前綴。

664、列族的前綴必須是可輸出的字符。

665、列族必須在表建立的時候聲明,列在用戶隨時可以創建。

666、在物理上,一個列族的成員在文件系統上都存儲在一起。

667、Flush和Compaction操作式針對一個Region的。

668、考慮Flush性能,列族數量越少越好。

669、HFile數據塊大小可以在列族層次設置。

670、數據塊索引存儲每個HFile數據塊的起始鍵。

671、布隆過濾器(Bloom Filter)允許對存儲在每個數據塊的數據做一個反向測驗。

672、HFile可以被壓縮並存放在HDFS上。

673、HBase的每個單元格只維護三個時間版本。

674、CRUD操作式HTable最基本的功能,其中的每類方法都包含多種實現。

675、Java客戶端有兩種查詢數據的方式:單行讀和掃描讀。

676、每類操作的不同實現方法應用在不同的場景下。

677、HBaseAdmin類是HBase數據庫的管理入口類。

678、Scan類中的主要實現方法可以劃分成三類:

1、添加列或列族

2、設置查詢屬性

3、查看屬性信息

679、整個刪除過程分爲三步:

1、初始化Table實例

2、構造實體類Delete,Delete封裝行鍵、列族或列名

3、執行刪除

680、HBase提供了若干封裝類用於“無縫”連接MapReduce。

681、從HBase表彙總讀取數據,使用MapReduce計算完成之後,將數據存儲到其他介質中。

682、NoSQL不使用SQL作爲查詢語言。

683、創建外部表適用於某表HBase已經存在,但在Hive中沒有相關信息。

684、字符串類型是Redis中最基本的數據類型。

685、所有Redis命令都是原子操作。

686、Redis提供了4個命令可以直接對二進制位進行操作。

687、Redis是採用字典結構以鍵值對的形式存儲數據的。

688、一個散列類型鍵可以包含至多2的32次方減去1個字段。

689、散列類型適合存儲對象。

690、大數據所面對的問題是:一是存儲,二是計算。

691、大數據的定義是發現潛在規律和趨勢。

692、谷歌三大論文:1)GFS、2)MapReduce、3)BigTable。

693、Hadoop是一個批處理系統,不擅長實時計算。

694、YARN是通用的資源管理系統。

695、機器學習算法通常需要對同一個數據集合進行多次迭代計算。

696、RDD彈性分佈式數據集(Resillient Distributed DataSet)。

697、Spark支持檢查點(checkpoint)的容錯機制。

698、RDD支持的方法:

1、轉換(Traansformation) ——生產新的RDD

2、動作(Action) ——返回一個非RDD

699、Spark沒有存儲能力,僅做數據倉庫。

700、MapReduce依附於Yarn來運行。

701、Zookeeper的節點必須是奇數個。

702、Standalone模式下,集羣可以容許某一個或多個工作節點失效。

703、Hadoop:HDFS、MapReduce、YARN。

704、Spark可以單獨使用HDFS或YARN。

705、由YARN統一負載分配資源科避免分配混亂。

706、Spark程序由master還是YARN來調度執行,是由spark程序在提交時決定的。

707、只有在交互需求是才使用yarn-client方式。

708、切片,本地模式默認去CPU的核算。

709、每個Job的執行,都會經歷序列化,網絡傳輸,反序列化和運行的過程。

710、在序列化是,spark會將Job運行所依賴的變量、方法(稱爲閉包)全部打包在一起。

711、如果RDD多次迭代,可將其持久化。

712、在Zookeeper模式下,恢復期間新任務無法提交。

713、RDD特點:1)只讀、2)可緩存、3)可以通過重新計算得到。

714、Kafk是一個分佈式、分區、重複提交的日誌服務。

715、Kafka掌管的類別消息叫做主題(topics)。

716、生產者發佈消息到kafka主題中。

717、消費者訂閱主題以及處理髮布的消息。

718、Kafka每個服務器叫做broker。

719、主題是一個類別或者被髮布消息的名稱。

720、Kafka集羣根據時間保留消息,而不是是否被消費。

721、消費者可以隨時添加和移除。

722、生產者發佈數據到他們選定的主題上。

723、消費者、消息處理通常有兩種模式。:隊列和發佈-訂閱。

724、在隊列模式中,一組消費者可能從服務器讀取消息,每個消息被其中一個消費者消費。

725、在發佈-訂閱模式中:消費者是廣播到全部的消費者中。

726、消費者用一個消費組名稱來標識自己。

727、Kafka能夠提供順序保證並在一組消費者處理過程中均衡負載。

728、Kafka可以替換傳統的消息代理。

729、Kafka可以媲美傳統的消息系統例如:ActiveMQ和RabitMQ。

730、Kafka通常用於操作監測數據的處理。

731、Kafka作爲日誌聚合的一種解決方案。

732、Zookeeper典型應用場景:配置文件的管理,集羣管理,分佈式隊列,同步鎖leader選舉,隊列管理等。

733、Zookeeper是分佈式服務框架。

734、dataMonitor類是本程序Zookeeper邏輯的核心。

735、Zookeeper是一個基於觀察者模式設計的分佈式服務管理框架。

736、分佈式應用中通常需要有一套完整的命名規則。

737、Netty高性能的NIO框架。

738、Netty快速開發高性能,高可靠性的網絡服務器和客戶端程序。

739、Netty是一個網絡通信框架。

740、NIO是一個面向塊的I/O系統。

741、NIO核心對象:緩衝區(Buffer),通道(Channel),選擇器(Selecter)。

742、在NIO庫中,所有數據都是用緩衝處理的。

743、Netty是事件驅動的。

744、Git是一個開源的分佈式版本控制系統。

745、Kafka系統的角色:

1、Borker:一臺kafka服務器就是一個broker。

2、Topic:可以理解爲一個MQ消息隊列的名字。

746、Java程序設計語言、虛擬機、API類庫統稱JDK。

747、Jdk是用於支持Java程序開發的最小環境。

748、JRE是支持Java程序運行的標準環境。

749、Java技術體系可分爲4個平臺:Java Card、Me、Se、EE。

750、Hadoop每個切片構建一個map任務。

751、Map輸出是中間結果,reduce產出最終輸出結果。

752、集羣上的帶寬限制了MapReduce的作業的數量。

753、HDFS中fsck指令可以顯示塊信息。

754、Namenode之間需要通過高可用的共享存儲實現編輯日誌的共享。

755、Datanode需要同時向連個namenode發送數據塊處理報告。

756、超級用戶是namenode進程的標識。

757、Seek()方法是一個相對高開銷的操作。

758、FileSystem是一個通用的文件系統Api。

759、HDFS只允許對一個打開的文件順序寫入,或者在現有文件的末尾追加數據。

760、FileStatus封裝了文件系統中問價和目錄的元數據。

761、過濾器有path表示,只能作用域文件名。

762、Hadoop無法自行第一網絡拓撲結構。

763、DFSoutputstream將寫入分成一個個的數據包,並寫入內部隊列,稱爲“數據隊列”。

764、文件系統的一致模型描述了文件讀/寫的數據可見性。

765、HDFS爲性能犧牲了一些Posix要求(可移植操作系統接口)。

766、HDFS提供一個方法來使所有緩存與數據節點強行同步。

767、Flume是一個將大規模流數據導入HDFS的工具。

768、Flume節點允許以任何拓撲方式進行組織。

769、當一個字段中包含多個類型時,ObjectWritable非常有用。

770、Avro是一個獨立於編程語言的數據序列化系統。

771、Avro模式通常用Json來寫,數據通常採用二進制格式來編碼。

772、Avro數據文件時可切分的,適合MapReduce快速處理。

773、SeQuenceFile是可以看做小文件的容器。

774、MapFile是已經排序過的SequenceFile,它有索引,所以可以按鍵查找。

775、Hadoop提供了鉤子(hook)來輔助分析過程。

776、Mini集羣廣泛應用於Hadoop自帶的自動測試包中。

777、作業歷史包括已完成作業的時間和配置信息。

778、MapReduce任務日誌可以從web界面訪問。

779、複雜的作業通常是增加更多的作業,而不是增加作業的複雜度。

780、Jobcontrol的實例表示一個作業的運行圖。

781、在Ooize中,工作流是一個由動作(action)節點和控制流節點組成的DAG。

782、Ooize提供了一組與工作流交互的函數。

783、TaskRunner啓動了一個新的Jvm裏運行每個任務。

784、YARN將Jobtracker的職能劃分多個獨立的實體。

785、YARN集羣上可以運行不同版本的MapReduce。

786、每個map任務都有一個環形內存緩存區用於存儲任務的輸出。

787、在本地作業運行器上運行時,只支持0個或1個reduce。

788、一個輸入切片(split)就是一個由單個map操作來處理的輸入塊。

789、切片並不包含數據本身,而是指向數據的引用。

790、Jobtracker使用其存儲位置信息來調度map任務從而在tasktracker上處理這些切片數據。

791、Reduce輸入的鍵一定是有序的。

792、Hadoop爲每個作業維護若干內置計數器,以描述多項指標。

793、任務計數器由其關聯任務維護,並定期發送給tasktracker,再有tasktracker發送給Jobtracker。

794、“邊數據”是作業所需的額外的只讀數據。

795、Hadoop還爲mapper和reduce提供了一個包含了常用函數的庫。

796、Hadoop使用dfs。Mapred,rpc和jvm四個上下文根。

797、FileContext將度量寫到一個本地文件中。

798、Ganglia是一個針對超大規模的開源的分佈式監控系統。

799、Hadoop包括多個託管bean(MBean),可以將hadoop度量發佈給支持JMX的應用。

800、Didtcp是一個理想的備份工具。

801、HDFS能夠容忍datanode故障,但這並不意味着允許隨意終止datanode。

802、Shell for((i0;i<n;i++))。

803、Break n跳出幾層循環。

804、For I in {1 .、4}。

805、Unset 刪除一個元素。

806、Nohup 保持後臺允許。

807、>覆蓋,>>追加。

808、0、1、2標準輸入正確,錯誤輸出。

809、Ls >/de/null 深淵。

810、Linux默認無回收站。

811、–e執行轉義字符。

812、Fsimage:元數據鏡像文件。

813、目前HDFS不支持斷點續傳。

814、最後塊不足夠,則按實際打下存儲。

815、HAR是一個目錄結構。

816、Namenode兩種狀態:Active和standly。

817、Namenode同步數據通過Journanodes集羣。

818、Namenode切換,自動和手工切換。

819、MapReduce是分佈式並行計算模型,用於解決海量數據問題。

820、Hive操作流程:

1、提交SQL 交給驅動

2、驅動編譯解析相關字段

3、去metastore查詢相關信息

4、編譯返回信息,發給驅動

5、驅動發一個執行計劃

6、DDLS對數據庫表操作

7、吧Job交給Jobtracker讓tasktracker執行

8、完成Job返回數據信息,找namenode查數據

9、Dfs ops直接和namenode交互

821、Hive dfs ls 查看hadoop系統。

822、Hive無刪除語句,用replace實現。

823、Replace很危險,不建議使用。

824、Hive刪字段,大多數情況重建表。

825、桶表時對數據進行哈希取值,然後放到不同文件中存儲。

826、桶表應用於抽樣查詢,加載文件分文件存儲。

827、使用視圖可以降低查詢複雜度。

828、索引是對數記錄偏移量。

829、分區字段字段建索引。

830、建索引會引發MapReduce計算。

831、裝載數據:1)本地文件加載方式,2)查詢裝載。

832、動態分區加載方式。

833、Hive是讀模式。

834、RDBMS是寫模式。

835、Hive不支持對單行操作,只支持覆蓋和追加。

836、每個HStore對應了Table中的一個列族的存儲。

837、HStore是HBase存儲的核心:HFile、memstore。

838、HLog用於數據還原。

839、HFile是不定長的。

840、CSV是逗號分隔符的文件。

841、Hive分析HBase,只要表映射即可。

842、列族優化:

1、隨機查詢:數據塊越少,索引越大,佔用內存也越大

2、順序查詢:更好的順序掃描需要更大的數據塊

843、布隆:有問題反饋,無問題不反饋。

844、HBase刪除數據時先標記合併刪除。

845、HBase熱點優化,創建分區。

846、Solr可以實現全文搜索。

847、Solr可以方便實現站內搜索功能。

848、Solr是通過http協議處理搜索和查詢請求。

849、Solr是一個索引庫。

850、線性的訪問磁盤,很多時候比隨機訪問內存塊。

851、Kafka將數據分段,爲每個段建立索引。

852、索引分兩部分:offset和position。

853、Storm處理高頻數據和大規模數據。

854、Storm由用戶自定義處流程。

855、Stream ——一列火車。

856、Tuple ——一節車廂。

857、數據 ——乘客。

858、Bolt ——對tuple中數據進行處理 中間站。

859、Spout ——源頭,相當於火車的始發站。

860、Toplogy ——軌道。

861、Storm 主-從結構。

862、主節點:nimbus,負責分發代碼,分配任務。

863、從節點:supervisor,負責產生worker,執行任務。

864、Storm集羣的運行依賴於Zookeeper。

865、Executor是一個被worker進程啓動的單獨線程。

866、Task是最終運行spout或bolt中代碼的執行單元。

867、Slots就是work進程。

868、將數據按類型分組。

869、Storm流分組:1)隨機 負載均衡,2)字段 類型分組。

870、Work掛掉,storm會重新啓動一個進程,數據不會丟失。

871、Storm不支持HA(目前)。

872、每個work都有一個ack/fail確認機制。

873、Trident是對storm進行封裝的一個框架。

874、ES也是對Luncene的封裝,天生爲分佈式而生。

875、ES基於Restful接口。

876、Hadoop RPC調用是基於Probobuf實現的。

877、Client protocol定義了所有由客戶端發起的,由namenode響應的操作:

1、HDFS文件讀相關的操作

2、HDFS文件寫以及追加寫的相關操作

3、管理HDFS命名空間(namenode)的相關操作

4、系統問題與管理相關的操作

5、快照相關操作

6、緩存相關操作

7、其他

878、FileSystem:

1、HDFS文件讀操作

2、HDFS文件寫與追加操作

3、命名空間的管理操作

879、DFSAdmin:對系統問題管理相關操作。

880、處於安全模式(safemode)中的namenode不接受客戶端對命名空間的修改操作,只讀。

881、剛剛啓動的namenode直接自動進入安全模式。

882、必須在安全模式的兩個操作:

1、‘-savenamespace’用於將整個命名空間保存到新的fsimage文件中

2、‘-rolledits’則會觸發重置editlog文件

883、Refreshnodes()方法會觸發namenode刷新數據節點列表。

884、Findizeupgrade()和rollingupgrade()操作都是與namenode升級相關。

885、快照保存了一個實踐點上HDFS摸個路徑中所有數據的拷貝。

886、快照可以將失效的集羣回滾到之前一個正常的時間點上。

887、創建快照之前,先開啓目錄的快照功能。

888、HDFS 2.3版本添加了集中式緩存管理功能:

1、Cache directive:表示要被緩存到內存的文件或目錄

2、Cache pool:用於管理一系列的cache directive類似於命名空間

889、Datanode使用DatanodeProtocol接口與namenode握手註冊,發送心跳進行全量以及增量的數據彙報。

890、DatanodeProtocol三種方法類型:

1、Datanode啓動相關

2、心跳相關

3、數據塊讀寫相關

891、Datnode啓動操作會與namenode進行四次交互:

1、與namenode握手

2、註冊上的datanode

3、彙報數據塊

4、緩存所有數據塊

892、分佈式系統的節點之間大多采用心跳維護節點的健康狀態。

893、InterDatanodeProtocol(DN與DN之間接口),主要用於租約恢復操作。

894、客戶端打開一個文件進行寫操作是,首先獲取租約,並定期更新租約。

895、NamenodeProtocol定義了第二namenode與namenode之間的接口。

896、HDFS除了RPC調用還定義了流式接口(TCP/HTTP)。

897、Hadoop RPC不足以支持大文件讀寫。

898、HDFS客戶端讀取一個HDFS文件流程 :

1、打開HDFS文件

2、從namenode獲取datanode地址

3、連接到datanode讀取數據塊

4、關閉輸入流

899、數據塊的應答包中不僅包含了數據,還包含了校驗值。

900、HDFS客戶端寫入一個HDFS文件的流程:

1、創建文件

2、建立數據流管道

3、通過數據流管道寫入數據

4、關閉輸入流並提交文件

901、HDFS追加文件流程:

1、打開已有的HDFS文件

2、建立數據流管道

3、通過數據流管道寫入數據

4、關閉輸入流並提交文件

902、對於命名空間的一致性,兩個namenode都需要與一組獨立運行的節點(Journalnode,JNS)通信。

903、ZKFailovercontroller負責維護HA。

904、RPC(Remote Procedure Call protocol),遠程過程調用協議。

905、Hadoop RPC框架底層採用Java NIO,Java動態代理以及protobuf等。

906、RPC框架:

1、通信模塊

2、客戶端stub程序

3、服務器端stub程序

4、請求程序

5、服務程序

907、客戶端的stub可以看作是一個代理對象。

908、Hadoop RPC 框架的使用抽象:

1、定義RPC協議

2、實現RPC協議

3、客戶端獲取代理對象

4、服務端啓動並構造RPC servers

909、Namenode:

1、文件系統目錄樹管理

2、數據塊以及數據節點管理

3、租約管理:namenode給予租約持有者在規定時間內擁有文件權限的合同

4、緩存管理

5、Fsnamesystem

Namenode的啓動和停止

910、HDFS文件系統的命名空間是以/爲根的整個目錄樹,是通過FSDirectory類來管理的。

911、HDFS中文件與目錄都被當做系統目錄樹的一個INode節點。

912、HDFS會將命名空間保存到namenode的本地系統上一個叫fsimage的文件彙總。

913、FSDirectory維護者文件系統目錄樹的節點。

914、INode get方法:

1、Username

2、Groupnode

3、Fspermission

4、Allfeature:安全相關

5、Modification

6、Accesstime

7、Sattrfeature:擴展屬性

915、HDFS的檢查點機制會定時將editlog文件與fsimage文件合併以產生新的fsimage文件。

916、非HA,檢查點操作由secondary namenode來執行。

917、Namenode維護着HDFS中連個最重要的關係:

1、HDFS文件系統的目錄樹以及文件的數據塊索引

2、數據塊和數據節點的對應關係

918、當namenode發生錯誤並今夕了Active與standly切換時,多餘的副本不能直接刪除,先彙報再從隊列中移除。

919、數據塊副本狀態:

1、正常副本

2、損壞副本

3、多餘副本

4、等待刪除副本

5、等待刪除副本

6、等待複製副本

7、正在複製副本

8、推遲操作副本

920、數據副本的刪除情況:

1、數據塊所屬的HDFS文件被刪除

2、數據塊的副本數量多於配置表

3、副本被namenode標記損壞副本

921、在HDFS中,客戶端寫文件時需要先從租約管理器中申請一個租約。

922、Namenode啓動時會首先加載命名空間鏡像併合並編輯日誌。

923、預防腦裂,HDFS提供三個級別的隔離機制:

1、共享存儲隔離

2、客戶端隔離

3、Datanode隔離

924、HA管理命令的執行是由HAAdmin爲負責的。

925、Namenode三個類:

1、Namenode類

2、nameNode Rpcserver

3、FSNamesystem類

926、塊池:一個塊池由屬於同一個命名空間的所有數據塊組成。

927、命名空間卷:一個namenode管理的命名空間以及它對應的塊池一起被稱爲命名空間卷。

928、每個塊池都是一個獨立的數據塊集合。

929、Datanode從邏輯上可切分幾個模塊:

1、數據層

2、邏輯層:向NN彙報,心跳,掃描損壞數據塊

3、服務器

930、Datanode升級需要考慮:

1、版本兼容性問題

2、升級消耗的硬盤空間問題

3、回滾要求

931、Datanode兩個管理功能:

1、管理與組織磁盤存儲目錄

2、管理與組織數據塊及其元數據文件

932、Storedirectory:

1、獲取文件夾相關

2、加鎖/解鎖

3、存儲狀態恢復

933、集中式緩存由分佈在datanode上的對外內存組成,同時被namenode統一管理。

934、數據包:

1、數據包頭

2、校驗數據

3、實際數據

935、Java NIO零拷貝模式。

936、Datanode掃描器同期驗證datanode上存儲的數據塊正確性。

937、HDFS目前提供三個客戶端接口:

1、distributedFileSystem

2、FSShell

3、DFSAdmin

938、DFSClient是用戶使用HDFS各項功能的起點。

939、HDFS管理員通過DFSAdmin工具管理與配置HDFS。

940、HDFS目前實現的讀操作有三個層次:

1、網絡讀:socket

2、短路讀:同一節點

3、零拷貝讀:緩存轉換

941、Shuffle和sort階段負責執行兩個主要動作:

1、決定哪個reducer接收map輸出的鍵值對(切片)

2、並確定傳輸給reducer的鍵值對是進行排序的

942、MapReduce是基於批處理的框架,不適合實時訪問數據。

943、Hadoop配置文件:

1、Hadoop-env.sh ——設置環境變量

2、Core-site.xml ——系統級的Hadoop配置項

3、Hdfs-site.xml ——HDFS配置

4、Mapred-site.xml ——HDFS設置

5、Master ——Hadoop的master主機列表

6、Slaves ——Hadoop的slave主機地址列表

944、Flume四個組件:

1、Nodes ——flume數據路徑

2、Agents ——從本地主機上收集流數據

3、Collectors ——彙總來自代理的數據

4、Master——執行配置管理任務

945、Flume以Avro Json格式寫數據。

946、Agent數據接收器是Agent數據源的目的地。

947、Flume數據源:

1、Text ——處理一次的文本文件,每次處理一行

2、Tail ——爲加入文件的每行生產一個事件

3、Multitail ——tail工具支持多文件處理

4、Syslogudp ——處理syslogUDP消息

5、syslogTcp ——處理sysLogTcp消息

6、execperiodic ——任意命令定期執行,整個輸出是一個事件

7、execstream ——執行任意指令,每行是一個獨立事件

8、exec ——定期執行任意指令並確定整個輸出的每行事件

9、scribe ——處理scrive collection 系統生產的數據

948、Collector數據接收器支持多種事件輸入格式:

1、Syslog ——輸出類似syslog格式的事件

2、Log4j ——輸出類似Hadoop log4j 格式的事件

3、avroJson——輸出進過Avro編碼的json格式的數據

4、avrodata ——輸出經過avro二進制編碼的數據

5、debug ——僅在調試時使用

6、raw——只輸出事件本身,不包含元數據

949、spark編程模型是彈性分佈式數據集,他是MapReduce模型的擴展和延伸。

950、RDD記錄血統,而不是真正數據。

951、Spark四類操作:

1、創建操作:用於RDD創建工作

2、轉換操作:RDD變換成新的RDD

3、控制操作:RDD持久化

4、行爲操作:能夠觸發spark運行的操作

952、調度器安裝DAG進行計算,並最終得到目標RDD。

953、RDD模型將計算分解爲多個相互獨立的細粒度任務。

954、Spark中提供了通用接口來抽象每個RDD

1、分區信息:它們是數據集的最小分片

2、依賴關係:指向其父RDD

3、函數:基於RDD計算方法

4、劃分策略和數據位置的元數據

955、RDD操作中用戶可以使用Partition方法獲取RDD劃分的分區數。

956、Spark中RDD計算是以分區爲單位的。

957、Spark默認連個劃分器:哈希分區和範圍分區。

958、Hadoop中的每一個HDFS數據塊都稱爲一個RDD分區。

959、Map/mapPartitions作用每個元素,每個分區。

960、Checkpoint將切斷與該RDD之前的依賴關係。

961、Spark基本概念:

1、Application ——用戶編寫的spark應用程序

2、Driver ——application的main創建sparkContext

3、Cluster manager ——指在集羣上獲取資源的外部服務

4、Standlone ——spark原生的資源管理

5、Hadoop YARN

6、Worl ——工作節點

7、Master ——總控進程

8、Executor ——執行進程

962、Spark定義了通信框架接口,這些接口實現中調用netty的具體方法。

963、Shuffle寫有基於哈希和排序兩種方式。

964、Clustermanager提供了資源的分配和管理。

965、資源分配和調度的基本單位是container。

966、在YARN中,每個application實例都有一個application master進程。

967、Application master是application啓動的第一個容器,它負責和resourceManager打交道並請求資源。

968、Spark SQL執行過程:

1、詞法和語法解析

2、綁定

3、優化4、執行

969、Spark 提供了兩種方式將RDD轉換成DataFrame:

1、通過定義 case class ,使用反射推斷schema

2、通過編程接口,定義schema,並應用到RDD上

970、YARN拆分Jobtracker的兩大職責:資源管理,作業調度/監控:

1、全局的resource Manager

2、每個應用對應的Application Master

971、Resource Manager擁有爲系統中的所有應用的資源分配的決定權。

972、Container爲應用程序授予在特定主機上使用資源全權利。

973、YARN三種調度器:

1、FIFO調度器

2、Capacity調度器

3、Fair調度器

974、Storm一個work進程執行的是一個topplpgy的子集。

975、Executor是一個被work進程啓動的單獨線程。

976、Work之間通信是通過Netty進行通信的。

977、Stream grouping:

1、Shuffle ——隨機分組

2、Fields ——按字段分組

3、All ——廣播發送

4、Non ——隨機分配

5、Diret ——直接分組

978、Task是運行spout或bolt中的線程。

979、Strom的核心:

1、主節點 ——Nimbus

2、工作節點——supervisor

3、協調器——Zookeeper

4、工作進程——worker

5、任務線程——task

980、Storm三大應用:

1、信息流處理

2、持續計算

3、分佈式遠程調用

981、提交一個Topology之後,storm創建spout/bolt實例big進行序列化。

982、流是一個分佈式並行創建和處理的×××的連續元組。

983、Storm數據傳輸利用的是zmq開源的消息傳遞框架。

984、Topology是由stream grouping鏈接起來的spout和bolt節點網絡。

985、Tupe可以理解成鍵值對,即Fields和values。

986、Tuple的asked,faild都由spout發出並維護的。

987、本地模式:storm用一個進程紅的線程模擬所有spout/bolt。

988、Nimbus和supervisor之間的通信依賴Zookeeper完成。

989、用戶畫像是一個實際用戶的虛擬代表,如年齡,性別等。

990、在機器學習中,對象是指含有一組特徵的行變量。

991、行變量的集合最容易構造的結構就是表。

992、Hadoop有三種令牌:

1、委託令牌

2、塊訪問令牌

3、作業令牌

993、對事物運動這種不確定性(隨機性)的度量就是概率論。

994、大數據4V:

1、Volume ——數據體量大

2、Variety ——數據類型繁多

3、Velocity ——處理速度快

4、Value ——商業價值高

995、移動互聯網產生了和客戶緊密擁綁的大數據。

996、在互聯網這個產業鏈中,誰掌握了用戶,誰的天下。

997、消費者的注意力和使用習慣去了哪裏,錢就會流向哪裏。

998、體驗的產生是一個藝術的過程。

999、大數據的目標是定位。

1000、建立一個學習型企業架構。

很多初學者,對大數據的概念都是模糊不清的,大數據是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大數據學習qq羣:458345782,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大數據講師給大家免費授課,給大家分享目前國內最完整的大數據高端實戰實用學習流程體系
96 正在簡書上學習
2018.11.08 09:24 字數 11814 閱讀 0評論 0喜歡 0
編輯文章
501、MapReduce計算框架中的輸入和輸出的基本數據結構是鍵-值對。

502、Hadoop神奇的一部分在於sort和shuffle過程。

503、Hive驅動計算的“語言”是一XML形式編碼的。

504、Hive通過和Jobtracker通信來初始化MapReduce任務(Job)。

505、Metastore(元數據存儲)是一個獨立的關係型數據庫。

很多初學者,對大數據的概念都是模糊不清的,大數據是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大數據學習qq羣:458345782,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大數據講師給大家免費授課,給大家分享目前國內最完整的大數據高端實戰實用學習流程體系

506、Pig常用於ETL(數據抽取、數據轉換、數據裝載)。

507、Hadoop團隊通常會將Hive和Pig結合使用。

508、Hive無法提供數據庫特性(如行級別更新,快速查詢響應和支持事務)。

509、HBase的設計靈感來自goole的bigTable。

510、HBase面向列存儲,列組成列族。

511、HBase對每個列保留多個版本。

512、HBase使用HDFS來持久化存儲數據。

513、將程序設計成驅動,比較方便移植。

514、HBase沒有提供SQL語言。

515、Hadoop面向批處理系統。

516、CLI是我們使用Hive的最常用方式。

517、Jobtracker管理着Job,而HDFS則由namenode管理。

518、元數據存儲中存儲了表的模式和分區信息等元數據。

519、Hive會將輸出寫到標準輸出中。

520、–e執行字符串包含的命令。

521、–s去掉ok。

522、–f執行文件。

523、如果查詢中的表名和這個例子並不相關,我們有時候會使用src。

524、用戶可以使用上下鍵來滾動查詢歷史命令。

525、用!執行bash shell命令。

526、Hive Cli 可執行Hadoop的dfs命令。

527、Hive本身提供了不同時區互相轉換的內置函數。

528、Hive中的列支持使用strct、map和arry集合數據類型。

529、Hive中並沒有鍵的概念。

530、Hive不會再數據加載時進行驗證,而是在查詢時進行。

531、Hive中數據庫的概念本質上僅僅是表的一個目錄式命名空間。

532、Hive會爲每個數據接庫創建一個目錄。

533、數據庫的文件目錄名是以.db結尾。

534、Hive中並沒有嵌套數據庫的概念。

535、Hive不允許用戶刪除一個包含有表的數據庫。

536、Hive會自動增加兩個表屬性:last_modified_by|last_modified_time。

537、Hive總是將創建的表的目錄放置在這個所屬的數據庫目錄之後。

538、Show tables命令可以列舉出所有的表。

539、管理表(內布表)不方便和其他工作共享數據。

540、Exte Nal告訴Hive這個表示外部表。

541、Location 告訴Hive數據位於哪個路徑下。

542、因爲表示外部的,所以Hive並非人爲其完全擁有這份數據。

543、有些Hive QL並不使用外部表。

544、分區字段,表現得舊和普通的字段一樣。

545、對數據進行分區,也許最重要的原因是爲了更快地查詢。

546、通過show partitions命令查看錶中存在的所有分區。

547、Hive沒有行級操作。

548、Hive通常指定的路徑應該是一個目錄,而不是單獨的文件。

549、Hive要求源文件和目標文件以及目錄應該在同一個文件系統中。

550、指定overwrite關鍵字,目標文件之前存在的會被刪除。

551、Hive並不會驗證用戶裝載的數據和表的模式是否匹配。

552、Hive會驗證文件格式是否和表結構定義的一致。

553、INSERT語句允許用戶通過查詢語句向目標表中插入數據。

554、靜態分區鍵必須出現在動態分區鍵之前。

555、Hive中沒有臨時表的概念。

556、Select是sql中的射影算子。

557、可用正則來選舉我們想要的列。

558、Float和double相比較會出現問題。

559、RLike可用正則指定匹配條件。

560、Hive目前不支持on中的or。

561、視圖可以允許保存一個查詢並像對待表一樣對這查詢進行操作。

562、Hive值有有限的索引功能。

563、Bitmap索引普遍應用於排重後值較少的列。

564、Hive中分區的功能是非常有用的。

565、每個task都是一個新的Jvm實例,都需要開啓和銷燬的開銷。

566、分區提供一個隔離數據和優化查詢的便遍歷的方式。

567、分桶是將數據集分解或更容易管理的若干部分的另一種技術。

568、Hive提供了serde抽象,其用於從輸入中提取數據。

569、一個serDe通常是從左向右進行解析的。

570、Hive提供了一個列式SerDe來以混合列式格式存儲信息。

571、Hive中通常使用“UDF”來表示任意的函數(用戶自定義函數)。

572、Streaming提供了另一種處理數據的方式。

573、Hive中文件格式間具有明顯的差異。

574、Hive文本文件格式選擇和記錄格式是對應的。

575、SequenceFile可以在塊級別和記錄級別進行壓縮。

576、對於列式存儲而言,進行壓縮通常會非常高效。

577、Hive功能強大的一個方面體現在不同的存儲格式間轉換數據非常地簡單。

578、SerD是序列化/反序列化的簡寫形式。

579、Hive引擎使用定義的InputFormat來讀取一行數據記錄。

580、Thrift是一個軟件框架,其用於跨語言的服務開發。

581、HiveServer使用Thrift提供服務。

582、存儲處理程序是一個結合InputFormat、OutPutFormat、SerDe和Hive需要使用的特定的代碼。

583、存儲處理程序負責從底層存儲系統中讀取或寫入數據。

584、Hadoop起源於Apache Nutch的子項目。

585、HBase彌補了Hadoop只能離線批處理的不足。

586、HBase能夠存儲小文件,提供海量數據的隨機檢查。

587、大數據強調3v特徵:即Volume(量級)、Varity(種類)和Velocity(速度)。

588、結構優化,質量提高,是一種實現實質性的跨越式的進程。

589、NoSQL是Not only SQL,泛指非關係型數據庫。

590、NoSQL的實現具有兩個特徵:使用硬盤和把隨機存儲器作存儲載體。

591、NoSQL的Cache是記錄級的,是一種粗粒度的Cache。

592、NoSQL無須事先爲要存儲的數據建立字段,隨時可以存儲自定義的數據格式。

593、HBase是一個高可靠、高性能、面向列、可伸縮的分佈式數據庫。

594、HBase是NoSQL數據庫。

595、HBase可以通過行健(RowKey)檢索數據,僅支持單行事務,主要用於存儲非結構化和半結構化的鬆散數據。

596、HBase的單表可以有百億行,百萬列。

597、HBase是面向列的存儲和權限控制,並支持列獨立檢索。

598、HBase嚴重依賴Hadoop的HDFS組件。

599、MapReduce可以直接訪問HBase。

600、HBase中最重要的訪問方式是原生Java API。

601、客戶端Client是整個HBase系統的入口。

602、HMaster主要負責Table和Region的管理工作。

603、HRegionServer主要負責響應用戶I/O請求。

604、HStore存儲是HBase存儲的核心。

605、HStore兩部分:Memstore和StoreFile。

606、當StoreFile文件增長到一定閥值,會觸發CompCut。

607、HBase的同一個表的記錄可以有不一樣的列。

608、HBase中最基本的單元是列。

609、每一個行的行健是唯一的。

610、HBase中的表有若干行,每行有很多列,列中的值有多個版本,每個版本的值稱爲一個單元格,單元格存不同的列值。

611、HBase稱爲無模式數據庫的原因是HBase的表沒有列定義,沒有類型。

612、創建連接是一項非常消耗資源的工作。

613、HBase爲我們提供了一個連接池。

614、行鍵是按字段排序由低到高存儲在表中。

615、HBase中行鍵是唯一的索引。

616、HBase中的列族是一些列的集合。

617、一個列族中所有列成員有着相同的前綴。

618、一個列族的成員在文件系統上都是存儲在一起的。

619、在創建表的時候至少指定一個列族。

620、修改列族要先停用表。

621、HBase中的單元格由行鍵、列族、列、時間戳唯一確定。

622、單元格的內容是不可分別的字節數組。

623、每個單元格都保存着同一份數據的多個版本。

624、時間戳是64位的整數。

625、HBase對數據模型4個操作包括:Get、Put、Scan和Delete。

626、多用戶多線程對統一行的讀寫操作都不會影響該行數據的原子性。

627、Get方法獲取數據時,HBase返回的結果包含所有匹配的單元格數據。

628、Result實例中包含列族、列限定符和時間戳等。

629、Put操作要麼向表增加新行,要麼更新行。

630、Put操作每次都會發起一次到服務器的RPC操作。

631、HBase客戶端有一個緩衝區,大大提高寫入性能。

632、HBase提供compare-and-set先檢查,再執行。

633、HBase沒有update操作。

634、Scan操作允許多行特定屬性迭代。

635、HBase的Delete操作可以指定刪除某個列族或者某個列,或某時間更早的數據。

636、HBase的Delete操作並不是真正地從磁盤刪除數據。

637、RowKey、Column、Version組合在一起稱爲HBase的一個單元格。

638、Version用一個長整型表示(時間)。

639、Get是在Scan的基礎上實現的。

640、一個put操作會爲一個Cell創建一個版本,默認使用當前時間戳。

641、刪除操作的實現是創建一個墓碑標記。

642、Get和Scan操作返回的是經過排序的數據。

643、返回的數據首選按行字典序排序,其次是列族、然後是列修飾符,最後的時間戳逆序。

644、獲取列族的完整列名的唯一方法是處理所有行。

645、HBase不支持連接查詢,即Join查詢。

646、ICV(HBase計數器)操作發送在RegionServer上。

647、事務特性ACID,如HBase這種NoSQL數據庫僅提供對行級別的原子性。

648、HBase不是一個具備完整ACID特性的數據庫。

649、HBase中一個表的數據會被劃分成很多的Region。

650、剛剛穿件的表只有一個Region。

651、每一個Region由一個RegionServer管理。

652、每個Region包含起始RowKey的記錄,不包含結束RowKey的記錄。

653、Region的拆分與轉移是由HBase自動完成。

654、CAP原理是數據庫軟件的理論基礎。

655、HBase爲了擴展性和性能考慮,弱化了事務性。

656、RowKey是不可分割的字節數,按字典排序由低到高存儲在表中。

657、RowKey決定了訪問HBase表時可以得到的性能。

658、Region基於Rowkey爲一個區間的行提供服務。

659、Hfile在硬盤上存儲有序的行。

660、HBase只能在RowKey上建立索引。

661、RowKey優化:

1、字典排序

2、進行散列

3、儘量短

662、列族是一些列的集合。

663、一個列族的所有列成員有着相同的前綴。

664、列族的前綴必須是可輸出的字符。

665、列族必須在表建立的時候聲明,列在用戶隨時可以創建。

666、在物理上,一個列族的成員在文件系統上都存儲在一起。

667、Flush和Compaction操作式針對一個Region的。

668、考慮Flush性能,列族數量越少越好。

669、HFile數據塊大小可以在列族層次設置。

670、數據塊索引存儲每個HFile數據塊的起始鍵。

671、布隆過濾器(Bloom Filter)允許對存儲在每個數據塊的數據做一個反向測驗。

672、HFile可以被壓縮並存放在HDFS上。

673、HBase的每個單元格只維護三個時間版本。

674、CRUD操作式HTable最基本的功能,其中的每類方法都包含多種實現。

675、Java客戶端有兩種查詢數據的方式:單行讀和掃描讀。

676、每類操作的不同實現方法應用在不同的場景下。

677、HBaseAdmin類是HBase數據庫的管理入口類。

678、Scan類中的主要實現方法可以劃分成三類:

1、添加列或列族

2、設置查詢屬性

3、查看屬性信息

679、整個刪除過程分爲三步:

1、初始化Table實例

2、構造實體類Delete,Delete封裝行鍵、列族或列名

3、執行刪除

680、HBase提供了若干封裝類用於“無縫”連接MapReduce。

681、從HBase表彙總讀取數據,使用MapReduce計算完成之後,將數據存儲到其他介質中。

682、NoSQL不使用SQL作爲查詢語言。

683、創建外部表適用於某表HBase已經存在,但在Hive中沒有相關信息。

684、字符串類型是Redis中最基本的數據類型。

685、所有Redis命令都是原子操作。

686、Redis提供了4個命令可以直接對二進制位進行操作。

687、Redis是採用字典結構以鍵值對的形式存儲數據的。

688、一個散列類型鍵可以包含至多2的32次方減去1個字段。

689、散列類型適合存儲對象。

690、大數據所面對的問題是:一是存儲,二是計算。

691、大數據的定義是發現潛在規律和趨勢。

692、谷歌三大論文:1)GFS、2)MapReduce、3)BigTable。

693、Hadoop是一個批處理系統,不擅長實時計算。

694、YARN是通用的資源管理系統。

695、機器學習算法通常需要對同一個數據集合進行多次迭代計算。

696、RDD彈性分佈式數據集(Resillient Distributed DataSet)。

697、Spark支持檢查點(checkpoint)的容錯機制。

698、RDD支持的方法:

1、轉換(Traansformation) ——生產新的RDD

2、動作(Action) ——返回一個非RDD

699、Spark沒有存儲能力,僅做數據倉庫。

700、MapReduce依附於Yarn來運行。

701、Zookeeper的節點必須是奇數個。

702、Standalone模式下,集羣可以容許某一個或多個工作節點失效。

703、Hadoop:HDFS、MapReduce、YARN。

704、Spark可以單獨使用HDFS或YARN。

705、由YARN統一負載分配資源科避免分配混亂。

706、Spark程序由master還是YARN來調度執行,是由spark程序在提交時決定的。

707、只有在交互需求是才使用yarn-client方式。

708、切片,本地模式默認去CPU的核算。

709、每個Job的執行,都會經歷序列化,網絡傳輸,反序列化和運行的過程。

710、在序列化是,spark會將Job運行所依賴的變量、方法(稱爲閉包)全部打包在一起。

711、如果RDD多次迭代,可將其持久化。

712、在Zookeeper模式下,恢復期間新任務無法提交。

713、RDD特點:1)只讀、2)可緩存、3)可以通過重新計算得到。

714、Kafk是一個分佈式、分區、重複提交的日誌服務。

715、Kafka掌管的類別消息叫做主題(topics)。

716、生產者發佈消息到kafka主題中。

717、消費者訂閱主題以及處理髮布的消息。

718、Kafka每個服務器叫做broker。

719、主題是一個類別或者被髮布消息的名稱。

720、Kafka集羣根據時間保留消息,而不是是否被消費。

721、消費者可以隨時添加和移除。

722、生產者發佈數據到他們選定的主題上。

723、消費者、消息處理通常有兩種模式。:隊列和發佈-訂閱。

724、在隊列模式中,一組消費者可能從服務器讀取消息,每個消息被其中一個消費者消費。

725、在發佈-訂閱模式中:消費者是廣播到全部的消費者中。

726、消費者用一個消費組名稱來標識自己。

727、Kafka能夠提供順序保證並在一組消費者處理過程中均衡負載。

728、Kafka可以替換傳統的消息代理。

729、Kafka可以媲美傳統的消息系統例如:ActiveMQ和RabitMQ。

730、Kafka通常用於操作監測數據的處理。

731、Kafka作爲日誌聚合的一種解決方案。

732、Zookeeper典型應用場景:配置文件的管理,集羣管理,分佈式隊列,同步鎖leader選舉,隊列管理等。

733、Zookeeper是分佈式服務框架。

734、dataMonitor類是本程序Zookeeper邏輯的核心。

735、Zookeeper是一個基於觀察者模式設計的分佈式服務管理框架。

736、分佈式應用中通常需要有一套完整的命名規則。

737、Netty高性能的NIO框架。

738、Netty快速開發高性能,高可靠性的網絡服務器和客戶端程序。

739、Netty是一個網絡通信框架。

740、NIO是一個面向塊的I/O系統。

741、NIO核心對象:緩衝區(Buffer),通道(Channel),選擇器(Selecter)。

742、在NIO庫中,所有數據都是用緩衝處理的。

743、Netty是事件驅動的。

744、Git是一個開源的分佈式版本控制系統。

745、Kafka系統的角色:

1、Borker:一臺kafka服務器就是一個broker。

2、Topic:可以理解爲一個MQ消息隊列的名字。

746、Java程序設計語言、虛擬機、API類庫統稱JDK。

747、Jdk是用於支持Java程序開發的最小環境。

748、JRE是支持Java程序運行的標準環境。

749、Java技術體系可分爲4個平臺:Java Card、Me、Se、EE。

750、Hadoop每個切片構建一個map任務。

751、Map輸出是中間結果,reduce產出最終輸出結果。

752、集羣上的帶寬限制了MapReduce的作業的數量。

753、HDFS中fsck指令可以顯示塊信息。

754、Namenode之間需要通過高可用的共享存儲實現編輯日誌的共享。

755、Datanode需要同時向連個namenode發送數據塊處理報告。

756、超級用戶是namenode進程的標識。

757、Seek()方法是一個相對高開銷的操作。

758、FileSystem是一個通用的文件系統Api。

759、HDFS只允許對一個打開的文件順序寫入,或者在現有文件的末尾追加數據。

760、FileStatus封裝了文件系統中問價和目錄的元數據。

761、過濾器有path表示,只能作用域文件名。

762、Hadoop無法自行第一網絡拓撲結構。

763、DFSoutputstream將寫入分成一個個的數據包,並寫入內部隊列,稱爲“數據隊列”。

764、文件系統的一致模型描述了文件讀/寫的數據可見性。

765、HDFS爲性能犧牲了一些Posix要求(可移植操作系統接口)。

766、HDFS提供一個方法來使所有緩存與數據節點強行同步。

767、Flume是一個將大規模流數據導入HDFS的工具。

768、Flume節點允許以任何拓撲方式進行組織。

769、當一個字段中包含多個類型時,ObjectWritable非常有用。

770、Avro是一個獨立於編程語言的數據序列化系統。

771、Avro模式通常用Json來寫,數據通常採用二進制格式來編碼。

772、Avro數據文件時可切分的,適合MapReduce快速處理。

773、SeQuenceFile是可以看做小文件的容器。

774、MapFile是已經排序過的SequenceFile,它有索引,所以可以按鍵查找。

775、Hadoop提供了鉤子(hook)來輔助分析過程。

776、Mini集羣廣泛應用於Hadoop自帶的自動測試包中。

777、作業歷史包括已完成作業的時間和配置信息。

778、MapReduce任務日誌可以從web界面訪問。

779、複雜的作業通常是增加更多的作業,而不是增加作業的複雜度。

780、Jobcontrol的實例表示一個作業的運行圖。

781、在Ooize中,工作流是一個由動作(action)節點和控制流節點組成的DAG。

782、Ooize提供了一組與工作流交互的函數。

783、TaskRunner啓動了一個新的Jvm裏運行每個任務。

784、YARN將Jobtracker的職能劃分多個獨立的實體。

785、YARN集羣上可以運行不同版本的MapReduce。

786、每個map任務都有一個環形內存緩存區用於存儲任務的輸出。

787、在本地作業運行器上運行時,只支持0個或1個reduce。

788、一個輸入切片(split)就是一個由單個map操作來處理的輸入塊。

789、切片並不包含數據本身,而是指向數據的引用。

790、Jobtracker使用其存儲位置信息來調度map任務從而在tasktracker上處理這些切片數據。

791、Reduce輸入的鍵一定是有序的。

792、Hadoop爲每個作業維護若干內置計數器,以描述多項指標。

793、任務計數器由其關聯任務維護,並定期發送給tasktracker,再有tasktracker發送給Jobtracker。

794、“邊數據”是作業所需的額外的只讀數據。

795、Hadoop還爲mapper和reduce提供了一個包含了常用函數的庫。

796、Hadoop使用dfs。Mapred,rpc和jvm四個上下文根。

797、FileContext將度量寫到一個本地文件中。

798、Ganglia是一個針對超大規模的開源的分佈式監控系統。

799、Hadoop包括多個託管bean(MBean),可以將hadoop度量發佈給支持JMX的應用。

800、Didtcp是一個理想的備份工具。

801、HDFS能夠容忍datanode故障,但這並不意味着允許隨意終止datanode。

802、Shell for((i0;i<n;i++))。

803、Break n跳出幾層循環。

804、For I in {1 .、4}。

805、Unset 刪除一個元素。

806、Nohup 保持後臺允許。

807、>覆蓋,>>追加。

808、0、1、2標準輸入正確,錯誤輸出。

809、Ls >/de/null 深淵。

810、Linux默認無回收站。

811、–e執行轉義字符。

812、Fsimage:元數據鏡像文件。

813、目前HDFS不支持斷點續傳。

814、最後塊不足夠,則按實際打下存儲。

815、HAR是一個目錄結構。

816、Namenode兩種狀態:Active和standly。

817、Namenode同步數據通過Journanodes集羣。

818、Namenode切換,自動和手工切換。

819、MapReduce是分佈式並行計算模型,用於解決海量數據問題。

820、Hive操作流程:

1、提交SQL 交給驅動

2、驅動編譯解析相關字段

3、去metastore查詢相關信息

4、編譯返回信息,發給驅動

5、驅動發一個執行計劃

6、DDLS對數據庫表操作

7、吧Job交給Jobtracker讓tasktracker執行

8、完成Job返回數據信息,找namenode查數據

9、Dfs ops直接和namenode交互

821、Hive dfs ls 查看hadoop系統。

822、Hive無刪除語句,用replace實現。

823、Replace很危險,不建議使用。

824、Hive刪字段,大多數情況重建表。

825、桶表時對數據進行哈希取值,然後放到不同文件中存儲。

826、桶表應用於抽樣查詢,加載文件分文件存儲。

827、使用視圖可以降低查詢複雜度。

828、索引是對數記錄偏移量。

829、分區字段字段建索引。

830、建索引會引發MapReduce計算。

831、裝載數據:1)本地文件加載方式,2)查詢裝載。

832、動態分區加載方式。

833、Hive是讀模式。

834、RDBMS是寫模式。

835、Hive不支持對單行操作,只支持覆蓋和追加。

836、每個HStore對應了Table中的一個列族的存儲。

837、HStore是HBase存儲的核心:HFile、memstore。

838、HLog用於數據還原。

839、HFile是不定長的。

840、CSV是逗號分隔符的文件。

841、Hive分析HBase,只要表映射即可。

842、列族優化:

1、隨機查詢:數據塊越少,索引越大,佔用內存也越大

2、順序查詢:更好的順序掃描需要更大的數據塊

843、布隆:有問題反饋,無問題不反饋。

844、HBase刪除數據時先標記合併刪除。

845、HBase熱點優化,創建分區。

846、Solr可以實現全文搜索。

847、Solr可以方便實現站內搜索功能。

848、Solr是通過http協議處理搜索和查詢請求。

849、Solr是一個索引庫。

850、線性的訪問磁盤,很多時候比隨機訪問內存塊。

851、Kafka將數據分段,爲每個段建立索引。

852、索引分兩部分:offset和position。

853、Storm處理高頻數據和大規模數據。

854、Storm由用戶自定義處流程。

855、Stream ——一列火車。

856、Tuple ——一節車廂。

857、數據 ——乘客。

858、Bolt ——對tuple中數據進行處理 中間站。

859、Spout ——源頭,相當於火車的始發站。

860、Toplogy ——軌道。

861、Storm 主-從結構。

862、主節點:nimbus,負責分發代碼,分配任務。

863、從節點:supervisor,負責產生worker,執行任務。

864、Storm集羣的運行依賴於Zookeeper。

865、Executor是一個被worker進程啓動的單獨線程。

866、Task是最終運行spout或bolt中代碼的執行單元。

867、Slots就是work進程。

868、將數據按類型分組。

869、Storm流分組:1)隨機 負載均衡,2)字段 類型分組。

870、Work掛掉,storm會重新啓動一個進程,數據不會丟失。

871、Storm不支持HA(目前)。

872、每個work都有一個ack/fail確認機制。

873、Trident是對storm進行封裝的一個框架。

874、ES也是對Luncene的封裝,天生爲分佈式而生。

875、ES基於Restful接口。

876、Hadoop RPC調用是基於Probobuf實現的。

877、Client protocol定義了所有由客戶端發起的,由namenode響應的操作:

1、HDFS文件讀相關的操作

2、HDFS文件寫以及追加寫的相關操作

3、管理HDFS命名空間(namenode)的相關操作

4、系統問題與管理相關的操作

5、快照相關操作

6、緩存相關操作

7、其他

878、FileSystem:

1、HDFS文件讀操作

2、HDFS文件寫與追加操作

3、命名空間的管理操作

879、DFSAdmin:對系統問題管理相關操作。

880、處於安全模式(safemode)中的namenode不接受客戶端對命名空間的修改操作,只讀。

881、剛剛啓動的namenode直接自動進入安全模式。

882、必須在安全模式的兩個操作:

1、‘-savenamespace’用於將整個命名空間保存到新的fsimage文件中

2、‘-rolledits’則會觸發重置editlog文件

883、Refreshnodes()方法會觸發namenode刷新數據節點列表。

884、Findizeupgrade()和rollingupgrade()操作都是與namenode升級相關。

885、快照保存了一個實踐點上HDFS摸個路徑中所有數據的拷貝。

886、快照可以將失效的集羣回滾到之前一個正常的時間點上。

887、創建快照之前,先開啓目錄的快照功能。

888、HDFS 2.3版本添加了集中式緩存管理功能:

1、Cache directive:表示要被緩存到內存的文件或目錄

2、Cache pool:用於管理一系列的cache directive類似於命名空間

889、Datanode使用DatanodeProtocol接口與namenode握手註冊,發送心跳進行全量以及增量的數據彙報。

890、DatanodeProtocol三種方法類型:

1、Datanode啓動相關

2、心跳相關

3、數據塊讀寫相關

891、Datnode啓動操作會與namenode進行四次交互:

1、與namenode握手

2、註冊上的datanode

3、彙報數據塊

4、緩存所有數據塊

892、分佈式系統的節點之間大多采用心跳維護節點的健康狀態。

893、InterDatanodeProtocol(DN與DN之間接口),主要用於租約恢復操作。

894、客戶端打開一個文件進行寫操作是,首先獲取租約,並定期更新租約。

895、NamenodeProtocol定義了第二namenode與namenode之間的接口。

896、HDFS除了RPC調用還定義了流式接口(TCP/HTTP)。

897、Hadoop RPC不足以支持大文件讀寫。

898、HDFS客戶端讀取一個HDFS文件流程 :

1、打開HDFS文件

2、從namenode獲取datanode地址

3、連接到datanode讀取數據塊

4、關閉輸入流

899、數據塊的應答包中不僅包含了數據,還包含了校驗值。

900、HDFS客戶端寫入一個HDFS文件的流程:

1、創建文件

2、建立數據流管道

3、通過數據流管道寫入數據

4、關閉輸入流並提交文件

901、HDFS追加文件流程:

1、打開已有的HDFS文件

2、建立數據流管道

3、通過數據流管道寫入數據

4、關閉輸入流並提交文件

902、對於命名空間的一致性,兩個namenode都需要與一組獨立運行的節點(Journalnode,JNS)通信。

903、ZKFailovercontroller負責維護HA。

904、RPC(Remote Procedure Call protocol),遠程過程調用協議。

905、Hadoop RPC框架底層採用Java NIO,Java動態代理以及protobuf等。

906、RPC框架:

1、通信模塊

2、客戶端stub程序

3、服務器端stub程序

4、請求程序

5、服務程序

907、客戶端的stub可以看作是一個代理對象。

908、Hadoop RPC 框架的使用抽象:

1、定義RPC協議

2、實現RPC協議

3、客戶端獲取代理對象

4、服務端啓動並構造RPC servers

909、Namenode:

1、文件系統目錄樹管理

2、數據塊以及數據節點管理

3、租約管理:namenode給予租約持有者在規定時間內擁有文件權限的合同

4、緩存管理

5、Fsnamesystem

Namenode的啓動和停止

910、HDFS文件系統的命名空間是以/爲根的整個目錄樹,是通過FSDirectory類來管理的。

911、HDFS中文件與目錄都被當做系統目錄樹的一個INode節點。

912、HDFS會將命名空間保存到namenode的本地系統上一個叫fsimage的文件彙總。

913、FSDirectory維護者文件系統目錄樹的節點。

914、INode get方法:

1、Username

2、Groupnode

3、Fspermission

4、Allfeature:安全相關

5、Modification

6、Accesstime

7、Sattrfeature:擴展屬性

915、HDFS的檢查點機制會定時將editlog文件與fsimage文件合併以產生新的fsimage文件。

916、非HA,檢查點操作由secondary namenode來執行。

917、Namenode維護着HDFS中連個最重要的關係:

1、HDFS文件系統的目錄樹以及文件的數據塊索引

2、數據塊和數據節點的對應關係

918、當namenode發生錯誤並今夕了Active與standly切換時,多餘的副本不能直接刪除,先彙報再從隊列中移除。

919、數據塊副本狀態:

1、正常副本

2、損壞副本

3、多餘副本

4、等待刪除副本

5、等待刪除副本

6、等待複製副本

7、正在複製副本

8、推遲操作副本

920、數據副本的刪除情況:

1、數據塊所屬的HDFS文件被刪除

2、數據塊的副本數量多於配置表

3、副本被namenode標記損壞副本

921、在HDFS中,客戶端寫文件時需要先從租約管理器中申請一個租約。

922、Namenode啓動時會首先加載命名空間鏡像併合並編輯日誌。

923、預防腦裂,HDFS提供三個級別的隔離機制:

1、共享存儲隔離

2、客戶端隔離

3、Datanode隔離

924、HA管理命令的執行是由HAAdmin爲負責的。

925、Namenode三個類:

1、Namenode類

2、nameNode Rpcserver

3、FSNamesystem類

926、塊池:一個塊池由屬於同一個命名空間的所有數據塊組成。

927、命名空間卷:一個namenode管理的命名空間以及它對應的塊池一起被稱爲命名空間卷。

928、每個塊池都是一個獨立的數據塊集合。

929、Datanode從邏輯上可切分幾個模塊:

1、數據層

2、邏輯層:向NN彙報,心跳,掃描損壞數據塊

3、服務器

930、Datanode升級需要考慮:

1、版本兼容性問題

2、升級消耗的硬盤空間問題

3、回滾要求

931、Datanode兩個管理功能:

1、管理與組織磁盤存儲目錄

2、管理與組織數據塊及其元數據文件

932、Storedirectory:

1、獲取文件夾相關

2、加鎖/解鎖

3、存儲狀態恢復

933、集中式緩存由分佈在datanode上的對外內存組成,同時被namenode統一管理。

934、數據包:

1、數據包頭

2、校驗數據

3、實際數據

935、Java NIO零拷貝模式。

936、Datanode掃描器同期驗證datanode上存儲的數據塊正確性。

937、HDFS目前提供三個客戶端接口:

1、distributedFileSystem

2、FSShell

3、DFSAdmin

938、DFSClient是用戶使用HDFS各項功能的起點。

939、HDFS管理員通過DFSAdmin工具管理與配置HDFS。

940、HDFS目前實現的讀操作有三個層次:

1、網絡讀:socket

2、短路讀:同一節點

3、零拷貝讀:緩存轉換

941、Shuffle和sort階段負責執行兩個主要動作:

1、決定哪個reducer接收map輸出的鍵值對(切片)

2、並確定傳輸給reducer的鍵值對是進行排序的

942、MapReduce是基於批處理的框架,不適合實時訪問數據。

943、Hadoop配置文件:

1、Hadoop-env.sh ——設置環境變量

2、Core-site.xml ——系統級的Hadoop配置項

3、Hdfs-site.xml ——HDFS配置

4、Mapred-site.xml ——HDFS設置

5、Master ——Hadoop的master主機列表

6、Slaves ——Hadoop的slave主機地址列表

944、Flume四個組件:

1、Nodes ——flume數據路徑

2、Agents ——從本地主機上收集流數據

3、Collectors ——彙總來自代理的數據

4、Master——執行配置管理任務

945、Flume以Avro Json格式寫數據。

946、Agent數據接收器是Agent數據源的目的地。

947、Flume數據源:

1、Text ——處理一次的文本文件,每次處理一行

2、Tail ——爲加入文件的每行生產一個事件

3、Multitail ——tail工具支持多文件處理

4、Syslogudp ——處理syslogUDP消息

5、syslogTcp ——處理sysLogTcp消息

6、execperiodic ——任意命令定期執行,整個輸出是一個事件

7、execstream ——執行任意指令,每行是一個獨立事件

8、exec ——定期執行任意指令並確定整個輸出的每行事件

9、scribe ——處理scrive collection 系統生產的數據

948、Collector數據接收器支持多種事件輸入格式:

1、Syslog ——輸出類似syslog格式的事件

2、Log4j ——輸出類似Hadoop log4j 格式的事件

3、avroJson——輸出進過Avro編碼的json格式的數據

4、avrodata ——輸出經過avro二進制編碼的數據

5、debug ——僅在調試時使用

6、raw——只輸出事件本身,不包含元數據

949、spark編程模型是彈性分佈式數據集,他是MapReduce模型的擴展和延伸。

950、RDD記錄血統,而不是真正數據。

951、Spark四類操作:

1、創建操作:用於RDD創建工作

2、轉換操作:RDD變換成新的RDD

3、控制操作:RDD持久化

4、行爲操作:能夠觸發spark運行的操作

952、調度器安裝DAG進行計算,並最終得到目標RDD。

953、RDD模型將計算分解爲多個相互獨立的細粒度任務。

954、Spark中提供了通用接口來抽象每個RDD

1、分區信息:它們是數據集的最小分片

2、依賴關係:指向其父RDD

3、函數:基於RDD計算方法

4、劃分策略和數據位置的元數據

955、RDD操作中用戶可以使用Partition方法獲取RDD劃分的分區數。

956、Spark中RDD計算是以分區爲單位的。

957、Spark默認連個劃分器:哈希分區和範圍分區。

958、Hadoop中的每一個HDFS數據塊都稱爲一個RDD分區。

959、Map/mapPartitions作用每個元素,每個分區。

960、Checkpoint將切斷與該RDD之前的依賴關係。

961、Spark基本概念:

1、Application ——用戶編寫的spark應用程序

2、Driver ——application的main創建sparkContext

3、Cluster manager ——指在集羣上獲取資源的外部服務

4、Standlone ——spark原生的資源管理

5、Hadoop YARN

6、Worl ——工作節點

7、Master ——總控進程

8、Executor ——執行進程

962、Spark定義了通信框架接口,這些接口實現中調用netty的具體方法。

963、Shuffle寫有基於哈希和排序兩種方式。

964、Clustermanager提供了資源的分配和管理。

965、資源分配和調度的基本單位是container。

966、在YARN中,每個application實例都有一個application master進程。

967、Application master是application啓動的第一個容器,它負責和resourceManager打交道並請求資源。

968、Spark SQL執行過程:

1、詞法和語法解析

2、綁定

3、優化4、執行

969、Spark 提供了兩種方式將RDD轉換成DataFrame:

1、通過定義 case class ,使用反射推斷schema

2、通過編程接口,定義schema,並應用到RDD上

970、YARN拆分Jobtracker的兩大職責:資源管理,作業調度/監控:

1、全局的resource Manager

2、每個應用對應的Application Master

971、Resource Manager擁有爲系統中的所有應用的資源分配的決定權。

972、Container爲應用程序授予在特定主機上使用資源全權利。

973、YARN三種調度器:

1、FIFO調度器

2、Capacity調度器

3、Fair調度器

974、Storm一個work進程執行的是一個topplpgy的子集。

975、Executor是一個被work進程啓動的單獨線程。

976、Work之間通信是通過Netty進行通信的。

977、Stream grouping:

1、Shuffle ——隨機分組

2、Fields ——按字段分組

3、All ——廣播發送

4、Non ——隨機分配

5、Diret ——直接分組

978、Task是運行spout或bolt中的線程。

979、Strom的核心:

1、主節點 ——Nimbus

2、工作節點——supervisor

3、協調器——Zookeeper

4、工作進程——worker

5、任務線程——task

980、Storm三大應用:

1、信息流處理

2、持續計算

3、分佈式遠程調用

981、提交一個Topology之後,storm創建spout/bolt實例big進行序列化。

982、流是一個分佈式並行創建和處理的×××的連續元組。

983、Storm數據傳輸利用的是zmq開源的消息傳遞框架。

984、Topology是由stream grouping鏈接起來的spout和bolt節點網絡。

985、Tupe可以理解成鍵值對,即Fields和values。

986、Tuple的asked,faild都由spout發出並維護的。

987、本地模式:storm用一個進程紅的線程模擬所有spout/bolt。

988、Nimbus和supervisor之間的通信依賴Zookeeper完成。

989、用戶畫像是一個實際用戶的虛擬代表,如年齡,性別等。

990、在機器學習中,對象是指含有一組特徵的行變量。

991、行變量的集合最容易構造的結構就是表。

992、Hadoop有三種令牌:

1、委託令牌

2、塊訪問令牌

3、作業令牌

993、對事物運動這種不確定性(隨機性)的度量就是概率論。

994、大數據4V:

1、Volume ——數據體量大

2、Variety ——數據類型繁多

3、Velocity ——處理速度快

4、Value ——商業價值高

995、移動互聯網產生了和客戶緊密擁綁的大數據。

996、在互聯網這個產業鏈中,誰掌握了用戶,誰的天下。

997、消費者的注意力和使用習慣去了哪裏,錢就會流向哪裏。

998、體驗的產生是一個藝術的過程。

999、大數據的目標是定位。

1000、建立一個學習型企業架構。

很多初學者,對大數據的概念都是模糊不清的,大數據是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大數據學習qq羣:458345782,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大數據講師給大家免費授課,給大家分享目前國內最完整的大數據高端實戰實用學習流程體系。
此文獻給正打算入門大數據的朋友:大數據學習筆記1000條(2)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章