導航:首頁 > 程序命令 > hadoop分區命令

hadoop分區命令

發布時間:2023-08-19 13:35:19

⑴ Hadoop系列之HDFS架構

    本篇文章翻譯了Hadoop系列下的 HDFS Architecture ,原文最初經過筆者翻譯後大概有6000字,之後筆者對內容進行了精簡化壓縮,從而使筆者自己和其他讀者們閱讀本文時能夠更加高效快速的完成對Hadoop的學習或復習。本文主要介紹了Hadoop的整體架構,包括但不限於節點概念、命名空間、數據容錯機制、數據管理方式、簡單的腳本命令和垃圾回收概念。

    PS:筆者新手一枚,如果看出哪裡存在問題,歡迎下方留言!

    Hadoop Distributed File System(HDFS)是高容錯、高吞吐量、用於處理海量數據的分布式文件系統。

    HDFS一般由成百上千的機器組成,每個機器存儲整個數據集的一部分數據,機器故障的快速發現與恢復是HDFS的核心目標。

    HDFS對介面的核心目標是高吞吐量而非低延遲。

    HDFS支持海量數據集合,一個集群一般能夠支持千萬以上數量級的文件。

    HDFS應用需要對文件寫一次讀多次的介面模型,文件變更只支持尾部添加和截斷。

    HDFS的海量數據與一致性介面特點,使得遷移計算以適應文件內容要比遷移數據從而支持計算更加高效。

    HDFS支持跨平台使用。

    HDFS使用主從架構。一個HDFS集群由一個NameNode、一個主伺服器(用於管理系統命名空間和控制客戶端文件介面)、大量的DataNode(一般一個節點一個,用於管理該節點數據存儲)。HDFS對外暴露了文件系統命名空間並允許在文件中存儲用戶數據。一個文件被分成一個或多個塊,這些塊存儲在一組DataNode中。NameNode執行文件系統命名空間的打開關閉重命名等命令並記錄著塊和DataNode之間的映射。DataNode用於處理客戶端的讀寫請求和塊的相關操作。NameNode和DataNode一般運行在GNU/Linux操作系統上,HDFS使用java語言開發的,因此NameNode和DataNode可以運行在任何支持Java的機器上,再加上Java語言的高度可移植性,使得HDFS可以發布在各種各樣的機器上。一個HDFS集群中運行一個NameNode,其他機器每個運行一個(也可以多個,非常少見)DataNode。NameNode簡化了系統的架構,只用於存儲所有HDFS元數據,用戶數據不會進入該節點。下圖為HDFS架構圖:

    HDFS支持傳統的分層文件管理,用戶或者應用能夠在目錄下創建目錄或者文件。文件系統命名空間和其他文件系統是相似的,支持創建、刪除、移動和重命名文件。HDFS支持用戶數量限制和訪問許可權控制,不支持軟硬鏈接,用戶可以自己實現軟硬鏈接。NameNode控制該命名空間,命名空間任何變動幾乎都要記錄到NameNode中。應用可以在HDFS中對文件聲明復制次數,這個次數叫做復制系數,會被記錄到NameNode中。

    HDFS將每個文件存儲為一個或多個塊,並為文件設置了塊的大小和復制系數從而支持文件容錯。一個文件所有的塊(除了最後一個塊)大小相同,後來支持了可變長度的塊。復制系數在創建文件時賦值,後續可以更改。文件在任何時候只能有一個writer。NameNode負責塊復制,它周期性收到每個數據節點的心跳和塊報告,心跳錶示數據節點的正常運作,塊報告包含了這個DataNode的所有塊。

    副本存儲方案對於HDFS的穩定性和性能至關重要。為了提升數據可靠性、靈活性和充分利用網路帶寬,HDFS引入了機架感知的副本存儲策略,該策略只是副本存儲策略的第一步,為後續優化打下基礎。大型HDFS集群一般運行於橫跨許多支架的計算機集群中,一般情況下同一支架中兩個節點數據傳輸快於不同支架。一種簡單的方法是將副本存放在單獨的機架上,從而防止丟失數據並提高帶寬,但是增加了數據寫入的負擔。一般情況下,復制系數是3,HDFS存儲策略是將第一份副本存儲到本地機器或者同一機架下一個隨機DataNode,另外兩份副本存儲到同一個遠程機架的不同DataNode。NameNode不允許同一DataNode存儲相同副本多次。在機架感知的策略基礎上,後續支持了 存儲類型和機架感知相結合的策略 ,簡單來說就是在機架感知基礎上判斷DataNode是否支持該類型的文件,不支持則尋找下一個。

    HDFS讀取數據使用就近原則,首先尋找相同機架上是否存在副本,其次本地數據中心,最後遠程數據中心。

    啟動時,NameNode進入安全模式,該模式下不會發生數據塊復制,NameNode接收來自DataNode的心跳和塊報告,每個塊都有一個最小副本數量n,數據塊在NameNode接受到該塊n次後,認為這個數據塊完成安全復制。當完成安全復制的數據塊比例達到一個可配的百分比值並再過30s後,NameNode退出安全模式,最後判斷是否仍然存在未達到最小復制次數的數據塊,並對這些塊進行復制操作。

    NameNode使用名為EditLog的事務日誌持續記錄文件系統元數據的每一次改動(如創建文件、改變復制系數),使用名為FsImage的文件存儲全部的文件系統命名空間(包括塊到文件的映射關系和文件系統的相關屬性),EditLog和FsImage都存儲在NameNode本地文件系統中。NameNode在內存中保存著元數據和塊映射的快照,當NameNode啟動後或者某個配置項達到閾值時,會從磁碟中讀取EditLog和FsImage,通過EditLog新的記錄更新內存中的FsImage,再講新版本的FsImage刷新到磁碟中,然後截斷EditLog中已經處理的記錄,這個過程就是一個檢查點。檢查點的目的是確保文件系統通過在內存中使用元數據的快照從而持續的觀察元數據的變更並將快照信息存儲到磁碟FsImage中。檢查點通過下面兩個配置參數出發,時間周期(dfs.namenode.checkpoint.period)和文件系統事務數量(dfs.namenode.checkpoint.txns),二者同時配置時,滿足任意一個條件就會觸發檢查點。

    所有的HDFS網路協議都是基於TCP/IP的,客戶端建立一個到NameNode機器的可配置的TCP埠,用於二者之間的交互。DataNode使用DataNode協議和NameNode交互,RPC包裝了客戶端協議和DataNode協議,通過設計,NameNode不會發起RPC,只負責響應來自客戶端或者DataNode的RPC請求。

    HDFS的核心目標是即使在失敗或者錯誤情況下依然能夠保證數據可靠性,三種常見失敗情況包括NameNode故障、DataNode故障和network partitions。

    網路分區可能會導致部分DataNode市區和NameNode的連接,NameNode通過心跳包判斷並將失去連接的DataNode標記為掛掉狀態,於是所有注冊到掛掉DataNode的數據都不可用了,可能會導致部分數據塊的復制數量低於了原本配置的復制系數。NameNode不斷地追蹤哪些需要復制的塊並在必要時候進行復制,觸發條件包含多種情況:DataNode不可用、復制亂碼、硬體磁碟故障或者認為增大負值系數。為了避免DataNode的狀態不穩定導致的復制風暴,標記DataNode掛掉的超時時間設置比較長(默認10min),用戶可以設置更短的時間間隔來標記DataNode為陳舊狀態從而避免在對讀寫性能要求高的請求上使用這些陳舊節點。

    HDFS架構兼容數據各種重新平衡方案,一種方案可以在某個DataNode的空閑空間小於某個閾值時將數據移動到另一個DataNode上;在某個特殊文件突然有高的讀取需求時,一種方式是積極創建額外副本並且平衡集群中的其他數據。這些類型的平衡方案暫時還未實現(不太清楚現有方案是什麼...)。

    存儲設備、網路或者軟體的問題都可能導致從DataNode獲取的數據發生亂碼,HDFS客戶端實現了對文件內容的校驗,客戶端在創建文件時,會計算文件中每個塊的校驗值並存儲到命名空間,當客戶端取回數據後會使用校驗值對每個塊進行校驗,如果存在問題,客戶端就會去另一個DataNode獲取這個塊的副本。

    FsImage和EditLog是HDFS的核心數據結構,他們的錯誤會導致整個HDFS掛掉,因此,NameNode應該支持時刻維持FsImage和EditLog的多分復制文件,它們的任何改變所有文件應該同步更新。另一個選擇是使用 shared storage on NFS 或者 distributed edit log 支持多個NameNode,官方推薦 distributed edit log 。

    快照能夠存儲某一特殊時刻的數據副本,從而支持HDFS在發生錯誤時會滾到上一個穩定版本。

    HDFS的應用場景是大的數據集下,且數據只需要寫一次但是要讀取一到多次並且支持流速讀取數據。一般情況下一個塊大小為128MB,因此一個文件被切割成128MB的大塊,且每個快可能分布在不同的DataNode。

    當客戶端在復制系數是3的條件下寫數據時,NameNode通過目標選擇演算法收到副本要寫入的DataNode的集合,第1個DataNode開始一部分一部分的獲取數據,把每個部分存儲到本地並轉發給第2個DataNode,第2個DataNode同樣的把每個部分存儲到本地並轉發給第3個DataNode,第3個DataNode將數據存儲到本地,這就是管道復制。

    HDFS提供了多種訪問方式,比如 FileSystem Java API 、 C language wrapper for this Java API 和 REST API ,而且還支持瀏覽器直接瀏覽。通過使用 NFS gateway ,客戶端可以在本地文件系統上安裝HDFS。

    HDFS使用目錄和文件的方式管理數據,並提供了叫做 FS shell 的命令行介面,下面有一些簡單的命令:

    DFSAdmin命令集合用於管理HDFS集群,這些命令只有集群管理員可以使用,下面有一些簡單的命令:

