hadoop伪分布式模式_Hadoop模式介绍-独立,伪分布式,分布式
hadoop偽分布式模式
了解了什么是Hadoop之后,讓我們?cè)趩螜C(jī)上啟動(dòng)Hadoop:這篇文章包含在ubuntu上安裝Hadoop的說(shuō)明。 這是Hadoop安裝的快速分步教程。 在這里,您將獲得以獨(dú)立模式 (單節(jié)點(diǎn)集群)安裝Hadoop所需的所有命令及其說(shuō)明, ? 偽分布式模式下的Hadoop (單節(jié)點(diǎn)群集)和分布式模式下的Hadoop (多節(jié)點(diǎn)群集)。
本教程的主要目標(biāo)是啟動(dòng)并運(yùn)行“簡(jiǎn)單的” Hadoop安裝,以便您可以試用該軟件并了解更多信息。
本教程已經(jīng)過(guò)測(cè)試:
- Ubuntu Linux(10.04 LTS)
- Hadoop 0.20.2
先決條件:
安裝Java:
推薦將Java 1.6.x(Sun Java或Open Java)用于Hadoop
1.將Canonical合作伙伴存儲(chǔ)庫(kù)添加到您的apt存儲(chǔ)庫(kù)中:
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"2.更新源列表
$ sudo apt-get update3.安裝sun-java6-jdk
$ sudo apt-get install sun-java6-jdk4.安裝后,快速檢查Sun的JDK是否正確設(shè)置:
user@ubuntu:~# java -version java version "1.6.0_20" Java(TM) SE Runtime Environment (build 1.6.0_20-b02) Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing) 添加專(zhuān)用的Hadoop系統(tǒng)用戶(hù):
我們將使用專(zhuān)用的Hadoop用戶(hù)帳戶(hù)來(lái)運(yùn)行Hadoop。 雖然這不是必需的,但建議這樣做,因?yàn)樗兄趯adoop安裝與同一計(jì)算機(jī)上運(yùn)行的其他軟件應(yīng)用程序和用戶(hù)帳戶(hù)分開(kāi)(請(qǐng)考慮:安全性,權(quán)限,備份等)
登錄到hadoop_admin用戶(hù):
user@ubuntu:~$ su - hadoop_adminHadoop安裝:
$ cd /usr/local $ sudo tar xzf hadoop-0.20.2.tar.gz $ sudo chown -R hadoop_admin /usr/local/hadoop-0.20.2定義JAVA_HOME:
編輯配置文件/usr/local/hadoop-0.20.2/conf/hadoop-env.sh并設(shè)置JAVA_HOME:
導(dǎo)出JAVA_HOME =要成為Java安裝根目錄的路徑(例如:/ usr / lib / jvm / java-6-sun)
進(jìn)入您的hadoop安裝目錄(HADOOP_HOME,即/usr/local/hadoop-0.20.2/):
$ bin/hadoop它將生成以下輸出:
Usage: hadoop [--config confdir] COMMAND where COMMAND is one of: namenode -format format the DFS filesystem secondarynamenode run the DFS secondary namenode namenode run the DFS namenode datanode run a DFS datanode dfsadmin run a DFS admin client mradmin run a Map-Reduce admin client fsck run a DFS filesystem checking utility fs run a generic filesystem user client balancer run a cluster balancing utility jobtracker run the MapReduce job Tracker node pipes run a Pipes job tasktracker run a MapReduce task Tracker node job manipulate MapReduce jobs queue get information regarding JobQueues version print the version jar <jar> run a jar file distcp <srcurl> <desturl> copy file or directories recursively archive -archiveName NAME <src>*<dest> create a hadoop archive daemonlog get/set the log level for each daemon or CLASSNAME run the class named CLASSNAME Most commands print help when invoked w/o parameters:獨(dú)立模式下的Hadoop安裝已完成……。!!!!!!!
現(xiàn)在讓我們運(yùn)行一些示例:
1.運(yùn)行經(jīng)典Pi示例:
2.運(yùn)行g(shù)rep示例:
$ mkdir input $ cp conf/*.xml input $ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+' $ cat output/*3.運(yùn)行字?jǐn)?shù)示例:
$ mkdir inputwords $ cp conf/*.xml inputwords $ bin/hadoop jar hadoop-*-examples.jar wordcount inputwords outputwords如果發(fā)現(xiàn)任何錯(cuò)誤,請(qǐng)?jiān)L問(wèn)Hadoop故障排除
在以獨(dú)立模式運(yùn)行Hadoop之后,讓我們以偽分布式模式 (單節(jié)點(diǎn)群集)啟動(dòng)Hadoop :
配置SSH:
Hadoop需要SSH訪(fǎng)問(wèn)權(quán)限來(lái)管理其節(jié)點(diǎn),即遠(yuǎn)程計(jì)算機(jī)和本地計(jì)算機(jī)。 因此,對(duì)于我們的Hadoop單節(jié)點(diǎn)設(shè)置,我們需要為hadoop_admin用戶(hù)配置對(duì)localhost的SSH訪(fǎng)問(wèn)
啟用S??SH訪(fǎng)問(wèn)本地計(jì)算機(jī)并使用ssh連接
$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys $ ssh localhost The authenticity of host 'localhost (::1)' can't be established. RSA key fingerprint is e7:89:26:49:ae:02:30:eb:1d:75:4f:bb:44:f9:36:29. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'localhost' (RSA) to the list of known hosts. Linux ubuntu 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 30 13:27:30 UTC 2010 i686 GNU/Linux Ubuntu 10.04 LTS [...snipp...] $編輯配置文件:
$ vi conf/core-site.xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property><property> <name>hadoop.tmp.dir</name> <value>/tmp/hadoop-${user.name}</value> </property></configuration>如果提供其他路徑,請(qǐng)確保hadoop_admin用戶(hù)具有該目錄的讀寫(xiě)權(quán)限(sudo chown hadoop_admin / your / path)
$ vi conf/hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>$ vi conf/mapred.xml <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>格式化名稱(chēng)節(jié)點(diǎn):
$ /hadoop/bin/hadoop namenode -format它將生成以下輸出:
$ bin/hadoop namenode -format 10/05/10 16:59:56 INFO namenode.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = ubuntu/127.0.1.1 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 0.20.2 STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010 ************************************************************/ 10/05/10 16:59:56 INFO namenode.FSNamesystem: fsOwner=hadoop_admin,hadoop 10/05/08 16:59:56 INFO namenode.FSNamesystem: supergroup=supergroup 10/05/08 16:59:56 INFO namenode.FSNamesystem: isPermissionEnabled=true 10/05/08 16:59:56 INFO common.Storage: Image file of size 96 saved in 0 seconds. 10/05/08 16:59:57 INFO common.Storage: Storage directory .../.../dfs/name has been successfully formatted. 10/05/08 16:59:57 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1 ************************************************************/ $啟動(dòng)單節(jié)點(diǎn)集群:
$ /bin/start-all.sh它將生成以下輸出:
hadoop_admin@ubuntu:/usr/local/hadoop$ bin/start-all.sh starting namenode, logging to /usr/local/hadoop/bin/../logs/hadoop-hadoop-namenode-ubuntu.out localhost: starting datanode, logging to /usr/local/hadoop/bin/../logs/hadoop-hadoop-datanode-ubuntu.out localhost: starting secondarynamenode, logging to /usr/local/hadoop/bin/../logs/hadoop-hadoop-secondarynamenode-ubuntu.out starting jobtracker, logging to /usr/local/hadoop/bin/../logs/hadoop-hadoop-jobtracker-ubuntu.out localhost: starting tasktracker, logging to /usr/local/hadoop/bin/../logs/hadoop-hadoop-tasktracker-ubuntu.out hadoop_admin@ubuntu:/usr/local/hadoop$檢查jps是否正在運(yùn)行預(yù)期的Hadoop進(jìn)程
$ jps 14799 NameNode 14977 SecondaryNameNode 15183 DataNode 15596 JobTracker 15897 TaskTracker偽分布式模式下的Hadoop安裝已完成……。!!!!!!!
停止單節(jié)點(diǎn)集群:
$ /bin/stop-all.sh它將產(chǎn)生以下輸出:
$ bin/stop-all.sh stopping jobtracker localhost: stopping tasktracker stopping namenode localhost: stopping datanode localhost: stopping secondarynamenode $您可以在oder中運(yùn)行與獨(dú)立模式下相同的示例集,以檢查安裝是否成功
基于Web的NameNode接口
http://本地主機(jī):50070
基于Web的JobTracker界面 http://本地主機(jī):50030 基于Web的TaskTracker界面 http://本地主機(jī):50060
在以獨(dú)立模式運(yùn)行Hadoop之后,讓我們以分布式模式 (多節(jié)點(diǎn)集群)啟動(dòng)Hadoop。
先決條件:在分布式模式下啟動(dòng)hadoop之前,必須在偽分布式模式下設(shè)置hadoop,并且至少需要兩臺(tái)計(jì)算機(jī),其中一臺(tái)用于主機(jī),另一臺(tái)用于從機(jī)(您可以在一臺(tái)計(jì)算機(jī)上創(chuàng)建多臺(tái)虛擬機(jī))。
| $ bin / stop-all.sh | 在以分布式模式啟動(dòng)hadoop之前,請(qǐng)先停止每個(gè)集群。 在群集中的所有計(jì)算機(jī)(主服務(wù)器和從服務(wù)器)上運(yùn)行此cmd ? |
| $ vi / etc / hosts | 然后輸入 IP添加主機(jī)(例如:192.168.0.1主機(jī)) IP添加從站(例如192.168.0.2從站) 在群集中的所有計(jì)算機(jī)(主服務(wù)器和從服務(wù)器)上運(yùn)行此cmd ? |
| $ ssh-copy-id -i $ HOME / .ssh / id_rsa.pub從屬 | 設(shè)置無(wú)密碼的SSH ( 在所有計(jì)算機(jī)上,您必須使用相同的用戶(hù)名登錄 ) 在master上運(yùn)行此cmd |
| 要么 $ cat .ssh / id_rsa.pub 然后將其內(nèi)容復(fù)制到 | 我們還可以手動(dòng)設(shè)置無(wú)密碼的ssh |
| $ vi conf / master 然后輸入master | conf / masters文件定義了我們的多節(jié)點(diǎn)集群的名稱(chēng)節(jié)點(diǎn) 在master上運(yùn)行此cmd ? |
| $ vi conf /從屬 然后輸入slave | 此conf / slaves文件列出了主機(jī)(每行一個(gè)),將在其中運(yùn)行Hadoop從屬守護(hù)程序(數(shù)據(jù)節(jié)點(diǎn)和任務(wù)跟蹤器)。 在群集中的所有計(jì)算機(jī)(主服務(wù)器和從服務(wù)器)上運(yùn)行此cmd ? ? |
| $ vi conf / core-site.xml 然后輸入: <屬性> <name> fs.default.name </ name> <value> hdfs:// master:54310 </ value> </ property> | 編輯配置文件core-site.xml 在群集中的所有計(jì)算機(jī)(主服務(wù)器和從服務(wù)器)上運(yùn)行此cmd ? |
| $ vi conf / mapred-site.xml 然后輸入: <屬性> <name> mapred.job.tracker </ name> <value> master:54311 </ value> </ property> | 編輯配置文件mapred-site.xml 在群集中的所有計(jì)算機(jī)(主服務(wù)器和從服務(wù)器)上運(yùn)行此cmd ? |
| $ vi conf / hdfs-site.xml 然后輸入: <屬性> <name> dfs.replication </ name> <value> 2 </ value> </ property> | 編輯配置文件hdfs-site.xml 在群集中的所有計(jì)算機(jī)(主服務(wù)器和從服務(wù)器)上運(yùn)行此cmd |
| $ vi conf / mapred-site.xml 然后輸入: <屬性> <name> mapred.local.dir </ name> <value> $ {hadoop.tmp.dir} / mapred / local </ value> <value> 20 </ value> </ property> <屬性> <name> mapred.reduce.tasks </ name> <value> 2 </ value> | 編輯配置文件mapred-site.xml 在master上運(yùn)行此cmd |
| $ bin / start-dfs.sh
| 啟動(dòng)多節(jié)點(diǎn)集群。 首先,啟動(dòng)HDFS守護(hù)程序。 namenode守護(hù)程序在主服務(wù)器上啟動(dòng),而datanode守護(hù)程序在所有從屬服務(wù)器上啟動(dòng) 在master上運(yùn)行此cmd ? ? |
| $ jps
| 它應(yīng)該給出如下輸出: 14799 NameNode 15314秒 16977 secondaryNameNode 在master上運(yùn)行此cmd |
| $ jps
| 它應(yīng)該給出如下輸出: 15183數(shù)據(jù)節(jié)點(diǎn) 15616 Jps 在所有奴隸上運(yùn)行這個(gè)命令 |
| $ bin / start-mapred.sh
| MapReduce守護(hù)程序已啟動(dòng):jobtracker守護(hù)程序在主服務(wù)器上啟動(dòng),而tasktracker守護(hù)程序在所有從屬服務(wù)器上啟動(dòng) 在master上運(yùn)行此cmd ? |
| $ jps
| 它應(yīng)該給出如下輸出: 16017每秒 14799 NameNode 15596 JobTracker 14977 SecondaryNameNode 在master上運(yùn)行此cmd ? |
| $ jps | 它應(yīng)該給出如下輸出: 15183數(shù)據(jù)節(jié)點(diǎn) 15897 TaskTracker 16284每秒 在所有奴隸上運(yùn)行這個(gè)命令 ? |
| 恭喜,Hadoop安裝完成 | |
| http:// localhost:50070 / | 基于Web的名稱(chēng)節(jié)點(diǎn)界面 |
| http:// localhost:50030 / | 基于Web的作業(yè)跟蹤器界面 |
| 現(xiàn)在運(yùn)行一些示例 | |
| $ bin / hadoop jar hadoop-*-examples.jar pi 10 100 | 運(yùn)行pi示例 |
| $ bin / hadoop dfs -mkdir輸入 $ bin / hadoop dfs -put conf輸入 $ bin / hadoop jar hadoop-*-examples.jar grep輸入輸出'dfs [az。] +' $ bin / hadoop dfs -cat輸出/ * | 運(yùn)行g(shù)rep示例 |
| $ bin / hadoop dfs -mkdir輸入字 $ bin / hadoop dfs -put conf輸入字 $ bin / hadoop jar hadoop-*-examples.jar字?jǐn)?shù)輸入詞輸出詞 $ bin / hadoop dfs -cat outputwords / * | 運(yùn)行wordcount示例 |
| $ bin / stop-mapred.sh $ bin / stop-dfs.sh | 阻止惡魔 在master上運(yùn)行此cmd ?? |
參考: JCG合作伙伴提供的 獨(dú)立模式下的 Hadoop,偽分布式模式下的 Hadoop和分布式模式 下的 Hadoop ? Rahul Patodi在高性能計(jì)算博客上。
翻譯自: https://www.javacodegeeks.com/2012/01/hadoop-modes-explained-standalone.html
hadoop偽分布式模式
總結(jié)
以上是生活随笔為你收集整理的hadoop伪分布式模式_Hadoop模式介绍-独立,伪分布式,分布式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 苹果手表如何重新设置锻炼参数(苹果手表怎
- 下一篇: 服务器网卡怎么设置(服务器怎么配置网卡)