境:從零開始的大數(shù)據(jù)入門實驗)
簡介面向大數(shù)據(jù)入門讀者的實驗一配套文檔系統(tǒng)講解Linux操作與Hadoop操作的基礎訓練。內容圍繞三個核心目標展開掌握Linux虛擬機安裝、熟悉常用Linux命令、完成Hadoop偽分布式安裝適合正在準備大數(shù)據(jù)課程實驗或需要搭建單機實驗環(huán)境的在校學生與自學者。壓縮包內包含1個docx文件大小289KB文檔結構清晰覆蓋實驗目的、平臺選擇、操作命令詳解與知識點總結可直接打印或者對照步驟上機練習。目前已有974人學習下載是同類入門實驗中較常被參考的一份。文件重點演示cd、ls、mkdir、rmdir、cp、mv、rm、cat、tac等常用命令并結合Hadoop 3.1.3給出偽分布式安裝及基礎Shell操作說明包含WordCount實例驗證思路同時補充Java環(huán)境變量配置、tar壓縮解壓、find與grep檢索等實用操作幫助讀者快速打通大數(shù)據(jù)實驗的起步環(huán)節(jié)。1. 聽到 Hadoop 就頭大它到底是什么這門實驗到底在帶你做什么第一次接觸大數(shù)據(jù)實操課很多人都會在同一個地方懵住課還沒怎么開始老師先讓你把 Linux 虛擬機裝起來接著在里面敲一堆看不懂的命令最后再裝一個叫 Hadoop 的東西。這里的關鍵詞其實只有兩個——大數(shù)據(jù)和 Linux。Hadoop 是目前大數(shù)據(jù)處理繞不開的基礎框架它能用一堆普通電腦組成集群一起處理海量數(shù)據(jù)而 Hadoop 在 Linux 上運行最穩(wěn)定、生態(tài)工具也最全。所以這堂入門實驗的本質就是帶你做三件事裝出你的第一臺 Linux 虛擬機、練熟最常用的 Linux 命令、再在單機上把 Hadoop 的偽分布式環(huán)境跑起來親手完成幾個文件操作。如果你現(xiàn)在連“終端”在哪里都還不知道完全不用慌這篇就是給你準備的。讀完你就能明白每一步在干什么也能照著自己動手做一遍。2. 先把地基打好為什么 Windows 上必須裝一臺 Linux 虛擬機很多新手拿到實驗指導書的第一反應是“我電腦就是 Windows直接在 Windows 上裝 Hadoop 不行嗎” 行但你會把自己坑得很慘。這一章就把虛擬機這件事講透順便給你一條能走通的安裝路徑。2.1 為什么非要在 Linux 上跑 HadoopHadoop 的設計目標、測試環(huán)境和主流生產(chǎn)部署幾乎全部圍繞 Linux 展開。它的啟動腳本是 Shell 腳本它管理文件依賴 Linux 的用戶權限體系它生態(tài)里的大多數(shù)配套工具默認只發(fā)布 Linux 版本。你可以把 Hadoop 想象成一位在特定廚房里練了十年手藝的廚師換一間廚房也能做菜但處處不對勁。在 Windows 上硬裝 Hadoop 不是不可能但你會遇到很多“別人沒遇到過”的問題。比如教程里寫的路徑是 /usr/local/hadoopWindows 上要改成盤符教程里說用 chown 改文件歸屬Windows 上沒有這個概念。對一個零基礎新手來說跟著主流走就是少踩坑。那虛擬機是什么簡單說就是用軟件在你現(xiàn)有電腦里“模擬出另一臺完整電腦”。這臺虛擬電腦有自己的硬盤、內存、網(wǎng)卡你可以在里面安裝 Ubuntu 系統(tǒng)。對你來說它只是個窗口里的桌面對 Ubuntu 來說它以為自己獨占了一臺機器。凡是教程里說 Linux 能做到的事在虛擬機里都能做。我第一次學的時候也覺得多此一舉后來才發(fā)現(xiàn) Hadoop 的啟動腳本全是 .sh 文件這些腳本在 Linux 里就是原生應用雙擊不行、要在終端里跑這條路走通之后后面所有實驗都順暢了。2.2 用 VirtualBox 裝 Ubuntu可視化步驟清單實驗平臺推薦使用 VirtualBox 和 Ubuntu 18.04或 16.04。這兩個都是免費資源下載渠道在各自官網(wǎng)就能找到。整個安裝過程大概半小時核心步驟是這么幾條在 Windows 上安裝 VirtualBox。一路“下一步”即可安裝完成后建議重啟一次電腦讓驅動生效。下載 Ubuntu 18.04 的桌面版鏡像文件后綴是 .iso。鏡像就是一張“虛擬光盤”虛擬機要依靠它來安裝系統(tǒng)。打開 VirtualBox點擊“新建”給虛擬機起個名字類型選 Linux版本選 Ubuntu 64-bit。分配內存。建議給 2GB 到 4GB。如果你電腦內存總共只有 8GB給虛擬機 2GB 也能跑只是慢一點低于 2GB 會非常吃力。創(chuàng)建虛擬硬盤。建議 20GB 起步類型選默認的 VDI 就行。設置里加載 Ubuntu 鏡像在“存儲”里把剛才下載的 .iso 掛載到光驅位置然后啟動虛擬機。虛擬機屏幕里會進入 Ubuntu 安裝界面選“Install Ubuntu”按提示選語言、時區(qū)、鍵盤布局設置一個用戶名和密碼。安裝完成后重啟進入 Ubuntu 桌面整個流程就走完了。提示安裝過程中如果虛擬窗口很小先別管裝完系統(tǒng)后裝“增強功能”就能全屏使用。裝完系統(tǒng)先別急著開始還有三件小事要處理見下一節(jié)。2.3 裝完系統(tǒng)先做三件小事第一件是更新軟件源。終端里執(zhí)行 sudo apt update作用是讓系統(tǒng)拿到最新的軟件清單后面的安裝才不會找不到包。第二件是安裝 SSH 服務。這一步和本實驗強相關Hadoop 的各個角色之間通信要用 SSH偽分布式雖然在一臺機器上跑但 NameNode 連接 DataNode 時會用它。所以我們要裝 openssh-server并配置免密登錄。聽起來很玄其實就是“辦一張門禁卡”讓 Hadoop 進程自己進門不用輸密碼。# 安裝 SSH 服務端 sudo apt install -y openssh-server # 生成一張“門禁卡”密鑰按三次回車即可 ssh-keygen -t rsa -P -f ~/.ssh/id_rsa # 把公鑰寫進授權列表 cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys # 測試免密登錄如果能直接進到 shell 說明成功退出用 exit ssh localhost第三件是確認 Java 環(huán)境。Hadoop 跑在 Java 之上實驗要求配置 JAVA_HOME前提是系統(tǒng)里已經(jīng)裝了 JDK。在終端執(zhí)行 java -version如果提示找不到命令先去裝一個 JDK記住你安裝的路徑后面配置環(huán)境變量要用。2.4 初次登錄需要建立的兩個直覺第一次進 Ubuntu 桌面大部分人都會有點迷。你需要建立兩個直覺第一終端是一個“和電腦對話的輸入框”。圖形界面里點鼠標能做的事在終端里敲命令也能做而且更適合批量操作。終端通常在左側任務欄里或者按 CtrlAltT 打開。第二sudo 的意思是“以管理員權限執(zhí)行這條命令”。類比 Windows 里的“以管理員身份運行”它不改變你的身份只是讓一條命令擁有更高權限。所以看到 sudo 開頭就是在做系統(tǒng)級操作。3. 命令練熟再進下一步Linux 常用的 17 個命令一次講明白實驗要求掌握的 Linux 命令一共有十幾條聽起來很多但它們其實分成了清晰的幾組。你不需要背跟著下面的場景過一遍重點感受“每條命令解決什么問題”做完實驗自然就記住了。3.1 先學會認路cd、ls、pwdLinux 里所有的文件都放在一個以 / 開頭的目錄樹里。cd 是切換目錄ls 是列出目錄內容pwd 是告訴你現(xiàn)在在哪。這三條命令就像手機地圖里的“定位 瀏覽”。# 切換到 /usr/local 目錄 cd /usr/local # 返回當前目錄的上一級 cd .. # 回到當前登錄用戶的主文件夾也就是家目錄 cd ~ # 查看 /usr 目錄下有哪些文件和目錄 ls /usr # 顯示當前完整路徑 pwd這里有個新手很容易迷糊的點~/usr/local 和 /usr/local 不是一回事。~ 是當前用戶的主目錄/ 是系統(tǒng)根目錄。一條命令帶不帶斜杠開頭含義可能完全不同。遇到路徑不確定時先 pwd 確認自己站在哪里。3.2 新建和刪除目錄mkdir、rmdir、touchmkdir 是新建目錄rmdir 是刪除空目錄touch 是創(chuàng)建空文件。實驗里有個經(jīng)典練習在 /tmp 下創(chuàng)建 a1/a2/a3/a4 這種多級目錄用 mkdir -p 一步到位。# 進入 /tmp創(chuàng)建目錄 a cd /tmp mkdir a # 創(chuàng)建多級目錄 a1/a2/a3/a4 mkdir -p a1/a2/a3/a4 # 刪除空目錄 a rmdir a # 刪除多級空目錄 a1/a2/a3/a4會從最內層開始刪 rmdir -p a1/a2/a3/a4 # 在 /tmp 下創(chuàng)建一個空文件 hellols -l 可以查看它的時間 touch hellormdir 只能刪空目錄如果里面有文件就會報錯。這是 Linux 的一個保護機制防止你誤刪有內容的目錄。想刪非空目錄要等下文的 rm -r 出場。3.3 文件的復制、移動、改名、刪除cp、mv、rm這四條是日常用得最頻繁的命令。cp 負責復制mv 負責移動和改名rm 負責刪除。實驗中還涉及 chown 這個命令用來修改文件所有者也是文件操作的重要一環(huán)。# 把家目錄下的 .bashrc 復制到 /usr 下并重命名為 bashrc1 cp ~/.bashrc /usr/bashrc1 # 在 /tmp 下新建目錄 test再復制到 /usr 下 mkdir /tmp/test cp -r /tmp/test /usr/ # 把 /usr/bashrc1 移動到 /usr/test 目錄里 mv /usr/bashrc1 /usr/test/ # 把 /usr/test 重命名為 test2 mv /usr/test /usr/test2 # 刪除 /usr/test2 里的 bashrc1 rm /usr/test2/bashrc1 # 刪除整個 test2 目錄-r 表示遞歸刪除 rm -r /usr/test2 # 把 hello 文件所有者改成 root需要管理員權限 sudo chown root /tmp/hello特別注意 rm -r 和 rm -rf。Linux 刪除文件沒有回收站刪了就真的沒了。r 表示遞歸刪除目錄里的所有內容f 表示強制刪除不詢問。新手對這兩個參數(shù)一定要保持敬畏不確定自己在刪什么的時候先 ls 看清楚再動手。3.4 查看文件內容cat、tac、more、head、tail這五個命令都是“打開文件看內容”但視角不同。實驗里反復拿家目錄的 .bashrc 做練習你跟著過一遍就有感覺了。命令行為適合場景cat從頭到尾一口氣輸出全部內容文件短的時候tac從最后一行開始反向輸出偶爾想倒著看more一頁一頁翻動按空格翻頁文件很長、想慢慢看head只看開頭默認 10 行快速確認格式tail只看結尾默認 10 行看日志最新輸出# 正著看 .bashrc 全部內容 cat ~/.bashrc # 反著看 .bashrc tac ~/.bashrc # 分頁查看按 q 退出 more ~/.bashrc # 查看前 20 行 head -n 20 ~/.bashrc # 查看最后 20 行 tail -n 20 ~/.bashrchead 和 tail 的 -n 參數(shù)表示“幾行”這是最常見的用法。等你以后接觸了 Hadoop 日志會經(jīng)常用 tail 看日志尾部的最新報錯信息那時你就知道這會比打開整個文件高效多少。3.5 查找、打包、搜字符串find、grep、tarfind 按名字找文件grep 在文件內容里找字符串tar 負責打包和解壓。這三個都是“檢索類”命令方向不同find 管文件位置grep 管內容匹配tar 管歸檔搬運。# 在家目錄下找文件名為 .bashrc 的文件 find ~ -name .bashrc # 在 .bashrc 里查找字符串 examples帶行號顯示 grep -n examples ~/.bashrc # 在根目錄 / 下新建文件夾 test然后打包成 test.tar.gz cd / tar -zcvf test.tar.gz test # 把 /test.tar.gz 解壓到 /tmp 目錄 tar -zxvf /test.tar.gz -C /tmptar 的參數(shù)看起來嚇人其實拆開記就行z 表示用 gzip 壓縮c 表示創(chuàng)建打包文件v 表示顯示過程f 表示后面跟的是文件名解壓時把 c 換成 x再補一個 -C 指定解壓目標目錄。這套記法能覆蓋你 90% 的使用場景。3.6 配置環(huán)境變量讓命令“永久認識自己”實驗的最后一步不是命令而是配置環(huán)境變量。它解決一個實際問題每次打開終端系統(tǒng)怎么知道你的 Java 裝在哪個路徑答案是提前把答案寫進一個叫 ~/.bashrc 的文件里終端一啟動就會自動讀它。# 用 vim 打開 .bashrc vim ~/.bashrc # 在文件末尾加兩行把路徑替換成你實際的 JDK 安裝路徑 export JAVA_HOME/usr/lib/jvm/你的JDK路徑 export PATH$PATH:$JAVA_HOME/bin # 保存退出先按 Esc輸入 :wq 再回車 # 讓配置立刻生效 source ~/.bashrc # 驗證輸出 JAVA_HOME 的值 echo $JAVA_HOME這里最容易翻車的點是忘記 source。改了 .bashrc 之后當前終端不會自動更新必須執(zhí)行 source ~/.bashrc改動才算真正生效。如果你發(fā)現(xiàn) echo $JAVA_HOME 輸出是空的十有八九就是漏了這一步。4. Hadoop 偽分布式安裝讓一臺電腦假裝一個集群Linux 命令練完接下來就是重頭戲裝 Hadoop。這一章先講清“偽分布式”到底是個什么原理再帶你走一遍從下載到驗證的完整流程。4.1 偽分布式是什么一個人分飾多角真實的大數(shù)據(jù)集群是很多臺服務器各司其職有的節(jié)點專門管“文件目錄和檔案索引”叫 NameNode有的節(jié)點專門存“實際文件內容”叫 DataNode還有節(jié)點負責任務調度叫 ResourceManager。每臺機器獨立運行通過網(wǎng)絡通信。偽分布式的意思是沒有多臺機器只有你這一臺虛擬機但要模擬出整個集群的邏輯。怎么辦同時啟動多個進程每個進程扮演一個角色。你的電腦既當 NameNode 又當 DataNode還當 ResourceManager??雌饋硎羌簩嶋H上都是同一臺機器的進程。這個“偽”字很重要。它能讓你把集群的目錄結構、文件上傳下載、啟動停止這些操作完整跑一遍等以后接觸真集群命令幾乎一模一樣只是機器數(shù)和配置項更多。對入門者來說這是性價比最高的環(huán)境。4.2 下載、解壓、準備環(huán)境Hadoop 官網(wǎng)提供編譯好的壓縮包本實驗使用的是 3.1.3 版本。下載后得到一個 hadoop-3.1.3.tar.gz 文件我們需要把它解壓到 /usr/local/hadoop這個路徑是實驗里反復會用到的地方。# 先確保你已進入下載文件所在目錄然后解壓到 /usr/local sudo tar -zxvf hadoop-3.1.3.tar.gz -C /usr/local # 改目錄歸屬避免每次操作都要 sudo把“你的用戶名”換成實際登錄名 sudo chown -R 你的用戶名 /usr/local/hadoop # 驗證版本看到版本號說明解壓和環(huán)境變量都到位了 hadoop version如果 hadoop version 提示找不到命令回到第 3 章最后一步檢查 JAVA_HOME 是否配置并 source 生效。這一步不過后面所有操作都不必開始。4.3 核心配置文件到底改什么Hadoop 的配置分散在 /usr/local/hadoop/etc/hadoop/ 目錄下的多個 XML 文件里。新手最容易犯的錯是想一口氣搞懂所有配置。不用急這次實驗只動兩個文件。core-site.xml 是全局核心配置。我們需要告訴 Hadoop默認文件系統(tǒng)地址是什么、臨時數(shù)據(jù)放在哪里。configuration !-- 默認文件系統(tǒng)端口 9000 是 NameNode 的通信端口 -- property namefs.defaultFS/name valuehdfs://localhost:9000/value /property !-- 臨時數(shù)據(jù)目錄NameNode 和 DataNode 的元數(shù)據(jù)都存在這里 -- property namehadoop.tmp.dir/name value/usr/local/hadoop/tmp/value /property /configurationhdfs-site.xml 是 HDFS 的專屬配置。最關鍵的一項是把副本數(shù)設為 1。默認副本數(shù)是 3意思是同一份數(shù)據(jù)要復制到三臺機器你只有一臺機器不改成 1系統(tǒng)會一直想復制卻找不到地方日志里各種報錯。configuration !-- 副本數(shù)設為 1因為偽分布式只有一臺機器 -- property namedfs.replication/name value1/value /property /configuration提示以后跑 WordCount 等任務時通常還要配置 yarn-site.xml。到那一步再按實驗指導書補今天先把 HDFS 跑通。4.4 格式化、啟動、驗證配置改完后啟動流程分三步格式化、啟動 HDFS、啟動 YARN。格式化這個動作容易讓人緊張我用白話解釋一下NameNode 啟動前要先建立一個“檔案索引”記錄整個文件系統(tǒng)有哪些目錄和文件。hdfs namenode -format 就是初始化這個索引類似于新硬盤買回來先分區(qū)格式化。它只會清空 HDFS 的元數(shù)據(jù)不會刪除你的安裝文件。# 第一步初始化 NameNode 的元數(shù)據(jù) hdfs namenode -format # 第二步啟動 HDFS啟動 NameNode、DataNode、SecondaryNameNode start-dfs.sh # 第三步啟動 YARN啟動 ResourceManager、NodeManager start-yarn.sh # 第四步用 jps 查看當前 Java 進程驗證各角色是否都起來了 jps執(zhí)行完 jps 后如果一切正常你應該看到 5 個進程NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager。少一個就要回到第 5 章排查。最后是瀏覽器驗證。打開瀏覽器訪問 http://localhost:9870這是 Hadoop 3.x 的 HDFS 管理界面。能看到頁面并且首頁顯示 Live Nodes 為 1你的偽分布式集群就算真正跑起來了。注意端口不是常見的 8080 或者 50070Hadoop 3 默認是 9870。5. 第一次啟動就翻車Hadoop 安裝常見坑與排查指南環(huán)境搭建這一步幾乎所有新手都會在某個地方卡住。我自己第一次搭的時候也折騰到半夜。下面四條是最典型的坑每一條按“現(xiàn)象→原因→解決”的順序寫你遇到類似的問題直接對照著查。5.1 Datanode 起不來Live Nodes 顯示 0現(xiàn)象啟動完成后jps 里怎么都找不到 DataNode 進程或者瀏覽器訪問 9870 端口發(fā)現(xiàn) Live Nodes 數(shù)量是 0明明 NameNode 還活著。原因八成是你之前不小心執(zhí)行了多次 hdfs namenode -format。每次格式化都會生成一個新的集群 IDCluster ID而 DataNode 啟動時會拿著自己上次記住的集群 ID 去和 NameNode 核對。兩邊對不上DataNode 就拒絕啟動。這就好比你搬家換了新小區(qū)門禁密碼舊門禁卡自然刷不開門。誰造成的最多反復格式化的人。解決讓 DataNode 忘掉舊 ID重新認識新 ID。具體做法是找到前文 core-site.xml 里 hadoop.tmp.dir 指定的數(shù)據(jù)目錄把里面的數(shù)據(jù)刪掉然后重新格式化。# 先停掉所有 Hadoop 進程 stop-all.sh # 刪除臨時數(shù)據(jù)目錄路徑要和 core-site.xml 里配的一致 rm -rf /usr/local/hadoop/tmp # 重新初始化 NameNode hdfs namenode -format # 重啟集群 start-all.sh # 再次確認進程 jps之后再去 9870 頁面刷新Live Nodes 應該顯示 1。記住一個血淚經(jīng)驗正常運行的集群永遠不要去動格式化命令。5.2 瀏覽器打不開 9870 頁面現(xiàn)象輸 http://localhost:9870 之后頁面一直轉圈、拒絕連接或者顯示“無法訪問此網(wǎng)站”。原因分三種情況。第一種是 HDFS 根本沒啟動成功jps 里看不到 NameNode第二種是系統(tǒng)防火墻攔截了 9870 端口第三種是你在瀏覽器里訪問的地址寫錯了比如把 localhost 寫成了虛擬機的 IP而那個 IP 不對。解決先做診斷按順序檢查。第一步回終端執(zhí)行 jps看 NameNode 進程在不在。不在說明啟動失敗回去看 5.1。第二步NameNode 在但頁面打不開執(zhí)行 sudo ufw status 看防火墻是否開啟如果是執(zhí)行 sudo ufw allow 9870 放行端口。第三步確認訪問地址在虛擬機本機用 http://localhost:9870 訪問別用別的地址。5.3 配置了環(huán)境變量重開終端又提示命令找不到現(xiàn)象上次明明 export 了 JAVA_HOMEhadoop version 也能用重開一個終端窗口后再敲 hadoop version 又提示 command not found。原因你只在當前終端里執(zhí)行了 export沒有把 export 寫進 ~/.bashrc。export 的作用范圍僅限于當前終端窗口關掉就沒了。你誤以為“我配過了”其實是“我臨時用了一次”。解決把 export 語句寫進 ~/.bashrc 文件然后 source 一下。如果你已經(jīng)寫進了 .bashrc 還是不行檢查是不是寫錯行——比如寫到了 export PATH 之外的地方導致語法被注釋掉開頭多了 #。改完后執(zhí)行 echo $JAVA_HOME能輸出路徑才算真配好。5.4 遇到問題就想 rm -rf 清空重來結果越搞越糟現(xiàn)象集群某個進程起不來你第一反應是把整個 hadoop 安裝目錄刪掉重新解壓或者不確認進程狀態(tài)就格式化結果問題沒解決反而把原本好的部分也弄壞了。原因沒分清“安裝文件”和“運行時數(shù)據(jù)”。安裝文件是解壓出來的那一整套程序刪掉重來很傷運行時數(shù)據(jù)是 tmp 目錄里由集群自己生成的元數(shù)據(jù)出問題時需要清理的是這些。這兩者的位置不同作用更不同。同時刪文件前沒先停進程系統(tǒng)還在寫這些目錄刪一半鎖死下次啟動自然起不來。解決制定一條紀律動手刪除之前先執(zhí)行 jps 確認所有進程已停止再確認目錄路徑只處理 core-site.xml 里 hadoop.tmp.dir 指向的目錄而不是整個 hadoop 安裝文件夾。不放心的話把同名目錄復制一份存到別處再刪。格式化命令執(zhí)行前同樣按這條紀律走一遍流程。6. 用 Shell 指揮 Hadoop從這次實驗到下一個實驗環(huán)境跑通了最后一步是親手用命令操作 HDFS感受一下“分布式文件系統(tǒng)”和本地文件系統(tǒng)的區(qū)別。這也是實驗的收尾做完它你的第一站就算真正走完了。6.1 hdfs dfs像操作本地文件一樣操作分布式文件系統(tǒng)HDFS 有一套自己的命令體系以 hdfs dfs 開頭。你可以把它理解成“Hadoop 版的文件管理器”只不過操作不是用鼠標而是用命令。# 為 hadoop 用戶在 HDFS 中創(chuàng)建用戶目錄-p 表示父目錄不存在時自動創(chuàng)建 hdfs dfs -mkdir -p /user/hadoop # 在剛才的目錄下創(chuàng)建一個 test 文件夾 hdfs dfs -mkdir /user/hadoop/test # 查看目錄內容確認 test 已存在 hdfs dfs -ls /user/hadoop/test # 把 Linux 本地家目錄下的 .bashrc 上傳到 HDFS 的 test 文件夾 hdfs dfs -put ~/.bashrc /user/hadoop/test/ # 再查看一次能看到 .bashrc 文件就在上面 hdfs dfs -ls /user/hadoop/test/ # 把 HDFS 里的文件下載回本地 /usr/local/hadoop 目錄 hdfs dfs -get /user/hadoop/test/.bashrc /usr/local/hadoop/重點理解一下路徑的差別這里的 /user/hadoop 不是本地磁盤上的目錄而是 HDFS 內部的一個命名空間。它看起來像 Linux 路徑其實完全獨立相當于一個“網(wǎng)盤目錄”。你寫的文件上傳到了 HDFS 里和本地 /usr/local/hadoop 完全不是一回事。這一點理解了后面學 HDFS 的讀寫原理會輕松很多。6.2 接下來怎么走做完這個實驗你已經(jīng)具備了三項能力會裝 Linux 虛擬機、會基本 Linux 操作、會把 Hadoop 偽分布式跑起來。下一步建議這么走第一跑一遍 Hadoop 自帶的 WordCount 實例。它可以算作 Hadoop 的“hello world”幾分鐘就能跑完能跑通就說明你的環(huán)境完全正常。實驗指導書里通常會給出明確命令照著執(zhí)行觀察輸出結果即可。第二趁熱打鐵理解三個概念塊、副本、元數(shù)據(jù)。剛才操作過 HDFS這三個詞就不再是抽象理論了——你上傳的文件被切成塊存進 DataNode副本數(shù)由配置決定文件的所有目錄信息都由 NameNode 管理。把這三者的關系想清楚HDFS 的原理就算入門了一半。第三往編程方向走一步。下一個實驗通常是 HDFS 編程用 Java 或 Python 寫一個程序連接集群完成文件上傳下載。到那時候你會發(fā)現(xiàn)今天在 Shell 里敲的每條命令都能在代碼里找到對應的 API 調用兩邊一對照學得會特別快。從那以后我每次做 Hadoop 相關的實驗都強制自己先開一個終端執(zhí)行 jps確認進程狀態(tài)再決定下一步做什么動手格式化之前永遠先看一眼 core-site.xml 里配的目錄路徑。這個習慣幫我擋掉了無數(shù)個本可避免的深夜調試。這份資源把從零到跑通的路都鋪好了剩下的就是你親手敲一遍。希望幫到你。本文還有配套的精品資源點擊獲取