正常的HDFS安裝都會配置一個web服務,通過可配的TCP埠對外暴露命名空間,從而使得用戶可以通過web瀏覽器查看文件內容。

如果垃圾回收配置打開,通過FS shell移除的文件不會立刻刪除,而是會移動到一個垃圾文件專用的目錄(/user/<username>/.Trash),類似回收站,只要文件還存在於那個目錄下,則隨時可以被回復。絕大多數最近刪除的文件都被移動到了垃圾目錄(/user/<username>/.Trash/Current),並且HDFS每個一段時間在這個目錄下創建一個檢查點用於刪除已經過期的舊的檢查點,詳情見 expunge command of FS shell 。在垃圾目錄中的文件過期後,NameNode會刪除這個文件,文件刪除會引起這個文件的所有塊的空間空閑,需要注意的是在文件被刪除之後和HDFS的可用空間變多之間會有一些時間延遲(個人認為是垃圾回收機制佔用的時間)。下面是一些簡單的理解刪除文件的例子:

    當文件復制系數減小時,NameNode會選擇多餘的需要刪除的副本,在收到心跳包時將刪除信息發送給DataNode。和上面一樣,這個刪除操作也是需要一些時間後,才能在集群上展現空閑空間的增加。

HDFS Architecture

⑵ spark、hive、impala、hdfs的常用命令

