Hadoop阿里云部署保姆級(jí)教程 云計(jì)算Cloud Computing實(shí)踐(二)

實(shí)驗(yàn)題目:面向分布式存儲(chǔ)和計(jì)算的Hadoop部署厦瓢,具體包括:配置和部署Hadoop編程環(huán)境,完成實(shí)驗(yàn)環(huán)境及實(shí)驗(yàn)工具的熟悉


這里使用自己租用的年費(fèi)阿里云服務(wù)器來搭建偽分布式Hadoop
主要參考了官方安裝教程
阿里云ECS服務(wù)器提供各種版本的Linux系統(tǒng)目养,這里我選擇使用的是CentOS-7.3.1611的版本


我們?cè)诎惭bHadoop前還需要做一些準(zhǔn)備工作

一、創(chuàng)建hadoop用戶

一般來說毒嫡,阿里云默認(rèn)登錄是使用root賬號(hào)癌蚁,所以需要增加一個(gè)名為 hadoop 的用戶
$ su # 如何不是root用戶登錄,切換到root用戶 $ useradd -m hadoop -s /bin/bash # 創(chuàng)建新用戶hadoop
第二條命令創(chuàng)建了可以登陸的 hadoop 用戶兜畸,并使用 /bin/bash 作為shell

接著使用如下命令修改密碼努释,按提示輸入兩次密碼,可簡(jiǎn)單的設(shè)為 “hadoop”(密碼隨意指定咬摇,若提示“無效的密碼伐蒂,過于簡(jiǎn)單”則再次輸入確認(rèn)就行):
$ passwd hadoop

可為 hadoop 用戶增加管理員權(quán)限,方便部署肛鹏,避免一些對(duì)新手來說比較棘手的權(quán)限問題逸邦,執(zhí)行:
$ visudo
如下圖,找到 root ALL=(ALL) ALL這行(應(yīng)該在第98行在扰,可以先按一下鍵盤上的 ESC 鍵缕减,然后輸入 :98 (按一下冒號(hào),接著輸入98芒珠,再按回車鍵)桥狡,可以直接跳到第98行 ),然后在這行下面增加一行內(nèi)容:hadoop ALL=(ALL) ALL(當(dāng)中的間隔為tab)皱卓,如下圖所示:


二裹芝、安裝SSH、配置SSH無密碼登陸

集群娜汁、單節(jié)點(diǎn)模式都需要用到 SSH 登陸(類似于遠(yuǎn)程登陸嫂易,你可以登錄某臺(tái) Linux 主機(jī),并且在上面運(yùn)行命令)存炮,一般情況下炬搭,CentOS 默認(rèn)已安裝了 SSH client、SSH server穆桂,打開終端執(zhí)行如下命令進(jìn)行檢驗(yàn):
$ rpm -qa | grep ssh

如果像我一樣能看到這里已經(jīng)安裝好了server和clients就表明已經(jīng)配置成功了


如果沒有的話宫盔,那就執(zhí)行以下的命令使用yum進(jìn)行安裝
$ sudo yum install openssh-clients $ sudo yum install openssh-server
接著執(zhí)行如下命令測(cè)試一下 SSH 是否可用:
$ ssh localhost

但這樣登陸是需要每次輸入密碼的,我們需要配置成SSH無密碼登陸比較方便享完。

首先輸入 exit 退出剛才的 ssh灼芭,就回到了我們?cè)鹊慕K端窗口,然后利用 ssh-keygen 生成密鑰般又,并將密鑰加入到授權(quán)中:
$ exit # 退出剛才的 ssh localhost $ cd ~/.ssh/ # 若沒有該目錄彼绷,請(qǐng)先執(zhí)行一次ssh localhost $ ssh-keygen -t rsa # 會(huì)有提示,都按回車就可以 $ cat id_rsa.pub >> authorized_keys # 加入授權(quán) $ chmod 600 ./authorized_keys # 修改文件權(quán)限

安裝Java環(huán)境

