版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第第3-23-2節(jié)節(jié) HadoopHadoop安裝安裝提提 綱綱 Hadoop簡介 Hadoop分布式文件系統(tǒng)HDFS 分布式數(shù)據(jù)處理MapReduce 分布式結構化數(shù)據(jù)表HBase Hadoop安裝 HDFS使用 HBase安裝使用 MapReduce編程 Hadoop簡介 HadoopHadoopApacheApache開源組織的一個分布式計算框架,可以在大量開源組織的一個分布式計算框架,可以在大量廉價的硬件設備組成的集群上運行應用程序,為應用程序提供了廉價的硬件設備組成的集群上運行應用程序,為應用程序提供了一組穩(wěn)定可靠的接口,旨在構建一個具有一組穩(wěn)定可靠的接口,旨在構建一個具有高可靠性高
2、可靠性和和良好擴展性良好擴展性的分布式系統(tǒng)的分布式系統(tǒng) Hadoop云計算系統(tǒng)云計算系統(tǒng)Google云計算系統(tǒng)云計算系統(tǒng)Hadoop HDFSGoogle GFSHadoop MapReduceGoogle MapReduceHadoop HBaseGoogle BigtableHadoop ZooKeeperGoogle ChubbyHadoop PigGoogle SawzallHadoopHadoop云計算系統(tǒng)與云計算系統(tǒng)與GoogleGoogle云計算系統(tǒng)云計算系統(tǒng) Hadoop簡介開源項目開源項目LuceneLucene:JavaJava開發(fā)的開發(fā)的開源高性能全文檢索工具包開源高性能
3、全文檢索工具包 開源項目開源項目NutchNutch:第一個開源的:第一個開源的WebWeb搜索引擎搜索引擎 Hadoop簡介HadoopHadoop項目組成項目組成 (1 1)Hadoop CommonHadoop Common(2 2)AvroAvro(3 3)ChukwaChukwa(4 4)HBaseHBase(5 5)HDFSHDFS(6 6)HiveHive(7 7)MapReduceMapReduce(8 8)PigPig(9 9)ZooKeeperZooKeeper HadoopHadoop優(yōu)點優(yōu)點 (1 1)可擴展)可擴展(2 2)經(jīng)濟)經(jīng)濟(3 3)可靠)可靠(4 4)高效
4、)高效提提 綱綱 Hadoop簡介 Hadoop分布式文件系統(tǒng)HDFS 分布式數(shù)據(jù)處理MapReduce 分布式結構化數(shù)據(jù)表HBase Hadoop安裝 HDFS使用 HBase安裝使用 MapReduce編程 設計前提與目標 設計前提與目標設計前提與目標硬件錯誤是常態(tài)而不是異常硬件錯誤是常態(tài)而不是異常 流式數(shù)據(jù)訪問流式數(shù)據(jù)訪問 超大規(guī)模數(shù)據(jù)集超大規(guī)模數(shù)據(jù)集 簡單一致性模型簡單一致性模型 移動計算比移動數(shù)據(jù)更簡單移動計算比移動數(shù)據(jù)更簡單 異構軟硬件平臺間的可移植性異構軟硬件平臺間的可移植性 體系結構 HDFSHDFS主從結構體系主從結構體系NameNodeNameNode:主控制服務器,負責維
5、護文件系統(tǒng)的命名空間(Namespace)并協(xié)調(diào)客戶端對文件的訪問,記錄命名空間內(nèi)的任何改動或命名空間本身的屬性改動 DataNodeDataNode:負責它們所在的物理節(jié)點上的存儲管理 保障可靠性的措施 1 1冗余備份冗余備份每個文件存儲成一系列數(shù)據(jù)塊(Block),默認塊大小為64MB(可配置)。為了容錯,文件的所有數(shù)據(jù)塊都會有副本(副本數(shù)量即復制因子,可配副本數(shù)量即復制因子,可配置置) 2 2副本存放副本存放采用機架感知機架感知(Rack-aware)的策略來改進數(shù)據(jù)的可靠性、可用性和網(wǎng)絡帶寬的利用率 復制因子為復制因子為3 3時數(shù)據(jù)塊分布情況時數(shù)據(jù)塊分布情況 保障可靠性的措施 3.3.
6、心跳檢測心跳檢測NameNode周期性地從集群中的每個DataNode接受心跳包和塊報告,收到心跳包說明該DataNode工作正常 4.4.安全模式安全模式系統(tǒng)啟動時,NameNode會進入一個安全模式。此時不會出現(xiàn)數(shù)據(jù)塊的寫操作 5.5.數(shù)據(jù)完整性檢測數(shù)據(jù)完整性檢測 HDFS客戶端軟件實現(xiàn)了對HDFS文件內(nèi)容的校驗和(Checksum)檢查 保障可靠性的措施 6.6.空間回收空間回收 文件被用戶或應用程序刪除時,先把它移動到/trash目錄里;只要還在這個目錄里,文件就可以被迅速恢復 7.7.元數(shù)據(jù)磁盤失效元數(shù)據(jù)磁盤失效NameNode可以配置為支持維護映像文件和事務日志的多個副本,任何對映
7、像文件或事務日志的修改,都將同步到它們的副本上 8.8.快照快照 快照支持存儲某個時間的數(shù)據(jù)復制,當HDFS數(shù)據(jù)損壞時,可以回滾到過去一個已知正確的時間點。HDFS目前還不支持快照功能 提升性能的措施 提升性能措施副本選擇HDFS會盡量使用離程序最近的副本來滿足用戶請求,這樣可以減少總帶寬消耗和讀延時 負載均衡HDFS的架構支持數(shù)據(jù)均衡策略 客戶端緩存HDFS客戶端先把數(shù)據(jù)緩存到本地的一個臨時文件,程序的寫操作透明地重定向到這個臨時文件流水線復制DataNode從前一個節(jié)點接收數(shù)據(jù)的同時,即時把數(shù)據(jù)傳給后面的節(jié)點,這就是流水線復制訪問接口 Hadoop API Hadoop API (1 1)
8、org.apache.hadoop.conforg.apache.hadoop.conf(2 2)org.apache.hadoop.dfsorg.apache.hadoop.dfs(3 3)org.apache.hadoop.fsorg.apache.hadoop.fs(4 4)org.apache.hadoop.ioorg.apache.hadoop.io(5 5)org.apache.hadoop.ipcorg.apache.hadoop.ipc(6 6)org.apache.hadoop.mapredorg.apache.hadoop.mapred(7 7)org.apache.had
9、oop.metricsorg.apache.hadoop.metrics(8 8)org.apache.hadoop.recordorg.apache.hadoop.record(9 9)org.apache.hadoop.toolsorg.apache.hadoop.tools(1010)org.apache.hadoop.utilorg.apache.hadoop.util瀏覽器接口瀏覽器接口典型典型HDFSHDFS安裝會配置一個安裝會配置一個WebWeb服務器開放自己的命名空間,其服務器開放自己的命名空間,其TCPTCP端口可配;默認配置下端口可配;默認配置下http:/namenode
10、-name:50070http:/namenode-name:50070這個頁面列這個頁面列出了集群里的所有出了集群里的所有DataNodeDataNode和集群的基本狀態(tài)和集群的基本狀態(tài) 提提 綱綱 Hadoop簡介 Hadoop分布式文件系統(tǒng)HDFS 分布式數(shù)據(jù)處理MapReduce 分布式結構化數(shù)據(jù)表HBase Hadoop安裝 HDFS使用 HBase安裝使用 MapReduce編程 邏輯模型MapReduceMapReduce處理的任務基本要求處理的任務基本要求:待處理的數(shù)據(jù)集可以分解成許多:待處理的數(shù)據(jù)集可以分解成許多小的數(shù)據(jù)集,而且每一個小數(shù)據(jù)集都可以完全并行地進行處理小的數(shù)據(jù)集
11、,而且每一個小數(shù)據(jù)集都可以完全并行地進行處理 映射階段映射階段,用戶輸入的數(shù)據(jù)分割為M個片斷,對應M個Map任務。每一個Map操作的輸入是數(shù)據(jù)片斷中的鍵值對集合,Map操作調(diào)用用戶定義的Map函數(shù),輸出一個中間態(tài)的鍵值對 集合。接著,按照中間態(tài)的K2將輸出的數(shù)據(jù)集進行排序,并生成一個新的元組,按照K2的范圍將這些元組分割為R個片斷 化簡階段化簡階段,每一個Reduce操作的輸入是一個片斷,Reduce操作調(diào)用用戶定義的Reduce函數(shù),生成用戶需要的鍵值對進行輸出 實現(xiàn)機制 實現(xiàn)機制實現(xiàn)機制1分布式并行計算2本地計算3任務粒度4Combine(連接)5Partition(分區(qū))6讀取中間結果7
12、任務管道提提 綱綱 Hadoop簡介 Hadoop分布式文件系統(tǒng)HDFS 分布式數(shù)據(jù)處理MapReduce 分布式結構化數(shù)據(jù)表HBase Hadoop安裝 HDFS使用 HBase安裝使用 MapReduce編程 邏輯模型 表格里存儲一系列的數(shù)據(jù)行,每行包含一個可排序的行關鍵字、表格里存儲一系列的數(shù)據(jù)行,每行包含一個可排序的行關鍵字、一個可選的時間戳及一些可能有數(shù)據(jù)的列(稀疏)一個可選的時間戳及一些可能有數(shù)據(jù)的列(稀疏) 數(shù)據(jù)行有三種基本類型的定義:數(shù)據(jù)行有三種基本類型的定義:行關鍵字行關鍵字是數(shù)據(jù)行在表中唯一標識,時間戳時間戳是每次數(shù)據(jù)操作對應關聯(lián)的時間戳,列列定義為::(:) 行 關 鍵
13、字時 間 戳列contents:列anchor:列mime:n.wwwt9anchor:CNNt8anchor:my.look.caCNN.comt6.text/htmlt5.t3 . 物理模型 行 關 鍵 字時 間 戳列contents:n.wwwt5t4t3行關鍵字時 間 戳列 anchor:n.wwwt8anchor:CNNt7anchor:look.caCNN.com行關鍵字時 間 戳列 mime:n.wwwt6text/html 物理模型實際上就是把概念模型中的一個物理模型實際上就是把概念模型中的一個行進行分割,并按照行進行分割,并按照列族存儲列族存儲 查詢時間戳為t7的“conte
14、nts:”將返回空值,查詢時間戳為t8,“anchor:”值為“l(fā)ook.ca”的項也返回空值 (空的單元格不存儲空的單元格不存儲 )查詢“contents:”而不指明時間戳,將返回t5時刻的數(shù)據(jù);查詢“anchor:”的“l(fā)ook.ca”而不指明時間戳,將返回t7時刻的數(shù)據(jù) (未指未指明時間戳,則返回指定列的最新數(shù)據(jù)值明時間戳,則返回指定列的最新數(shù)據(jù)值 )子表服務器 客戶端進行更新操作時,首先連接相關的子表服務器,之后向客戶端進行更新操作時,首先連接相關的子表服務器,之后向子表提交變更。提交的數(shù)據(jù)被添加到子表的子表提交變更。提交的數(shù)據(jù)被添加到子表的HMemcacheHMemcache和子表服
15、務和子表服務器的器的HLog HLog 提供服務時,子表首先查詢緩存提供服務時,子表首先查詢緩存HMemcacheHMemcache。若沒有,再查找磁。若沒有,再查找磁盤上的盤上的HStoreHStore HRegion.flushcache()HRegion.flushcache()定期被調(diào)用,把定期被調(diào)用,把HMemcacheHMemcache中的內(nèi)容寫到中的內(nèi)容寫到磁盤上磁盤上HStoreHStore文件里文件里 調(diào)用調(diào)用HSpact()HSpact()方法來實現(xiàn)多個方法來實現(xiàn)多個HStoreFileHStoreFile合并成一個合并成一個HStoreFileHStoreFile HRe
16、gion.closeAndMerge()HRegion.closeAndMerge()可把兩個子表合并成一個;可把兩個子表合并成一個;HRegion. HRegion. closeAndSplit()closeAndSplit(),可將子表分割為兩個新子表,可將子表分割為兩個新子表 調(diào)用flushcache()方法越少,工作量就越少,而HMemcache就要占用更多的內(nèi)存空間,啟動時HLog文件也需要更多的時間來恢復數(shù)據(jù)。而調(diào)用flushcache()越頻繁,HMemcache占用內(nèi)存就越少,HLog文件恢復數(shù)據(jù)時也就越快 主服務器 主服務器維護子表服務器在任何時刻的活躍標記主服務器維護子表服
17、務器在任何時刻的活躍標記 與與GoogleGoogle的的BigtableBigtable不同,不同,BigtableBigtable使用使用分布式鎖服務分布式鎖服務ChubbyChubby保證了子表服務器訪問子表操作的原子性保證了子表服務器訪問子表操作的原子性;HBaseHBase不具備這樣的不具備這樣的Chubby Chubby 每個子表都由它所屬的表格名字、首關鍵字和每個子表都由它所屬的表格名字、首關鍵字和region Idregion Id來標識來標識例如,表名:hbaserepository 首關鍵字:w-nk5YNZ8TBb2uWFIRJo7V= region Id:6890601
18、45591-4043它的唯一標識符唯一標識符就是:hbaserepository, w-hbaserepository, w-nk5YNZ8TBb2uWFIRJo7V=,6890601455914043nk5YNZ8TBb2uWFIRJo7V=,6890601455914043元數(shù)據(jù)表 子表的元數(shù)據(jù)存儲在另一個子表里,子表的唯一標識符可以作子表的元數(shù)據(jù)存儲在另一個子表里,子表的唯一標識符可以作為子表的行標簽,為子表的行標簽,映射子表標識符到物理子表服務器位置的表格映射子表標識符到物理子表服務器位置的表格稱為元數(shù)據(jù)表稱為元數(shù)據(jù)表 啟動時啟動時,主服務器立即掃描主服務器立即掃描唯一根子表(其名字是
19、硬編唯一根子表(其名字是硬編碼的)碼的) 主服務器掃描元數(shù)據(jù)子表主服務器掃描元數(shù)據(jù)子表 主服務器掃描完元數(shù)據(jù)子表主服務器掃描完元數(shù)據(jù)子表,然后就可以把這些子表分,然后就可以把這些子表分配到子表服務器上去配到子表服務器上去 元數(shù)據(jù)表元數(shù)據(jù)表12 3提提 綱綱 Hadoop簡介 Hadoop分布式文件系統(tǒng)HDFS 分布式數(shù)據(jù)處理MapReduce 分布式結構化數(shù)據(jù)表HBase Hadoop安裝 HDFS使用 HBase安裝使用 MapReduce編程 在Linux系統(tǒng)中安裝Hadoop 1 1安裝環(huán)境配置安裝環(huán)境配置1)安裝安裝LinuxLinux虛擬機虛擬機 安裝軟件安裝軟件VMware Wor
20、kstation v10.0.1VMware Workstation v10.0.1 2)安裝SSH $ sudo apt-get install ssh3)安裝Java $ cd /usr/java/ $ /mnt/hgfs/share/jdk-6u24-linux-i586.bin4)解壓Hadoop安裝包 $ tar zxvf /mnt/hgfs/share/hadoop-0.20.2.tar.gz5)編輯conf/hadoop-env.sh文件$ vi conf/hadoop-env.sh2 2安裝步驟安裝步驟 1)單機模式 默認情況下,Hadoop被配置成一個以非分布式模式運行的獨立
21、Java進程,適合開始時做調(diào)試工作WordCountWordCount實例實例 $ mkdir input $ cd input $ echo hello world test1.txt $ echo hello hadoop test2.txt $ bin/hadoop jar hadoop-mapred-examples-0.20.2.jar wordcount input output 查看執(zhí)行結果查看執(zhí)行結果 $ cat output/*在Linux系統(tǒng)中安裝Hadoop 2 2安裝步驟安裝步驟 2)偽分布式模式 用不同的Java進程模擬分布式運行中各類節(jié)點 (1)Hadoop配置 在
22、Linux系統(tǒng)中安裝Hadoop core-site.xmlcore-site.xml配置文檔配置文檔hdfs-site.xmlhdfs-site.xml配置文檔配置文檔mapred-site.xmlmapred-site.xml配置文檔配置文檔 (2)免密碼SSH設置 生成密鑰對 $ ssh-keygen -t rsa 一直按【Enter】鍵,按照默認的選項將生成的密鑰對保存在.ssh/id_rsa文件中 進入.ssh目錄 $ cp id_rsa.pub authorized_keys 執(zhí)行$ ssh localhost,可以實現(xiàn)用SSH 連接并且不需要輸入密碼 在Linux系統(tǒng)中安裝Had
23、oop 將密鑰對保存在將密鑰對保存在.ssh/id.rsa.ssh/id.rsa文件中文件中 在Linux系統(tǒng)中安裝Hadoop (3)Hadoop運行 (a)格式化分布式文件系統(tǒng) $ bin/hadoop namenode format (b)啟動Hadoop守護進程 $ bin/start-all.sh 成功執(zhí)行后將會在本機上啟動NameNode、DataNode、JobTracker、TaskTracker和Secondary NameNode 5個新的Java進程 (c)運行WordCount實例 $ bin/hadoop dfs copyFromLocal input in $ bi
24、n/hadoop jar hadoop-mapred-examples-0.20.2.jar wordcount in out 查看Hadoop分布式文件系統(tǒng)上數(shù)據(jù)處理的結果 $ bin/hadoop dfs -cat out/* 把輸出文件從Hadoop分布式文件系統(tǒng)復制到本地文件系統(tǒng)查看 $ bin/hadoop dfs -get out output $ cat output/* (d) 停止Hadoop守護進程。最后需要停止Hadoop守護進程 $ bin/stop-all.sh3 3)完全分布式模式)完全分布式模式 (1 1)配置)配置NameNodeNameNode和和DataNo
25、deDataNode (2 2)在所有的機器上建立相同的用戶)在所有的機器上建立相同的用戶gridgrid $ useradd -m grid $ passwd grid (3)SSH配置 在所有機器上建立.ssh目錄 $ mkdir .ssh 在ubuntunamenode上生成密鑰對 $ ssh-keygen -t rsa在Linux系統(tǒng)中安裝Hadoop 配置配置ubuntunamenodeubuntunamenode的的/etc/hosts/etc/hosts ubuntudata1和ubuntudata2的hosts配置 在Linux系統(tǒng)中安裝Hadoop (3)SSH配置 然后一直
26、按【Enter】鍵,就會按照默認的選項將生成的密鑰對保存在.ssh/id_rsa文件中 $cd /.ssh $cp id_rsa.pub authorized_keys $scp authorized_keys ubuntudata1:/home/grid/.ssh $scp authorized_keys ubuntudata2:/home/grid/.ssh 最后進入所有機器的.ssh目錄,改變authorized_keys文件的許可權限 $chmod 644 authorized_keys(4)在所有機器上配置Hadoop 在ubuntunamenode上配置 (a)編輯core-sit
27、e.xml、hdfs-site.xml和mapred-site.xml (b)編輯conf/masters,修改為master的主機名,每個主機名一行,此外即為ubuntunamenode (c)編輯conf/slaves,加入所有slaves的主機名,即ubuntudata1和ubuntudata2 (d)把Hadoop安裝文件復制到其他機器上 $ scp r hadoop-0.20.2 ubuntudata1:/home/grid $ scp r hadoop-0.20.2 ubuntudata2:/home/grid (e)編輯所有機器的conf/hadoop-env.sh文件 在Lin
28、ux系統(tǒng)中安裝Hadoop (5)Hadoop運行 格式化分布式文件系統(tǒng) $bin/hadoop namenode -format 啟動Hadoop守護進程 $ bin/start-all.sh $/usr/java/jdk1.6.0_24/bin/jps 格式化分布式文件系統(tǒng)格式化分布式文件系統(tǒng) 啟動Hadoop守護進程 在Linux系統(tǒng)中安裝Hadoop 用戶也可以根據(jù)自己的需要來執(zhí)行如下命令(a)start-all.sh:啟動所有的Hadoop守護進程,包括NameNode、DataNode、JobTracker和Tasktrack(b)stop-all.sh:停止所有的Hadoop守護
29、進程(c)start-mapred.sh:啟動Map/Reduce守護進程,包括JobTracker和Tasktrack(d)stop-mapred.sh:停止Map/Reduce守護進程(e)start-dfs.sh:啟動Hadoop DFS守護進程,包括NameNode和DataNode(f)stop-dfs.sh:停止DFS守護進程修改C:WINDOWSsystem32driversetchosts文件,加入三臺虛擬機的IP地址及其對應的主機名,即: localhost36 ubuntunamenode40 ubunt
30、udata141 ubuntudata2在Linux系統(tǒng)中安裝Hadoop NameNode運行狀態(tài) 在Linux系統(tǒng)中安裝Hadoop JobTrackerJobTracker運行狀態(tài)運行狀態(tài) 在Linux系統(tǒng)中安裝Hadoop (g)運行WordCount實例 $ bin/hadoop dfs put input in $ bin/hadoop jar hadoop-0.20.2-examples.jar wordcount in out 查看Hadoop分布式文件系統(tǒng)上數(shù)據(jù)處理結果 $ bin/hadoop dfs -cat out/* 從Hadoop分布式文件
31、系統(tǒng)復制到本地文件系統(tǒng)查看 $ bin/hadoop dfs -get out output $ cat output/*(h)停止Hadoop守護進程 $ bin/stop-all.sh在Linux系統(tǒng)中安裝Hadoop 運行運行WordCountWordCount實例實例 查看數(shù)據(jù)處理結果查看數(shù)據(jù)處理結果 停止停止HadoopHadoop守護進程運行結果守護進程運行結果 在Windows系統(tǒng)中安裝Hadoop 1 1安裝環(huán)境配置安裝環(huán)境配置1)下載安裝Cygwin 編輯系統(tǒng)變量,新建系統(tǒng)變量CYGWIN,變量值為ntsec tty,如圖6-19所示。編輯系統(tǒng)變量里的Path變量,加入C:c
32、ygwinbin 2)安裝Java 默認的安裝目錄為C:Program FilesJava jdk1.6.0_13新建系統(tǒng)變量JAVA_HOME編輯系統(tǒng)變量里的Path變量,加入%JAVA_HOME%bin;%JAVA_HOME%jrebin 新建系統(tǒng)變量CLASSPATH,值為.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar 2. 2. 安裝步驟安裝步驟 1)單機模式默認的解壓縮目錄為用戶的根目錄,即C:cygwinhomeAdministrator。編輯conf/hadoop-env.sh文件,將JAVA_HOME變量設置為JAVA安裝的根目錄。例如JAVA
33、安裝在目錄C:Program FilesJavajdk1.6.0_13 在Windows系統(tǒng)中安裝Hadoop 配置完之后即可運行WordCount實例 file1.txt: hello world hello hadoopfile2.txt: bye hadoop運行實例,并將結果輸出到指定的output目錄 (執(zhí)行之前output目錄必須為空,或者不存在這個目錄,否則會出錯 )$ bin/hadoop jar hadoop-0.20.2-examples.jar wordcount input output 2)偽分布式模式(1)編輯文件conf/core-site.xml和mapred-
34、site.xml (2)安裝配置SSH啟動cygwin $ ssh-host-config 當詢問“Should privilege separation be used?”時,輸入no 當詢問“Do you want to install sshd as a service?”,選擇yes,把sshd作為一項服務安裝 當提示“Enter the value of CYGWIN for the daemon: ntsec”時,選擇ntsec 輸入命令$ net start sshd,啟動SSH 或 通過服務啟動CYGWIN sshd 在Windows系統(tǒng)中安裝Hadoop 執(zhí)行$ ssh-ke
35、ygen來生成密鑰對,然后一直按【Enter】鍵,就會按照默認的選項將生成的密鑰對保存在.ssh目錄下。將RSA公鑰加入到公鑰授權文件authorized_keys中 $ cd .ssh $ cat id_rsa.pub authorized_keys(3)Hadoop運行 (a)格式化分布式文件系統(tǒng) $ bin/hadoop NameNode format (b)啟動Hadoop守護進程 $ bin/start-all.sh (c)運行WordCount實例 $ bin/hadoop dfs put input in $ bin/hadoop jar hadoop-0.20.2-exampl
36、es.jar wordcount in out 查看Hadoop分布式文件系統(tǒng)上數(shù)據(jù)處理的結果 $ bin/hadoop dfs -cat out/* 從Hadoop分布式文件系統(tǒng)復制到本地文件系統(tǒng)查看 $ bin/hadoop dfs -get out output $ cat output/* (d)停止Hadoop守護進程 $ bin/stop-all.sh在Windows系統(tǒng)中安裝Hadoop 3)完全分布式模式 (1)修改相應文件 修改所有機器的C:WINDOWSsystem32driversetchosts文件,加入各機器IP地址及其對應的主機名,即: loca
37、lhost 54 centos254 53 centos253 52 centos252 (2)在所有機器上建立相同的賬戶stony (3)在所有機器上進行SSH配置 執(zhí)行$ ssh-keygen來生成密鑰對。然后一直按【Enter】鍵,就會按照默認的選項生成密鑰對,并保存在.ssh/id_rsa文件中。執(zhí)行下面的命令將RSA公鑰加入到公鑰授權文件authorized_keys中: $cd /.ssh $cat id_rsa.pub authorized_keys 在centos254上執(zhí)行 $cd /.ssh $scp
38、authorized_keys stonycenos253:/home/stony/.ssh $scp authorized_keys stonycenos252:/home/stony/.ssh在Windows系統(tǒng)中安裝Hadoop 分別進入centos253、centos252和centos251的.ssh目錄,改變authorized_keys文件的許可權限 $chmod 644 authorized_keys(4)在所有機器上配置Hadoop 在centos254上配置 $ tar -zxvf /cygdrive/d/hadoop-0.20.2.tar.gz $ mv hadoop-0
39、.20.2 hadoop 編輯conf/core-site.xml 編輯conf/mapred-site.xml 編輯conf/hdfs-site.xml 在Windows系統(tǒng)中安裝Hadoop 編輯conf/master,修改為master的主機名,每個ip一行,在這里就是54。編輯conf/slaves,加入所有slaves的主機名,即53和52。把hadoop復制到其他機器,命令如下: $scp /hadoop stonycentos253:/home/stony/ $scp /hadoop stonycentos2
40、52:/home/stony/編輯所有機器的conf/hadoop-env.sh文件,將JAVA_HOME變量設置為JAVA安裝的根目錄,不同機器可以使用不同的JAVA版本,但需要jdk1.5版本以上 在Windows系統(tǒng)中安裝Hadoop (5)Hadoop運行格式化分布式文件系統(tǒng)。在centos254上執(zhí)行如下的命令:$bin/hadoop namenode -format啟動Hadoop守護進程 $ bin/start-all.sh同樣的,訪問http:/centos254:50070可以查看NameNode以及整個分布式文件系統(tǒng)的狀態(tài),瀏覽分布式文件系統(tǒng)中的文件以及日志等;訪問http
41、:/centos254:50060可以查看 TaskTracker的運行狀態(tài)運行WordCount實例:$ bin/hadoop dfs put input in$ bin/hadoop jar hadoop-.020.2-examples.jar wordcount in out查看Hadoop分布式文件系統(tǒng)上數(shù)據(jù)處理的結果:$ bin/hadoop dfs -cat out/*從Hadoop分布式文件系統(tǒng)復制到本地文件系統(tǒng)查看:$ bin/hadoop dfs -get out output $ cat output/*停止Hadoop守護進程:$ bin/stop-all.sh在Wind
42、ows系統(tǒng)中安裝Hadoop 4)注意事項格式化Hadoop文件系統(tǒng)是啟動Hadoop的第一步,不過一旦安裝Hadoop后,不要格式化運行中的文件系統(tǒng),否則所有的數(shù)據(jù)會被清除。如果需要執(zhí)行格式化,每次格式化(format)前,清空tmp目錄下的所有文件。正確的步驟如下:(1)用bin/stop-all.sh停止所有的守護進程(2)刪除$HADOOP_HOME/tmp這個文件夾(3)重新格式化NameNode(4)重新啟動守護進程 在HADOOP_HOME/logs目錄下,NameNode、DataNode、Secondary NameNode、JobTracker、TaskTracker各有一
43、個對應的日志文件,每一次運行的計算任務也有對應的日志文件。當出現(xiàn)故障時,分析這些日志文件有助于找到故障原因。例如可通過54:50070/logs/進行瀏覽日志信息 提提 綱綱 Hadoop簡介 Hadoop分布式文件系統(tǒng)HDFS 分布式數(shù)據(jù)處理MapReduce 分布式結構化數(shù)據(jù)表HBase Hadoop安裝 HDFS使用 HBase安裝使用 MapReduce編程 HDFS 常用命令 HDFS集群由一個NameNode和多個DataNode組成:NameNode負責管理文件系統(tǒng)的元數(shù)據(jù);DataNode負責存儲實際的數(shù)據(jù) (其中censtos254為nam
44、enode)1HDFS管理DFSAdmin命令支持一些和HDFS管理相關的操作 2安全模式NameNode在啟動時會自動進入安全模式。安全模式的目的是在系統(tǒng)啟動時檢查各個DataNode上數(shù)據(jù)塊的有效性,同時根據(jù)策略對數(shù)據(jù)塊進行必要的復制或刪除關閉安全模式 $ bin/hadoop dfsadmin -safemode leave把HDFS置于安全模式 $ bin/hadoop dfsadmin safemode enter3.添加節(jié)點加入新加節(jié)點主機名,再建立到新加節(jié)點無密碼的SSH連接 實驗中復制因子為3,部分數(shù)據(jù)塊未達到最小副本數(shù)。等待一段時間之后,數(shù)據(jù)塊自動進行了必要的復制 HDFS
45、常用命令 4.節(jié)點故障 心跳信號 5.負載均衡 重新平衡DataNode上的數(shù)據(jù)塊的分布 $ bin/start-balancer.sh 命令執(zhí)行前,DataNode節(jié)點上數(shù)據(jù)的分布情況 負載均衡完畢后,DataNode節(jié)點上數(shù)據(jù)的分布情況 HDFS 基準測試 TestDFSIO用來測試HDFS的I/O性能bin/hadoop jar $HADOOP_HOME/hadoop-0.20.2-test.jarTestDFSIO write nrFile 20 filesize 200如果eclipse已經(jīng)安裝了hadoop-0.20.2-eclipse-plugin.jar插件包,那么可以在ecl
46、ipse下查看結果 基準測試后,刪除所有生成的文件 % bin/hadoop jar $HADOOP_HOME/hadoop-0.20.2-test.jar TestDFSIO clean提提 綱綱 Hadoop簡介 Hadoop分布式文件系統(tǒng)HDFS 分布式數(shù)據(jù)處理MapReduce 分布式結構化數(shù)據(jù)表HBase Hadoop安裝 HDFS使用 HBase安裝使用 MapReduce編程 HBase的安裝配置 (1)安裝HBase $ tar zxvf hbase-0.19.2.tar.gz(2)編輯HBASE_HOME/conf/hbase-env.sh,把JAVA_HOME變量設置為JA
47、VA安裝的根目錄,把HBASE_CLASSPATH設置為HADOOP_CONF_DIR (3)編輯HBASE_HOME/conf/hbase-site.xml (4)復制$HADOOP_HOME/conf/hadoop-site.xml(5)編輯$HBASE_HOME/conf/regionservers (6)把HBase復制到其他機器上: $ scp r /hbase-0.19.2/ ubuntu2: /home/grid/ $ scp r /hbase-0.19.2/ ubuntu3: /home/grid/(7)復制$HBASE_HOME/hbase-0.19.2.jar $ cp /
48、hbase-0.19.2/hbase-0.19.2.jar /hadoop-0.19.1/lib/HBase的執(zhí)行 (1)啟動Hadoop$ cd /hadoop-0.19.1 $ bin/start-all.sh(2)啟動Hbase$ cd /hbase-0.19.2/$ bin/start-hbase.sh(3)進入shell模式進行HBase數(shù)據(jù)操作 $ bin/hbase shell(4)停止HBase$ bin/stop-hbase.sh(5)停止Hadoop$ cd /hadoop-0.19.1$ bin/stop-all.shHbase編程實例啟動Eclipse,新建Map/Reduce Project,命名為Pr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年美團商家合作經(jīng)營協(xié)議
- 齊魯工業(yè)大學《Python基礎與應用》2023-2024學年期末試卷
- 2024專業(yè)建筑模板施工項目協(xié)議
- 2024年度機電安裝施工承包協(xié)議樣本
- 木材的燃氣排放與污染控制考核試卷
- 農(nóng)藥制造設備的新型材料與技術應用考核試卷
- 企業(yè)的產(chǎn)品規(guī)劃
- 低溫倉儲物流信息化管理考核試卷
- 污水處理中的微型濕地凈化技術考核試卷
- 糖尿病患者飲食控制要點
- 標準化班組建設演示幻燈片
- 華為HCIP H31-341 V2.5傳輸認證考試題庫大全-上(單選、多選題匯總)
- 小學生數(shù)學思維品質(zhì)的調(diào)查研究的開題報告
- DB51T3080-2023研學旅行實踐承辦機構服務與管理規(guī)范
- 蘇教版三年級數(shù)學上冊《筆算兩、三位數(shù)除以一位數(shù)》評課稿
- GB/T 7702.7-2023煤質(zhì)顆?;钚蕴吭囼灧椒ǖ?部分:碘吸附值的測定
- 中國歷史的教訓-習驊
- 《分散系》說課課件
- 抗痙攣體位專題知識講座
- 廣東省3證書高職高考語文試卷和答案
- 茶多酚性質(zhì)功效及應用
評論
0/150
提交評論