對spark、hive、impala、hdfs的常用命令作了如下總結,歡迎大家補充!

1. Spark的使用:

以通過SecureCRT訪問IP地址:10.10.234.198 為例進行說明:

先輸入:ll //查詢集群是否裝有spark

>su - mr

>/home/mr/spark/bin/beeline -u "jdbc:hive2:/bigdata198:18000/" -n mr -p ""

>show databases; //顯示其中資料庫,例如

>use bigmax; //使用資料庫bigmax

>show tables; //查詢目錄中所有的表

>desc formatted TableName; //顯示表的詳細信息,包括分區、欄位、地址等信息

>desc TableName; //顯示表中的欄位和分區信息

>select count(*) from TableName; //顯示表中數據數量,可以用來判斷表是否為空

>drop table TableName; //刪除表的信息

>drop bigmax //刪除資料庫bigmax

>describe database zxvmax //查詢資料庫zxvmax信息

創建一個表

第一步:

>create external table if not exists lte_Amaze //創建一個叫lte_Amaze的表

( //括弧中每一行為表中的各個欄位的名稱和其所屬的數據類型,並用空格隔開

DateTime String,

MilliSec int,

Network int,

eNodeBID int,

CID int,

IMSI String,

DataType int,

AoA int,

ServerRsrp int,

ServerRsrq int,

TA int,

Cqi0 Tinyint,

Cqi1 Tinyint //注意,最後一個欄位結束後,沒有逗號

)