Java 環(huán)境可選擇 Oracle 的 JDK茴迁,或是 OpenJDK寄悯,現(xiàn)在一般 Linux 系統(tǒng)默認(rèn)安裝的基本是 OpenJDK,如 CentOS 6.4 就默認(rèn)安裝了 OpenJDK 1.7堕义。按 http://wiki.apache.org/hadoop/HadoopJavaVersions 中說的猜旬,Hadoop 在 OpenJDK 1.7 下運(yùn)行是沒問題的。需要注意的是倦卖,CentOS 6.4 中默認(rèn)安裝的只是 Java JRE洒擦,而不是 JDK,為了開發(fā)方便怕膛,我們還是需要通過 yum 進(jìn)行安裝 JDK熟嫩,安裝過程中會(huì)讓輸入 [y/N],輸入 y 即可:

$ sudo yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel

通過上述命令安裝 OpenJDK褐捻,默認(rèn)安裝位置為 /usr/lib/jvm/java-1.7.0-openjdk(該路徑可以通過執(zhí)行 rpm -ql java-1.7.0-openjdk-devel | grep '/bin/javac' 命令確定掸茅,執(zhí)行后會(huì)輸出一個(gè)路徑,除去路徑末尾的 “/bin/javac”柠逞,剩下的就是正確的路徑了)倦蚪。OpenJDK 安裝后就可以直接使用 java、javac 等命令了边苹。

接著需要配置一下 JAVA_HOME 環(huán)境變量陵且,為方便,我們?cè)?~/.bashrc中進(jìn)行設(shè)置:
$ vim ~/.bashrc
在文件最后面添加如下單獨(dú)一行(指向 JDK 的安裝位置)个束,并保存:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk

接著還需要讓該環(huán)境變量生效慕购,執(zhí)行如下代碼:
$ source ~/.bashrc # 使變量設(shè)置生效

設(shè)置好后我們來檢驗(yàn)一下是否設(shè)置正確:
$ echo $JAVA_HOME # 檢驗(yàn)變量值 $ java -version $ $JAVA_HOME/bin/java -version # 與直接執(zhí)行 java -version 一樣
如果設(shè)置正確的話,$JAVA_HOME/bin/java -version 會(huì)輸出 java 的版本信息茬底,且和 java -version 的輸出結(jié)果一樣沪悲,由于我之前已經(jīng)安裝過其他版本的java,所以我的結(jié)果如下圖所示:

這樣阱表,Hadoop 所需的 Java 運(yùn)行環(huán)境就安裝好了殿如。


安裝Hadoop

(1)下載Hadoop
使用wget訪問國(guó)內(nèi)的清華源下載的速度超級(jí)無敵快
$ wget https://mirrors.tuna.tsinghua.edu.cn apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz
(2)解壓
wget默認(rèn)下載到登陸路徑~也就是/home/user贡珊,linux下安裝路徑一般是/usr/local,所以我們有
$ sudo tar -zxf ~/hadoop-2.9.2.tar.gz -C /usr/local
我們需要修改hadoop-2.9.2的權(quán)限,因?yàn)閔adoop-2.9.2文件默認(rèn)擁有者是root
$ cd /usr/local/ #進(jìn)入用戶安裝目錄 $ sudo chown -R hadoop ./hadoop-2.9.2 # 修改文件權(quán)限(hadoop-2.9.2默認(rèn)擁有者是root涉馁,這里我們讓hadoop也成為擁有者)
(3)檢查是否安裝成功
輸入如下命令來檢查 Hadoop 是否可用门岔,成功則會(huì)顯示 Hadoop 版本信息
$ cd /usr/local/hadoop-2.9.2 $ ./bin/hadoop version # 查看hadoop版本信息,成功顯示則安裝成功

(4)修改具體版本的hadoop-2.9.2hadoop
$ sudo mv ./hadoop-2.9.2/ ./hadoop
sudo chown -R hadoop:hadoop ./hadoop # 修改文件權(quán)限

三烤送、Hadoop單機(jī)配置(非分布式)

