无套内谢少妇毛片免费看看_人人入人人爱_又粗又大又硬毛片免费看_蜜桃AV无码国产丝袜在线观看

第三周-大數據學習 正式使用 hadoop

2019-10-20 09:11:03



深圳模具-正式學習使用 hadoop 大數據集群


一、HDFS相關命令:

       1、查看HDFS下目錄結構及文件   hdfs dfs -ls -R /

       2、創建文件目錄/tmp    hdfs dfs -mkdir /tmp

       3、刪除/tmp目錄   hdfs dfs -rm -r /tmp

       4、復制當前目錄下a.txts到HDFS文件系統   hdfs dfs -put a.txt /inputFile

       5、列出/tmp目錄   hdfs dfs -ls /tmp

       6、查看/inputFile/a.txt文件內容   hdfs dfs -cat /inputFile/a.txt

       7、查看HDFS狀態   hdfs dfsadmin -report


        用這個命令可以快速定位出哪些節點down掉了,HDFS的容量以及使用了多少,

        以及每個節點的硬盤使用情況。當然NameNode有個http頁面也可以查詢,

        但是這個命令的輸出更適合我們的腳本監控dfs的使用狀況。


        下面是關于 YARN 的操作:      

         yarn.nodemanager.aux-service

                spark_shuffle

                mapreduce_shuffle    要引入對應的架包  

                yarn.nodemanager.aux-services.mapreduce_shuffle.class  

                                采用 FIFO的方式, 這個方式并不好 , 好的方式是 公平調度-Fair .

                org.apache.hadoop.mapred.ShuffleHandler


                yarn.nodemanager.aux-services.spark_shuffle.class

                org.apache.spark.network.yarn.YarnShuffleServic

                FairScheduler.xml

                yarn.scheduler.fair.user-as-default-queue false true

                yarn.scheduler.fair.preemption false true

               yarn.resourcemanager.scheduler

               org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler

               spark.shuffle.service.port 7337



第四周   

              Hbase 。

              Hbase  -> Google bigtable 開源實現   ---2008年---->  apache hadoop 下面的項目   

                               采用的公司 :    Facebook           Intel       yahoo     baidu     alibaba      tencent   360  等等   nosql 數據庫

                               

                           image.png


      image.png


                SQL (Structured Query Language) 數據庫,指關系型數據庫。

                                                                       主要代表:SQL Server,Oracle,MySQL(開源),PostgreSQL(開源)。

          NoSQL(Not Only SQL)泛指非關系型數據庫。

                                                                       主要代表:MongoDB,Redis,CouchDB。 supersech      hbase , kylin ,  chiohouse   phesto


               關系型數據庫的特點:    面向行的,    Nosql 是面向列的。  

               高并發狀態下:      分庫分表    讀寫分離   帶來數據一致性問題 ,海量數據實現出來很復雜,后期遷移也很復雜。

               高可用,可靠性,可伸縮性的措施: 主備 、 主從 、 多主。   本身的可擴展性很差。   增加節點或者宕機要做遷移。  

               Hbase 首先是一個大表。


1.關系型數據庫理論 - ACID

            ACID,是指數據庫管理系統(DBMS)在寫入或更新資料的過程中,為保證事務(transaction)是正確可靠的,

                      所必須具備的四個特性:原子性(atomicity,或稱不可分割性)、一致性(consistency)、

                      隔離性(isolation,又稱獨立性)、持久性(durability)。

                      A – Atomicity – 原子性

                                             一個事務(transaction)中的所有操作,要么全部完成,要么全部不完成,不會結束在中間某個環節。

                                             事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有被執行過一樣。

                      C – Consistency – 一致性

                                             在事務開始之前和事務結束以后,數據庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設規則,

                                              這包含資料的精確度、串聯性以及后續數據庫可以自發性地完成預定的工作。

                      I – Isolation – 隔離性

                                             數據庫允許多個并發事務同時對其數據進行讀寫和修改的能力,隔離性可以防止多個事務并發執行時

                                             由于交叉執行而導致數據的不一致。事務隔離分為不同級別,包括讀未提交(Read uncommitted)、

                                             讀提交(read committed)、可重復讀(repeatable read)和串行化(Serializable)。

                      D – Durability – 持久性

                                             事務處理結束后,對數據的修改就是永久的,即便系統故障也不會丟失。

       關系型數據庫嚴格遵循ACID理論。

       但當數據庫要開始滿足橫向擴展、高可用、模式自由等需求時,需要對ACID理論進行取舍,不能嚴格遵循ACID。

       以CAP理論和BASE理論為基礎的NoSQL數據庫開始出現。

 