partitioned by (p_date string, p_hour INT) //以p_date和p_hour作為分區

row format delimited fields terminated by ',' /*/*表中行結構是以逗號作為分隔符,與上邊的表中欄位以逗號結尾相一致*/

stored as textfile; //以文本格式進行保存

第二步:添加分區,指定分區的位置

>alter table lte_Amaze add partition (p_date='2015-01-27',p_hour=0) location'/lte/nds/mr/lte_nds_cdt_uedetail/p_date=2015-01-27/p_hour=0';

//添加lte_Amaze表中分區信息,進行賦值。

//並制定分區對應目錄/lte/nds/mr下表lte_nds_cdt_uedetail中對應分區信息

第三步:察看添加的結果

>show partitions lte_Amaze; //顯示表的分區信息

2. hdfs使用:

#su - hdfs //切換到hdfs用戶下 、

#hadoop fs –ls ///查看進程
# cd /hdfs/bin //進入hdfs安裝bin目錄
>hadoop fs -ls /umtsd/cdt/ //查詢/umtsd/cdt/文件目錄
>hadoop fs -mkdir /umtsd/test //在/umtsd目錄下創建test目錄
>hadoop fs -put /home/data/u1002.csv /impala/data/u5002 //將home/data/u1002.csv這個文件put到hdfs文件目錄上。put到hdfs上的數據文件以逗號「,」分隔符文件(csv),數據不論類型,直接是數據,沒有雙引號和單引號
>hadoop fs -rm /umtsd/test/test.txt //刪除umtsd/test目錄下的test.txt文件
>hadoop fs -cat /umtsd/test/test.txt //查看umtsd/test目錄下的test.txt文件內容

3hive操作使用:
#su - mr //切換到mr用戶下
#hive //進入hive查詢操作界面
hive>show tables; //查詢當前創建的所有表
hive>show databases; //查詢當前創建的資料庫
hive>describe table_name; {或者desc table_name}//查看錶的欄位的定義和分區信息,有明確區分(impala下該命令把分區信息以欄位的形式顯示出來,不怎麼好區分)
hive> show partitions table_name; //查看錶對應數據現有的分區信息,impala下沒有該命令
hive> quit;//退出hive操作界面

hive>desc formatted table_name; 查看錶結構,分隔符等信息

hive> alter table ceshi change id id int; 修改表的列數據類型 //將id數據類型修改為int 注意是兩個id

hive> SHOW TABLES '.*s'; 按正條件(正則表達式)顯示表,

[mr@aico ~]$ exit; 退出mr用戶操作界面,到[root@aico]界面

impala操作使用:
#su - mr //切換到mr用戶下
#cd impala/bin //進入impala安裝bin目錄
#/impala/bin> impala-shell.sh -i 10.10.234.166/localhost //進入impala查詢操作界面
[10.10.234.166:21000] >show databases; //查詢當前創建的資料庫
[10.10.234.166:21000] >use database_name; //選擇使用資料庫,默認情況下是使用default資料庫
[10.10.234.166:21000] > show tables; //查詢當前資料庫下創建的所有表
[10.10.234.166:21000] >describe table_name; //查看錶的欄位的定義,包括分區信息,沒有明確區分
[10.10.234.166:21000] > describe formatted table_name; //查看錶對應格式化信息,包括分區,所屬資料庫,創建用戶,創建時間等詳細信息。
[10.10.234.166:21000] >refresh table_name; //刷新一下,保證元數據是最新的
[10.10.234.166:21000] > alter TABLE U107 ADD PARTITION(reportDate="2013-09-27",rncid=487)LOCATION '/umts/cdt/
MREMITABLE/20130927/rncid=487' //添加分區信息,具體的表和數據的對應關系
[10.10.234.166:21000] > alter TABLE U100 drop PARTITION(reportDate="2013-09-25",rncid=487); //刪除現有的分區,數據與表的關聯
[10.10.234.166:21000] >quit; //退出impala操作界面

