㈠ hadoop安裝問題:HDFS文件系統不能格式化。求解!!
1、找不到hadoop命令,是因為你沒有將hadoop的bin目錄加入PATH(只有加入PATH環境變數中的程序才可以直接訪問)。
你可以
a)cd $HADOOP_HOME(如果進行了配置)然後執行bin/hadoop。
b)乾脆使用全路徑
c)將hadoop的bin目錄加入PATH中。
2、jps是java的工具。輸入 jps顯示8813 Jps,表示現在沒有正在運行的java程序。
hadoop的安裝,只需要解壓即可。至少需要在conf目錄中的hadoop-env.xml文件中,配置JAVA_HOME才能運行。
㈡ hadoop的HDFS文件格式化hadoop namenode -format,只需要在初始的時候格式化一次
1、hadoop namenode -format命令只對namenode有效,對其它節點無效。
2、集群增加節點,只要在namenode節點的配置文件中,將IP和埠以及數據目錄配置一下就可以了。可以用更新或是重啟服務的命令,那麼新增的datanode就會自動追加到集中。
3、稱這樣的系統為高度自由可伸縮系統。增或減節點都能被智能控制節點監測到,並將相應的節點的變化,通過冗餘機制給予解決。
再思考下吧。
㈢ 如何在ubuntu中將hadoop的hdfs進行格式化我用hdfs namenode -format命令提示沒有hdfs該命令。
命令啟動hadoop集群,死活不見namenode節點。在解決這個問題的時候,又不斷的引出了很多新的問題。 雖然這些問題在以前學習hadoop時都解決過。但,正因為以前解決過,現在遇到這些問題就更不想重復解決了。想要以最快的速度啟動集群。最後想了一個餿主意。直接格式化namenode吧。 進入正題: hadoop中重新格式化namenode 因為之前正常啟動過hadoop集群。所以在hadoop的對應data目錄中,已經有很多相關文件夾了。我們在格式化之前得先刪除相關文件夾才行。 一、對於master主節點進行操作 一、刪除data、name、namesecondary三個文件夾。 二、刪除mrlocal目錄中的四個文件夾 三、刪除logs文件夾中的所有文件 二、對於node節點進行操作 一、刪除hdfs/data中的所有文件 二、刪除mrlocal中的所有文件 三、刪除logs中所有文件 基本刪除完成後。開始重新格式化namenode 三、格式化namenode [hadoop@master hadoop]$ bin/hadoop namenode -forma 格式化成功後。重新啟動集群 四、重新啟動集群 [hadoop@master hadoop]$ bin/start-all.sh 五、查看集群啟動情況 [hadoop@master hadoop]$ jps 三吧5一 Jps 三漆四四 TaskTracker 三陸二二 JobTracker 三二漆9 NameNode 三5三三 SecondaryNameNode 三三95 DataNode 如看到 [hadoop@master hadoop]$ jps 三吧5一 Jps 三漆四四 TaskTracker 三陸二二 JobTracker 三二漆9 NameNode 三5三三 SecondaryNameNode 三三95 DataNode 則代表啟動成功
㈣ hadoop在linux下的簡單配置
實際生產環境中,員工不會直接登陸伺服器,而是通過遠程連接工具,進行遠程登陸。那麼就需要知道伺服器的IP地址,一個用戶名和密碼。
1)安裝(略)
2)連接虛擬機(前提是物理機能ping通虛擬機)
當我們頻繁的在一台機器A上連接另外一台機器B時,不論是復制文件還是刪除文件,或者是進行其他操作。那麼都要使用機器B的用戶名和密碼。每次都需要輸入密碼,那麼效率降低了。這個時候,如果可以不輸入密碼,還有一定的安全性,可以防止黑客在中間截取信息。那麼就需要一種安全認證技術。
1)准備工作
2)測試
3)原理
[圖片上傳失敗...(image-3835b9-1576065751546)]
在搭建HDFS的完全分布式集群時,需要以下環境要求:
1)說明
2)配置域名映射
1)准備工作
2)解壓jdk到/opt/apps/
3)更名操作
4)配置環境變數
4.1)說明
4.2)配置
4.3)使當前窗口生效(或者reboot)
4.4)驗證
1)解壓縮
2)更名
3)配置
4)使當前窗口生效
5)驗證
1)守護進程布局
2)配置文件的說明
1)配置core-site.xml
2)hdfs-site.xml
3)mapred-site.xml
4)yarn-site.xml
5)slaves文件:配置所有datanode節點的主機名
6)hadoop-env.sh
7)yarn-env.sh
1)說明,使用完整克隆,克隆manager
2)克隆步驟
3)修改新克隆機器的主機名
4)修改新克隆機器的IP地址
5)重啟後,驗證免密登陸認證是否有效
1)目的
2)格式化的命令
注意:一定要選擇namenode所在的節點上進行格式化
1)開啟集群的命令
2)使用jps查看節點上的守護進程
3)使用http協議查看分布式文件系統
5)暴力解決節點不正常的方式
3.1 常用指令:
4.1.1 解壓hadoop-2.7.6.tar.gz到本地磁碟,如下圖:
4.1.2 配置環境變數
4.1.3 由於Hadoop是在32位系統上編譯的,並且對windows支持不好,所以需要把64的編譯本地庫文件(下圖的兩個文件),放入bin目錄中。
10.1.4 驗證環境變數是否生效:
10.1.5 如果報錯:Error: JAVA_HOME is incorrectly set
為了方便開發,我們可以將相關的jar提取出來。
㈤ hdfs格式化exiting with status1怎麼辦
先輸入命令:sudo su獲得root許可權
輸入命令:sudo chmod -R a+w /usr/local/hadoop/ 粗體是自己的安裝路徑
輸入命令exit回到普通用戶身份
此時再在Hadoop的根目錄下:hdfs namenode -format
成功格式化!
㈥ 如何配置Hadoop環境
資源下載
1、JDK下載:下載鏈接
2、hadoop:下載鏈接
3、下載完成後驗證一下下載,將計算的MD5值與官網的進行對比已驗證安裝包的准確性:
md5sum ./hadoop-2.6.*.tar.gz | tr "a-z" "A-Z" # 計算md5值,並轉化為大寫,方便比較1
一、創建Hadoop用戶
創建hadoop用戶,並分配以用戶名為家目錄/home/hadoop,並將其加入到sudo用戶組,創建好用戶之後,以hadoop用戶登錄:
sudo useradd -m hadoop -s /bin/bash sudo adser hadoop sudo
sudo passwd hadoop # 設置hadoop用戶密碼123
二、安裝JDK、Hadoop及配置環境變數
安裝,解壓JDK到/usr/lib/java/路徑下,Hadoop到/usr/local/etc/hadoop/路徑下:
tar zxf ./hadoop-2.6.*.tar.gz
mv ./hadoop-2.6.* /usr/local/etc/hadoop # 將 /usr/local/etc/hadoop作為Hadoop的安裝路徑12
解壓完成之後,可驗證hadoop的可用性:
cd /usr/local/etc/hadoop
./bin/hadoop version # 查看hadoop的版本信息12
若在此處,會出現類似以下的錯誤信息,則很有可能是該安裝包有問題。
Error: Could not find or load main class org.apache.hadoop.util.VersionInfo1
配置環境,編輯「/etc/profile」文件,在其後添加如下信息:
export HADOOP_HOME=/usr/local/etc/hadoopexport JAVA_HOME=/usr/lib/java/jdk1.8.0_45export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin12345
使配置的變數生效:
source /etc/profile1
三、測試一下
在此我們可以運行一個簡單的官方Demo:
cd `echo $HADOOP_HOME` # 到hadoop安裝路徑
mkdir ./input
cp ./etc/hadoop/*.xml ./input
hadoop jar ./share/hadoop/maprece/hadoop-maprece-examples-*.jar grep ./input ./output 'dfs[a-z.]+'1234
輸出的結果應該會是:
1 dfsadmin 1
這里有一點需要注意,該Example程序運行時不能已存在output目錄,否則或將無法執行!
四、Hadoop的偽分布式環境搭建
什麼是偽分布式?Hadoop 偽分布式模式是在一台機器上模擬Hadoop分布式,單機上的分布式並不是真正的分布式,而是使用線程模擬的分布式。分布式和偽分布式這兩種配置也很相似,唯一不同的地方是偽分布式是在一台機器上配置,也就是名位元組點(namenode)和數據節點(datanode)均是同一台機器。
需要配置的文件有core-site.xml和hdfs-site.xml這兩個文件他們都位於${HADOOP_HOME}/etc/hadoop/文件夾下。
其中core-site.xml:
文件hdfs-site.xml的配置如下:
配置完成後,執行格式化命令,使HDFS將制定的目錄進行格式化:
若格式化成功,在臨近輸出的結尾部分可看到如下信息:
如果發現並沒有出現如上信息,則使用刷新節點命令進行刷新:
八、HDFS集群實例測試
依然是之前的那個示例,首先,創建一個數據源文件夾,並添加數據:
運行maprece示例:
holding…
㈦ HDFS操作命令
HDFS命令基本格式:hadoop fs -cmd < args >
表格:
注意:以上表格中路徑包括hdfs中的路徑和linux中的路徑。對於容易產生歧義的地方,會特別指出「linux路徑」或者「hdfs路徑」。如果沒有明確指出,意味著是hdfs路徑。
HDFS有一個默認的工作目錄/user/$USER,其中$USER是用戶的登錄用戶名。不過目錄不會自動建立,需要mkdir建立它
命令格式:hadoop fs -mkdir
注意:支持級聯創建新目錄,Hadoop的mkdir命令會自動創建父目錄,類似於帶-p的linux命令
put命令從本地文件系統中 復制單個或多個 源路徑到目標文件系統,也支持從標准輸入設備中讀取輸入並寫入目標文件系統。分為本地上傳和上傳到HDFS中。
命令格式:hadoop fs -put filename
最後一個參數是句點,相當於放入了默認的工作目錄,等價於 hadoop fs -put example.txt /user/chen
上傳文件時,文件首先復制到DataNode上,只有所有的DataNode都成功接收完數據,文件上傳才是成功的。
命令格式:hadoop dfs put filename newfilename
從本地文件系統中復制單個或多個源路徑到目標文件系統。也支持從 標准輸入 中讀取輸入寫入目標文件系統。
採用-ls命令列出HDFS上的文件。在HDFS中未帶參數的-ls命令沒有返回任何值,它默認返回HDFS的home目錄下
的內容。在HDFS中,沒有當前工作目錄這樣一個概念,也沒有cmd這樣的命令。
命令格式:user@NameNode:hadoop$ bin/hadoop dfs -ls
如:
通過「-ls 文件夾名」 命令瀏覽HDFS下文件夾中的文件
命令格式:hadoop dfs -ls 文件夾名
通過該命令可以查看in文件夾中的所有文檔文件
通過「-cat 文件名」命令查看HDFS下文件夾中某個文件的內容
命令格式:hadoop$ bin/hadoop dfs -cat 文件名
通過這個命令可以查看in文件夾中所有文件的內容
通過「-get 文件按1 文件2」命令將HDFS中某目錄下的文件復制到本地系統的某文件中,並對該文件重新命名。
命令格式:hadoop dfs -get 文件名 新文件名
-get 命令與-put命令一樣,既可以操作目錄,也可以操作文件
通過「-rmr 文件」命令刪除HDFS下的文件
命令格式:hadoop$ bin/hadoop dfs -rmr 文件
-rmr 刪除文檔命令相當於delete的遞歸版本。
通過-format命令實現HDFS格式化
命令格式:user@NameNode:hadoop$ bin/hadoop NameNode -format
通過運行start-dfs.sh,就可以啟動HDFS了
命令格式:user@NameNode:hadoop$ bin/ start-dfs.sh
當需要退出HDFS時,通過stop-dfs.sh 就可以關閉HDFS
命令格式:user@NameNode:hadoop$ bin/ stop-dfs.sh
HDFS的命令遠不止這些,對於其他操作,可以通過-help commandName 命令列出清單。下面列舉一些命令進行說明。
(1)chgrp改變文件所屬的組命令
chgrp命令的用途是:更改文件或目錄的組所有權。
語法格式:hadoop fs -charg [-R] GROUP URL .....
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是文件的所有者或者超級用戶。
(2)chmod改變文件的許可權
chmod用於改變文件或目錄的訪問許可權,這個Linux系統管理員最常用的命令之一。
使用方法:hadoop fs -chmod [-R] ...
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是文件的所有者或者是超級用戶
(3)chown改變文件的擁有者
chown命令改變文件的擁有者。
使用方法:hadoop fs -chown [-R]....
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是超級用戶。
(4)FromLocal命令
除了限定 源路徑 是只能是一個 本地文件 外,其他方面和put命令相似。
使用方法:hadoop fs -FromLocal <localsrc> URI
(5)ToLocal命令
除了限定 目標路徑 是一個 本地文件 外,其他方面和get命令類似。
使用方法:hadoop fs -ToLocal {-ignorecrc} {-crc} URI <localdst>
(6)cp命令
cp命令是將文件從源路徑復制到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄。
使用方法:hadoop fs -cp URI [URI....] <dest>
返回值:成功返回0 ,失敗返回-1
(7)命令
命令顯示目錄中 所有文件的大小 ,或者當只指定一個文件時,顯示此文件的大小
使用方法:hadoop fs - URI [URI........]
返回值
成功返回0,失敗返回-1
(8)s命令
s是顯示 文件大小 的命令。
使用方法:hadoop fs -s <args>
(9)expunge命令
expunge是清空回收站的命令
使用方法:hadoop fs -expunge
(10)get命令
get是復制文件到本地文件系統的命令
使用方法:hadoop fs -get [-ignorecrc] [-crc] <localdst>
可用-ignorecrc選項復制CRC校驗失敗的文件:使用-CRC選項復制文件以及CRC信息。
返回值
成功返回0,失敗返回-1
(11)getmerge命令
getmerge命令用於接受一個源目錄和一個目標文件作為輸入,並且將源目錄中所有的文件合並成本地目標文件。
使用方法:hadoop fs -getmerge <src> <localdst> [addnl]
參數說明:addl是可選的,用於指定在每個文件結尾添加一個換行符;
假設在你的hdfs集群上有一個/user/hadoop/output目錄
裡面有作業執行的結果(多個文件組成)part-000000,part-000001,part-000002
然後就可以在本地使用vi local_file查看內容了
(12)ls命令
ls命令查看當前目錄下的信息
使用方法:hadoop fs -ls <args>
如果是 文件 ,則按照如下格式返迴文件信息:
文件名 <副本數>文件大小 修改日期 修改時間 許可權 用戶ID 組ID
如果是 目錄 ,則返回它直接子文件的一個列表,就像在UNIX中一樣。目錄返回i額表的信息如下:
目錄名<dir>修改日期 修改時間 許可權 用戶ID 組ID
返回值
成功返回0,失敗返回-1
(13)lsr命令
lsr命令是-ls命令的遞歸版,類似於UNIX中的ls-r。
使用方法:hadoop fs -lsr <args>
(14)movefromLocal命令
復制一份本地文件到hdfs,當成功後,刪除本地文件
使用方法:dfs -moveFromLocal <src> <dst>
(14.5)moveToLocal命令
類似於-get,但是當復制完成後,會刪除hdfs上的文件
使用方法:moveToLocal <src> <localDest>
(15)mv命令
將文件從源路徑移動到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄
使用方法:hadoop fs -mv URI [URI.....] <dest>
備註:不允許在不同的文件系統間移動文件。
返回值
成功返回0,失敗返回-1
(16)put 命令
put命令從本地文件系統中復制單個或多個源路徑到目標文件系統,也支持從標准輸入中讀取輸入寫入目標文件系統
使用方法:hadoop fs -put <localsrc> .... <dst>
(17)rm命令
rm命令刪除指定的文件,只刪除非空目錄和文件。
使用方法:hadoop fs -rm URI [URI......]
請參考rmr命令了解遞歸刪除。
(18)rmr命令
rmr命令是delete命令的遞歸版本
使用方法:hadoop fs -rmr URI [URI.......]
返回值
成功返回0,失敗返回-1
(19)setrep命令
setrep命令可以改變一個文件的副本系數。
使用方法:hadoop fs -setrep [-R] <path>
參數說明:-R 選項用於遞歸改變目錄下所有文件的副本系數
返回值
成功返回0,失敗返回-1
(20)stat命令
stat命令用於返回指定路徑的統計信息
使用方法:hadoop fs -stat URI [URI......]
返回值
成功返回0,失敗返回-1
(21)tail命令
tail命令將文件尾部1KB的內容輸出到stdout。支持-f選項,行為和UNIX中一致
使用方法:hadoop fs -tail [-f] URI
返回值
成功返回0,失敗返回-1
(22)test命令
test命令是檢查命令,可以檢查文件是否存在、文件的大小等。
使用方法:hadoop fs -test -[ezd] URI
(23)text命令
text命令用於將源文件輸出問文本格式
使用方法:hadoop fs -text <src>
允許的格式是zip和TextRecordInputStream。
(24)touchz 命令
touchz命令用於創建一個0位元組的空文件。
使用方法: hadoop fs -touchz URI [URI....]
返回值
成功返回0,失敗返回-1