2.分布式系統理論

 

2.1 分布式系統介紹

 

分布式系統的核心理念是讓多臺服務器協同工作,完成單臺服務器無法處理的任務,尤其是高并發或者大數據量的任務。分布式是NoSQL數據庫的必要條件。

 

分布式系統由獨立的服務器通過網絡松散耦合組成的。每個服務器都是一臺獨立的PC機,服務器之間通過內部網絡連接,內部網絡速度一般比較快。因為分布式集群里的服務器是通過內部網絡松散耦合,各節點之間的通訊有一定的網絡開銷,因此分布式系統在設計上盡可能減少節點間通訊。此外,因為網絡傳輸瓶頸,單個節點的性能高低對分布式系統整體性能影響不大。比如,對分布式應用來說,采用不同編程語言開發帶來的單個應用服務的性能差異,跟網絡開銷比起來都可以忽略不計。

 

因此,分布式系統每個節點一般不采用高性能的服務器,而是使用性能相對一般的普通PC服務器。提升分布式系統的整體性能是通過橫向擴展(增加更多的服務器),而不是縱向擴展(提升每個節點的服務器性能)實現。

 

分布式系統最大的特點是可擴展性,它能夠適應需求變化而擴展。企業級應用需求經常隨時間而不斷變化,這也對企業級應用平臺提出了很高的要求。企業級應用平臺必須要能適應需求的變化,即具有可擴展性。比如移動互聯網2C應用,隨著互聯網企業的業務規模不斷增大,業務變得越來越復雜,并發用戶請求越來越多,要處理的數據也越來越多,這個時候企業級應用平臺必須能夠適應這些變化,支持高并發訪問和海量數據處理。分布式系統有良好的可擴展性,可以通過增加服務器數量來增強分布式系統整體的處理能力,以應對企業的業務增長帶來的計算需求增加。

 

2.2 分布式存儲的問題 – CAP理論

 

如果我們期待實現一套嚴格滿足ACID的分布式事務,很可能出現的情況就是系統的可用性和嚴格一致性發生沖突。在可用性和一致性之間永遠無法存在一個兩全其美的方案。由于NoSQL的基本需求就是支持分布式存儲,嚴格一致性與可用性需要互相取舍,由此延伸出了CAP理論來定義分布式存儲遇到的問題。

 

CAP理論告訴我們:一個分布式系統不可能同時滿足一致性(C:Consistency)、可用性(A:Availability)、分區容錯性(P:Partitiontolerance)這三個基本需求,并且最多只能滿足其中的兩項。

 

對于一個分布式系統來說,分區容錯是基本需求,否則不能稱之為分布式系統。因此架構師需要在C和A之間尋求平衡。

 


HBase 的物理存儲

HBase 表中的所有行都是按照行鍵的字典序排列的。

因為一張表中包含的行的數量非常多,有時候會高達幾億行,所以需要分布存儲到多臺服務器上。

因此,當一張表的行太多的時候,HBase 就會根據行鍵的值對表中的行進行分區,每個行區間構成一個“分區(Region)”,

包含了位于某個值域區間內的所有數據,如圖 1 所示。

HBase的Region存儲模式圖

                   圖 1  HBase的Region存儲模式圖




Region 是按大小分割的,每個表一開始只有二個 Region,隨著數據不斷插入到表中,Region 不斷增大,

當增大到一個閾值的時候,Region 就會等分為兩個新的 Region。

當表中的行不斷增多時,就會有越來越多的 Region,如圖 2 所示。



 HBase的Region分裂示意
                                   圖 2  HBase的Region分裂示意


Region 是 HBase 中數據分發和負載均衡的最小單元,默認大小是 100MB 到 200MB。