[mr@aicod bin]$ impala-shell; 得到welcome impala的信息,進入impala 查詢操作界面

[aicod:21000] > 按兩次tab鍵,查看可以用的命令

alter describe help profile shell values

connect drop history quit show version

create exit insert select unset with

desc explain load set use

⑶ 如何在Linux上安裝與配置Hadoop

Hadoop最早是為了在Linux平台上使用而開發的,但是Hadoop在UNIX、Windows和Mac OS X系統上也運行良好。不過,在Windows上運行Hadoop稍顯復雜,首先必須安裝Cygwin以模擬Linux環境,然後才能安裝Hadoop。Hadoop的安裝非常簡單,大家可以在官網上下載到最近的幾個版本,在Unix上安裝Hadoop的過程與在Linux上安裝基本相同,因此下面不會對其進行詳細介紹。

在Linux上安裝與配置Hadoop

在Linux上安裝Hadoop之前,需要先安裝兩個程序:

1. JDK 1.6或更高版本;

2. SSH(安全外殼源世協議),推薦安裝OpenSSH。

下面簡述一下安裝這兩個程序的原因:

1. Hadoop是用Java開發的,Hadoop的編譯及MapRece的運行都需要使用JDK。

2. Hadoop需要通過SSH來啟動salve列表中各台雹棚肢主機的守護進程,因此SSH也是必須安裝的,即使是安裝偽分布式版本(因為Hadoop並沒有區分集群式和偽分布式)。對於偽分布式,Hadoop會採用與集群相同的處理方式,即依次序啟動文件conf/slaves中記載的主機上的進程,只不過偽分布式中salve為localhost(即為自身),所以對於偽分布式Hadoop,SSH一樣是必須的。

一、安裝JDK 1.6

安裝JDK的過程很簡單,下面以Ubuntu為例。

(1)下載和安裝JDK

確保可以連接到互聯網,輸入命令:

sudoapt-getinstallsun-java6-jdk

輸入密碼,確認,然後就可以安裝JDK了。

這里先解釋一下sudo與apt這兩個命令,sudo這個命令允許普通用戶執行某些或全部需要root許可權命令,它提供了詳盡的日誌,可以記錄下每個用戶使用這個命令做了些什麼操作;同時sudo也提供了靈活的管理方式和正,可以限制用戶使用命令。sudo的配置文件為/etc/sudoers。

apt的全稱為the Advanced Packaging Tool,是Debian計劃的一部分,是Ubuntu的軟體包管理軟體,通過apt安裝軟體無須考慮軟體的依賴關系,可以直接安裝所需要的軟體,apt會自動下載有依賴關系的包,並按順序安裝,在Ubuntu中安裝有apt的一個圖形化界面程序synaptic(中文譯名為「新立得」),大家如果有興趣也可以使用這個程序來安裝所需要的軟體。(如果大家想了解更多,可以查看一下關於Debian計劃的資料。)

(2)配置環境變數

輸入命令:

sudogedit/etc/profile

輸入密碼,打開profile文件。

在文件的最下面輸入如下內容:

#setJavaEnvironment
exportJAVA_HOME=(你的JDK安裝位置,一般為/usr/lib/jvm/java-6-sun)
exportCLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"
exportPATH="$JAVA_HOME/:$PATH"

這一步的意義是配置環境變數,使你的系統可以找到JDK。

(3)驗證JDK是否安裝成功

輸入命令:

java-version

查看信息:

javaversion"1.6.0_14"
Java(TM)SERuntimeEnvironment(build1.6.0_14-b08)
JavaHotSpot(TM)ServerVM(build14.0-b16,mixedmode)

二、配置SSH免密碼登錄

同樣以Ubuntu為例,假設用戶名為u。

