環(huán)境竣稽,WINDOWS 10專業(yè)版(企業(yè)版也一樣)
以下是主要的步驟:
1. 安裝Hyper-V
2. 在Hyper-V下安裝UBUNTU
3. 在UBUNTU下安裝配置Hadoop
本文主要講第3點井联,第一點在程序與功能中啟用或關(guān)閉WINDOWS 功能界面,點上HYPER的兩個功能粘衬,安裝重啟即可,可以參考官方教程,比較簡單:?https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v
需要注意的是拌夏,要在BIOS中打開CPU的Virtualization功能
安裝UBUNTU也很簡單,安裝好HYPER后履因,在HYPER-V管理器中障簿,創(chuàng)建虛擬機(jī),選擇UBUNTU栅迄,系統(tǒng) 會自動下載站故,安裝,跟提示操作即可毅舆,如有不明白的西篓,可以留言給我。
下面講HADOOP的教程憋活,網(wǎng)上很多的教程岂津,但可能會有些不完整的地方,我的教程也是基于各位前輩的整理悦即,如《給力星》前輩的(http://dblab.xmu.edu.cn/blog/install-hadoop/)吮成,如有不妥,請隨時聯(lián)系我辜梳。
3.1 創(chuàng)建hadoop用戶
? ? ?打開終端粱甫,輸入以下指令,創(chuàng)建可以登陸的 hadoop 用戶作瞄,并使用 /bin/bash 作為 shell:
? ??sudo useradd -m hadoop -s /bin/bash
????創(chuàng)建了用戶之后魔种,修改這個用戶的密碼:
? ??sudo passwd hadoop
? ? 在彈出的界面中,輸入兩次相同的密碼粉洼,請留意這個界面的密碼是不能刪除节预,退格的叶摄,如果輸入錯誤,就重來安拟。
? ? 執(zhí)行以下命令蛤吓,將HADOOP加入到管理員組:
? ??sudo adduser hadoop sudo
? ??基本知識
? ??sudo命令
? ? sudo是ubuntu中一種權(quán)限管理機(jī)制,管理員可以授權(quán)給一些普通用戶去執(zhí)行一些需要root權(quán)限執(zhí)行的操作糠赦。當(dāng)使用sudo命令時会傲,就需要輸入您當(dāng)前用戶的密碼。
3.2 基本配置
????注銷當(dāng)前用戶拙泽,使用hadoop登陸? ? ? ??
? ? 打開終端
? ? 執(zhí)行以下命令淌山,更新APT:
? ??sudo apt-get update
? ? 安裝VIM,用于修改各個配置文檔:
????sudo apt-get install vim
提示要占用空間的顾瞻,輸入Y什么的回車泼疑。
? ? VIM的基本操作:
? ? 編輯模式,按i進(jìn)行編輯模式荷荤,按esc鍵退出
? ? 保存并退出:按esc后退渗,輸入冒號:wq
? ? 退出: 按esc后,輸入:q
3.3 安裝配置SSH
? ? ?集群蕴纳、單節(jié)點模式都需要用到 SSH 登陸(類似于遠(yuǎn)程登陸会油,你可以登錄某臺 Linux 主機(jī),并且在上面運行命令)古毛,Ubuntu 默認(rèn)已安裝了 SSH client翻翩,此外還需要安裝 SSH server, 輸入以下指令安裝:
? ??sudo apt-get install openssh-server
安裝后稻薇,登陸測試:
????ssh localhost
? ? 輸入yes連接嫂冻。
????但這樣登陸是需要每次輸入密碼的,我們需要配置成SSH無密碼登陸比較方便颖低。
????在終端中輸入exit退出ssh絮吵,并在終端執(zhí)行以下命令,利用 ssh-keygen 生成密鑰忱屑,并將密鑰加入到授權(quán)中蹬敲。
????cd ~/.ssh/
????ssh-keygen -t rsa
????cat ./id_rsa.pub >> ./authorized_keys
????再次登陸SSH,應(yīng)該是不需要密碼的了
????ssh localhost
? ? 我沒有換源莺戒,有些提示不用理會伴嗡,能LOGIN就沒有問題
3.4 安裝Java環(huán)境
? ? ? ? ?在終端中錄入以下指令:
? ??????sudo apt-get install default-jre default-jdk
? ? ? ? 這里安裝需要點時間,取決于源以及網(wǎng)速从铲,WINDOWS自帶的這個瘪校,速度還可以。
? ? ? ? 安裝完成后,配置JAVA的PATH
? ??????vim ~/.bashrc
? ? ? ? 輸入i進(jìn)入編輯模式阱扬,在文件首行輸入():
????????export JAVA_HOME=/usr/lib/jvm/default-java
? ? ? ? 輸入完成后泣懊,按esc鍵,輸入:wq保存退出
? ? ? ? 執(zhí)行以下代碼麻惶,讓環(huán)境變量立即生效
? ??????source ~/.bashrc
? ? ? ?檢測JAVA環(huán)境是否正常
? ??????echo $JAVA_HOME
? ??????
????檢查路徑是否正確馍刮,不正確就修正∏蕴#可以運行JAVE命令卡啰,看版本號:
????java -version
????輸入以下命令,檢查 PATH是否正確警没,正確的與上一個命令是一樣的效果:
? ??$JAVA_HOME/bin/java -version
? ??
3.5 安裝Hadoop
? ? ? ? 下載hadoop, 直接在https://mirrors.cnnic.cn/apache/hadoop/common/?中下載一個穩(wěn)定版匈辱,下載完成后,執(zhí)行以及指令杀迹,安裝到安裝至 /usr/local/ 中亡脸,并授權(quán)給hadoop這個用戶。請留意我下載的是3.2.1佛南,如果你的是其他版本梗掰,把3.2.1改為你的版本號:
? ??????sudo tar -zxf ~/下載/hadoop-3.2.1.tar.gz -C /usr/local
? ? ? ? cd /usr/local/
? ? ????sudo mv ./hadoop-3.2.1/ ./hadoop
????????sudo chown -R hadoop ./hadoop
? ? 安裝完成后嵌言,測試是否正常:
????cd /usr/local/hadoop
????./bin/hadoop version
????正常會顯示以下信息:
3.6 Hadoop單機(jī)配置(非分布式)
? ??????Hadoop 默認(rèn)模式為非分布式模式(本地模式)嗅回,無需進(jìn)行其他配置即可運行。非分布式即單 Java 進(jìn)程摧茴,方便進(jìn)行調(diào)試绵载。
? ??????在此我們選擇運行 grep 例子,我們將 input 文件夾中的所有文件作為輸入苛白,篩選當(dāng)中符合正則表達(dá)式 dfs[a-z.]+ 的單詞并統(tǒng)計出現(xiàn)的次數(shù)娃豹,最后輸出結(jié)果到 output 文件夾中。
進(jìn)入hadoop目錄
cd /usr/local/hadoop
創(chuàng)建一個輸入的目錄:
mkdir ./input
COPY?配置文件作為輸入文件來測試:
cp ./etc/hadoop/*.xml ./input??
執(zhí)行以下命令购裙,統(tǒng)計文件中dfs開關(guān)的單詞出現(xiàn)的次數(shù):
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
查看計算的結(jié)果:
cat ./output/*? ?
注意懂版,Hadoop 默認(rèn)不會覆蓋結(jié)果文件,因此再次運行上面實例會提示出錯躏率,需要先將?./output?刪除躯畴。
3.7?Hadoop偽分布式配置
? ??????Hadoop 可以在單節(jié)點上以偽分布式的方式運行,Hadoop 進(jìn)程以分離的 Java 進(jìn)程來運行薇芝,節(jié)點既作為 NameNode 也作為 DataNode蓬抄,同時,讀取的是 HDFS 中的文件夯到。
????????Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中嚷缭,偽分布式需要修改2個配置文件?core-site.xml?和?hdfs-site.xml?。Hadoop的配置文件是 xml 格式,每個配置以聲明 property 的 name 和 value 的方式來實現(xiàn)阅爽。
? ? ? ? 進(jìn)入配置文件目錄:
? ? ? ? cd /usr/local/hadoop/etc/hadoop
? ? ? ? 編輯core-site.xml文件:
? ? ? ? vim ./core-site.xml
? ? ? ? 按i進(jìn)入編輯模式路幸,
? ? ? ? 把文件中以下部分:
<configuration>
</configuration>
替換為:
? ??<configuration>
? ? <property>
? ? ? ? <name>hadoop.tmp.dir</name>
? ? ? ? <value>file:/usr/local/hadoop/tmp</value>
? ? ? ? <description>Abase for other temporary directories.</description>
? ? </property>
? ? <property>
? ? ? ? <name>fs.defaultFS</name>
? ? ? ? <value>hdfs://localhost:9000</value>
? ? </property>
</configuration>
? ? 按ESC, 輸入:wq 保存退出,文件內(nèi)容應(yīng)該如下:
修改配置文件?hdfs-site.xml
vim ./hdfs-site.xml
將
<configuration>
</configuration>
替換為:
<configuration>
? ? <property>
? ? ? ? <name>dfs.replication</name>
? ? ? ? <value>1</value>
? ? </property>
? ? <property>
? ? ? ? <name>dfs.namenode.name.dir</name>
? ? ? ? <value>file:/usr/local/hadoop/tmp/dfs/name</value>
? ? </property>
? ? <property>
? ? ? ? <name>dfs.datanode.data.dir</name>
? ? ? ? <value>file:/usr/local/hadoop/tmp/dfs/data</value>
? ? </property>
? ? <preperty>
? ? ? ? <name>dfs.namenode.http-address</name>
? ? ? ? <value>bdtest1:50070</value>
? ? </property>
</configuration>
? ? 請留意上面的bdtest1是我UBUNTU電腦的電腦名付翁,請更換為你的,如果這一段不加劝赔,不能通過WEB訪問。
? ? 保存退出
Hadoop配置文件說明
Hadoop 的運行方式是由配置文件決定的(運行 Hadoop 時會讀取配置文件)胆敞,因此如果需要從偽分布式模式切換回非分布式模式着帽,需要刪除 core-site.xml 中的配置項漫蛔。
此外蹄梢,偽分布式雖然只需要配置 fs.defaultFS 和 dfs.replication 就可以運行岁诉,不過若沒有配置 hadoop.tmp.dir 參數(shù)圾另,則默認(rèn)使用的臨時目錄為 /tmp/hadoo-hadoop舀寓,而這個目錄在重啟時有可能被系統(tǒng)清理掉琳疏,導(dǎo)致必須重新執(zhí)行 format 才行宇姚。所以我們進(jìn)行了設(shè)置昌跌,同時也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir频蛔,否則在接下來的步驟中可能會出錯灵迫。
執(zhí)行 NameNode 的格式化:
cd /usr/local/hadoop
./bin/hdfs namenode -format
成功會有以下提示:
接著開啟 NameNode 和 DataNode 守護(hù)進(jìn)程。
輸入以下指令:
cd /usr/local/hadoop
./sbin/start-dfs.sh
啟動完成后晦溪,可以通過命令?jps?來判斷是否成功啟動瀑粥,若成功啟動則會列出如下進(jìn)程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 沒有啟動三圆,請運行 sbin/stop-dfs.sh 關(guān)閉進(jìn)程狞换,然后再次嘗試啟動嘗試)。如果沒有 NameNode 或 DataNode 舟肉,那就是配置不成功修噪,請仔細(xì)檢查之前步驟,或通過查看啟動日志排查原因路媚。
正常啟動有4個進(jìn)程:
成功啟動后黄琼,可以訪問 Web 界面?http://localhost:50070?查看 NameNode 和 Datanode 信息,還可以在線查看 HDFS 中的文件整慎。
到此脏款,結(jié)束安裝