不同的 Region 可以分布在不同的 Region Server 上,但一個 Region 不會拆分到多個 Region Server 上。

每個 Region Server 負責管理一個 Region 集合。

如圖 3 所示。



HBase的Region分布模式
                                                                圖 3  HBase的Region分布模式



Region 是 HBase 在 Region Server 上數據分發的最小單元,但并不是存儲的最小單元。

事實上,每個 Region 由一個或者多個 Store 組成,每個 Store 保存一個列族的數據。

每個 Store 又由一個 memStore 和 0 至多個 Store File 組成,如圖 4 所示。

Store File 以 HFile 格式保存在 HDFS 上。


HBase的Region存儲模式
                                                                       圖 4  HBase的Region存儲模式

HBase 的邏輯架構

在分布式的生產環境中,HBase 需要運行在 HDFS 之上,以 HDFS 作為其基礎的存儲設施。

HBase 的上層是訪問數據的  API 層,供應用訪問存儲在 HBase 中的數據。

HBase 的集群主要由 Master、Region Server 和 Zookeeper 組成,

具體模塊如圖 5 所示。

HBase的系統架構

                                                                 圖 5  HBase的系統架構



1)Master

Master 主要負責表和 Region 的管理工作。

表的管理工作主要是負責完成增加表、刪除表、修改表和查詢表等操作。

Region 的管理工作更復雜一些,Master 需要負責分配 Region 給 Region Server,協調多個 Region Server,檢測各個 Region Server 的狀態,并平衡 Region Server 之間的負載。

當 Region 分裂或合并之后,Master 負責重新調整 Region 的布局。如果某個 Region Server 發生故障,Master 需要負責把故障 Region Server 上的 Region 遷移到其他 Region Server 上。

HBase 允許多個 Master 結點共存,但是這需要 Zookeeper 進行協調。當多個 Master 結點共存時,只有一個 Master 是提供服務的,其他的 Master 結點處于待命的狀態。

當正在工作的 Master 結點宕機時,其他的 Master 則會接管 HBase 的集群。



2)RegionServer

HBase 有許多個 Region Server,每個 Region Server 又包含多個 Region。Region Server 是 HBase 最核心的模塊,負責維護 Master 分配給它的 Region 集合,并處理對這些 Region 的讀寫操作。

Client 直接與 Region Server 連接,并經過通信獲取 HBase 中的數據。

HBase 釆用 HDFS 作為底層存儲文件系統,Region Server 需要向 HDFS 寫入數據,并利用 HDFS 提供可靠穩定的數據存儲。

Region Server 并不需要提供數據復制和維護數據副本的功能。


3)Zookeeper

Zookeeper 的作用對 HBase 很重要。


首先,Zookeeper 是 HBase Master 的高可用性(High Available,HA)解決方案。

也就是說,Zookeeper 保證了至少有一個 HBase Master 處于運行狀態。

Zookeeper 同時負責 Region 和 Region Server 的注冊。

HBase 集群的 Master 是整個集群的管理者,它必須知道每個 Region Server 的狀態。

HBase 就是使用 Zookeeper 來管理 Region Server 狀態的。

每個 Region Server 都向 Zookeeper 注冊,由 Zookeeper 實時監控每個 Region Server 的狀態,并通知給 Master。


這樣,Master 就可以通過 Zookeeper 隨時感知各個 Region Server 的工作狀態。


需要搭建 ZooKepper 集群 , 采取奇數作為基礎, 要不斷選取出唯一的領導者 。


然后在搭建 Hbase 集群。



image.png

image.png



Hlog = Mysql 中的 bingLog

image.png



Hbase 邏輯架構

image.png


image.png



安裝 Hbase


1、下載軟件從   hbase.apache.com   

2、上傳到 \bigdata\tools

3、tar -zxvf hbase-1.2.3tar.gz

4、cd /bigdata/tools/hbase1.2.3/config

5、vi hbase-env.sh

      export ...


6、vi  hbase-site.xml



image.png

image.png

image.png


image.png

我們上課說的:    start-hbase.sh

              查看:     jsp                         或者      


              安裝一個插件 Phoenix , 就可以用 mysql 數據庫的命令看了   , 等于是一個 shell .

              API可以在 Java后端做軟件查看 。