1)確認已經連接上互聯網,輸入命令

sudoapt-getinstallssh

2)配置為可以無密碼登錄本機。

首先查看在u用戶下是否存在.ssh文件夾(注意ssh前面有「.」,這是一個隱藏文件夾),輸入命令:

ls-a/home/u

一般來說,安裝SSH時會自動在當前用戶下創建這個隱藏文件夾,如果沒有,可以手動創建一個。

接下來,輸入命令:

ssh-keygen-tdsa-P''-f~/.ssh/id_dsa

解釋一下,ssh-keygen代表生成密鑰;-t(注意區分大小寫)表示指定生成的密鑰類型;dsa是dsa密鑰認證的意思,即密鑰類型;-P用於提供密語;-f指定生成的密鑰文件。(關於密鑰密語的相關知識這里就不詳細介紹了,裡面會涉及SSH的一些知識,如果讀者有興趣,可以自行查閱資料。)

在Ubuntu中,~代表當前用戶文件夾,這里即/home/u。

這個命令會在.ssh文件夾下創建兩個文件id_dsa及id_dsa.pub,這是SSH的一對私鑰和公鑰,類似於鑰匙及鎖,把id_dsa.pub(公鑰)追加到授權的key裡面去。

輸入命令:

cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys

這段話的意思是把公鑰加到用於認證的公鑰文件中,這里的authorized_keys是用於認證的公鑰文件。

至此無密碼登錄本機已設置完畢。

3)驗證SSH是否已安裝成功,以及是否可以無密碼登錄本機。

輸入命令:

ssh-version

顯示結果:

OpenSSH_5.1p1Debian-6ubuntu2,OpenSSL0.9.8g19Oct2007
Badescapecharacter'rsion'.

顯示SSH已經安裝成功了。

輸入命令:

sshlocalhost

會有如下顯示:

Theauthenticityofhost'localhost(::1)'can'tbeestablished.
RSAkeyfingerprintis8b:c3:51:a5:2a:31:b7:74:06:9d:62:04:4f:84:f8:77.
(yes/no)?yes
Warning:Permanentlyadded'localhost'(RSA)tothelistofknownhosts.
Linuxmaster2.6.31-14-generic#48-UbuntuSMPFriOct1614:04:26UTC2009i686
,pleasevisit:
http://help.ubuntu.com/
Lastlogin:MonOct1817:12:402010frommaster
admin@Hadoop:~$

這說明已經安裝成功,第一次登錄時會詢問你是否繼續鏈接,輸入yes即可進入。

實際上,在Hadoop的安裝過程中,是否無密碼登錄是無關緊要的,但是如果不配置無密碼登錄,每次啟動Hadoop,都需要輸入密碼以登錄到每台機器的DataNode上,考慮到一般的Hadoop集群動輒數百台或上千台機器,因此一般來說都會配置SSH的無密碼登錄。

三、安裝並運行Hadoop

介紹Hadoop的安裝之前,先介紹一下Hadoop對各個節點的角色定義。

Hadoop分別從三個角度將主機劃分為兩種角色。第一,劃分為master和slave,即主人與奴隸;第二,從HDFS的角度,將主機劃分為NameNode和DataNode(在分布式文件系統中,目錄的管理很重要,管理目錄的就相當於主人,而NameNode就是目錄管理者);第三,從MapRece的角度,將主機劃分為JobTracker和TaskTracker(一個job經常被劃分為多個task,從這個角度不難理解它們之間的關系)。

Hadoop有官方發行版與cloudera版,其中cloudera版是Hadoop的商用版本,這里先介紹Hadoop官方發行版的安裝方法。

Hadoop有三種運行方式:單節點方式、單機偽分布方式與集群方式。乍看之下,前兩種方式並不能體現雲計算的優勢,在實際應用中並沒有什麼意義,但是在程序的測試與調試過程中,它們還是很有意義的。

你可以通過以下地址獲得Hadoop的官方發行版,下載Hadoop-0.20.2.tar.gz並將其解壓,這里會解壓到用戶目錄下,一般為:/home/[你的用戶名]/。

單節點方式配置:

安裝單節點的Hadoop無須配置,在這種方式下,Hadoop被認為是一個單獨的Java進程,這種方式經常用來調試。

偽分布式配置:

你可以把偽分布式的Hadoop看做是只有一個節點的集群,在這個集群中,這個節點既是master,也是slave;既是NameNode也是DataNode;既是JobTracker,也是TaskTracker。

偽分布式的配置過程也很簡單,只需要修改幾個文件,如下所示。

進入conf文件夾,修改配置文件:

Hadoop-env.sh:
exportJAVA_HOME=「你的JDK安裝地址」

指定JDK的安裝位置:

conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

這是Hadoop核心的配置文件,這里配置的是HDFS的地址和埠號。

conf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

這是Hadoop中HDFS的配置,配置的備份方式默認為3,在單機版的Hadoop中,需要將其改為1。

conf/mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>

這是Hadoop中MapRece的配置文件,配置的是JobTracker的地址和埠。

需要注意的是,如果安裝的是0.20之前的版本,那麼只有一個配置文件,即為Hadoop-site.xml。

接下來,在啟動Hadoop前,需格式化Hadoop的文件系統HDFS(這點與Windows是一樣的,重新分區後的卷總是需要格式化的)。進入Hadoop文件夾,輸入下面的命令:

bin/HadoopNameNode-format

格式化文件系統,接下來啟動Hadoop。

輸入命令:

bin/start-all.sh(全部啟動)

最後,驗證Hadoop是否安裝成功。

打開瀏覽器,分別輸入網址:

http://localhost:50030(MapRece的Web頁面)
http://localhost:50070(HDFS的Web頁面)

如果都能查看,說明Hadoop已經安裝成功。

對於Hadoop來說,安裝MapRece及HDFS都是必須的,但是如果有必要,你依然可以只啟動HDFS(start-dfs.sh)或MapRece(start-mapred.sh)。

⑷ Hadoop 請教學習順序

雖然從事Hadoop方面工作,但是不是高手,畢竟只有一年經歷而已。
分享下本人的學習經歷吧。
了解Hadoop運行機制,可以學習Hadoop權威指南或者Hadoop實戰;
了解Hadoop運行流程,看懂HADOOP_HOME/bin/下面主要執行腳本。
查看core-default.xml/hdfs-default.xml/mapred-default.xml等默認配置
文件,及core-site.xml/hdfs-site.xml/mapred-site.xml等相關文件,學會
如何進行參數優化,以及掌握如何配置讀取壓縮文件,默認的gzip,及
自定義的lzo,學會自定義Combiner/Patitioner等,掌握各種輸入輸出
格式的區別及應用場景,學會自定義輸入輸出格式,其次學習MapRece演算法,
比如In-Map-Combing,相對頻度計算,Pairs演算法,Strips演算法等。掌握好
maprece編程
在這其中,需要好好閱讀HADOOP_HOME/src/目錄下的Hadoop源碼
這個就是開源最大的好處。說的比較亂,但是就湊合著借鑒下吧

閱讀全文

與hadoop分區命令相關的資料

熱點內容
線程javalock 瀏覽:892
c語言編譯運行結果查看器 瀏覽:110
androidpx轉dip 瀏覽:841
西藏編譯局是什麼級別 瀏覽:999
php提交代碼 瀏覽:597
如何用命令查找並刪除代碼塊 瀏覽:580
python初學路線圖 瀏覽:534
matlab遺傳演算法旅行商問題 瀏覽:304
將辦公軟體加入加密軟體的進程 瀏覽:724
聯想小新pro14編譯器 瀏覽:462
為什麼伺服器要關掉icmp協議 瀏覽:855
源碼編輯器如何設置難度 瀏覽:357
給pdf加目錄 瀏覽:476
加密軟體怎麼改安全問題 瀏覽:552
cmd命令ip 瀏覽:946
python輸出單引號雙引號 瀏覽:272
腳本編程管理命令 瀏覽:379
小愛音箱pro怎麼自己裝app 瀏覽:118
建立ftp文件夾命令 瀏覽:571
sha1withrsa演算法 瀏覽:455