非分布式即單 Java 進(jìn)程寒随,方便進(jìn)行調(diào)試
默認(rèn)就是,無需配置帮坚!我們可以運(yùn)行運(yùn)行g(shù)rep例子
我們將 input 文件夾中的所有文件作為輸入妻往,篩選當(dāng)中符合正則表達(dá)式 dfs[a-z.]+的單詞并統(tǒng)計(jì)出現(xiàn)的次數(shù),最后輸出結(jié)果到output文件夾中
$ cd /usr/local/hadoop $ mkdir ./input $ cp ./etc/hadoop/*.xml ./input # 將配置文件作為輸入文件 $ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+' $ cat ./output/* # 查看運(yùn)行結(jié)果

程序執(zhí)行成功的輸出信息



四试和、偽分布式

Hadoop 可以在單節(jié)點(diǎn)上以偽分布式的方式運(yùn)行讯泣,Hadoop 進(jìn)程以分離的 Java 進(jìn)程來運(yùn)行,節(jié)點(diǎn)既作為 NameNode 也作為 DataNode阅悍,同時(shí)判帮,讀取的是 HDFS 中的文件

在設(shè)置 Hadoop 偽分布式配置前,我們還需要設(shè)置 HADOOP 環(huán)境變量溉箕,執(zhí)行如下命令在 ~/.bashrc 中設(shè)置
$ vim ~/.bashrc

# Hadoop Environment Variables export HADOOP_HOME=/usr/local/hadoop export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
保存后晦墙,不要忘記執(zhí)行如下命令使配置生效:
$ source ~/.bashrc
這些變量在啟動(dòng) Hadoop 進(jìn)程時(shí)需要用到,不設(shè)置的話可能會(huì)報(bào)錯(cuò)(這些變量也可以通過修改 ./etc/hadoop/hadoop-env.sh 實(shí)現(xiàn))
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中肴茄,偽分布式需要修改2個(gè)配置文件 core-site.xmlhdfs-site.xml 晌畅。Hadoop的配置文件是 xml 格式,每個(gè)配置以聲明 propertynamevalue 的方式來實(shí)現(xiàn)

修改 ./ect/hadoop/core-site.xml

$ vim ./etc/hadoop/core-site.xml

<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>

同樣的寡痰,修改配置文件 hdfs-site.xml:

$ vim ./etc/hadoop/hdfs-site.xml
<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> </configuration>

配置完成后抗楔,執(zhí)行 NameNode 的格式化:

$ ./bin/hdfs namenode -format

接著開啟 NaneNode 和 DataNode 守護(hù)進(jìn)程:
$ ./sbin/start-dfs.sh

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable WARN提示可以忽略,并不會(huì)影響正常使用


啟動(dòng)完成后拦坠,可以通過命令 jps 來判斷是否成功啟動(dòng)连躏,若成功啟動(dòng)則會(huì)列出如下進(jìn)程: “NameNode”、”DataNode”和SecondaryNameNode(如果 SecondaryNameNode 沒有啟動(dòng)贞滨,請(qǐng)運(yùn)行 sbin/stop-dfs.sh關(guān)閉進(jìn)程入热,然后再次嘗試啟動(dòng)嘗試)。如果沒有NameNodeDataNode 晓铆,那就是配置不成功勺良,請(qǐng)仔細(xì)檢查之前步驟,或通過查看啟動(dòng)日志排查原因骄噪。
檢測(cè)是否成功啟動(dòng):
$ jps

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末尚困,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子链蕊,更是在濱河造成了極大的恐慌事甜,老刑警劉巖谬泌,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異逻谦,居然都是意外死亡掌实,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門跨跨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來潮峦,“玉大人囱皿,你說我怎么就攤上這事勇婴。” “怎么了嘱腥?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵耕渴,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我齿兔,道長(zhǎng)橱脸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任分苇,我火速辦了婚禮添诉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘医寿。我一直安慰自己栏赴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布靖秩。 她就那樣靜靜地躺著须眷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沟突。 梳的紋絲不亂的頭發(fā)上花颗,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音惠拭,去河邊找鬼扩劝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛职辅,可吹牛的內(nèi)容都是我干的今野。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼罐农,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼条霜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涵亏,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤宰睡,失蹤者是張志新(化名)和其女友劉穎蒲凶,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拆内,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡旋圆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了麸恍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灵巧。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖抹沪,靈堂內(nèi)的尸體忽然破棺而出刻肄,到底是詐尸還是另有隱情,我是刑警寧澤融欧,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布敏弃,位于F島的核電站,受9級(jí)特大地震影響噪馏,放射性物質(zhì)發(fā)生泄漏麦到。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一欠肾、第九天 我趴在偏房一處隱蔽的房頂上張望瓶颠。 院中可真熱鬧,春花似錦刺桃、人聲如沸粹淋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽廓啊。三九已至,卻和暖如春封豪,著一層夾襖步出監(jiān)牢的瞬間谴轮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工吹埠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留第步,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓缘琅,卻偏偏與公主長(zhǎng)得像粘都,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刷袍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361