亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

hadoop偽分布式搭建

系統 2599 0

轉載? http://xuyuanshuaaa.iteye.com/blog/1063303

1.? SSH無密碼驗證配置?
???? Hadoop 需要使用SSH 協議,namenode 將使用SSH 協議啟動 namenode和datanode 進程,偽分布式模式數據節點和名稱節點均是本身,必須配置 SSH localhost無密碼驗證。

執行?ssh-keygen -t? rsa?

?通過以上命令將在/root/.ssh/ 目錄下生成id_rsa私鑰和id_rsa.pub公鑰。進入/root/.ssh目錄在namenode節點下做如下配置:?
cat id_rsa.pub >> authorized_keys?

配置完成

?

原理:?
Hadoop需要使用SSH協議,namenode將使用SSH協議啟動namenode和datanode進程,(datanode向namenode傳遞心跳信息可能也是使用SSH協議,這是我認為的,還沒有做深入了解)。許多教程上介紹Hadoop集群配置時只說明了namenode上SSH無密碼登錄所有datanode,我在配置時發現必須使datanode上也能SSH無密碼登錄到namenode,Hadoop集群才能正常啟動(也許這不是必須的)?
以namenode到datanode為例子:Namenode作為客戶端,要實現無密碼公鑰認證,連接到服務端datanode上時,需要在namenode上生成一個密鑰對,包括一個公鑰和一個私鑰,而后將公鑰復制到datanode上。當namenode通過ssh連接datanode時,datanode就會生成一個隨機數并用namenode的公鑰對隨機數進行加密,并發送給namenode。namenode收到加密數之后再用私鑰進行解密,并將解密數回傳給datanode,datanode確認解密數無誤之后就允許namenode進行連接了。這就是一個公鑰認證過程,其間不需要用戶手工輸入密碼。重要過程是將客戶端namenode公鑰復制到datanode上?

?

2. Hadoop配置?

下載hadoop并解壓

tar xvf hadoop-1.2.1.tar.gz

2.1?? 進入/usr/local/hadoop/hadoop-0.20.2/conf, 配置Hadoop配置文件?
2.1.1 配置hadoop-env.sh文件?
添加 # set java environment?
???????????? export JAVA_HOME=/usr/program/jdk1.6.0_20?
編輯后保存退出。?

?

2.1.2 配置core-site.xml?

Java代碼?? 收藏代碼
  1. [root @master ?conf]#?vi?core-site.xml??
  2. <?xml?version= "1.0" ?>??
  3. <?xml-stylesheet?type= "text/xsl" ?href= "configuration.xsl" ?>??
  4. <!--?Put?site-specific?property?overrides?in? this ?file.?-->??
  5. <configuration>??
  6. ???<property>??
  7. ?????<name>fs. default .name</name>??
  8. ?????<value>hdfs: //202.173.253.36:9000/</value> ??
  9. ?????默認的namenode的端口為 8020 ??
  10. ???</property>??
  11. ???<property>??
  12. ?????<name>hadoop.tmp.dir</name>??
  13. ?????<value>/usr/local/hadoop/hadooptmp</value>??
  14. ???</property>??
  15. </configuration>??



2.1.3 配置hdfs-site.xml?

Java代碼?? 收藏代碼
  1. [root @master ?conf]#?vi??hdfs-site.xml??
  2. <?xml?version= "1.0" ?>??
  3. <?xml-stylesheet?type= "text/xsl" ?href= "configuration.xsl" ?>??
  4. <!--?Put?site-specific?property?overrides?in? this ?file.?-->??
  5. <configuration>??
  6. ??<property>??
  7. ?????<name>dfs.name.dir</name>??
  8. ?????<value>/usr/local/hadoop/hdfs/name</value>??
  9. ??</property>??
  10. ??<property>??
  11. ?????<name>dfs.data.dir</name>??
  12. ?????<value>/usr/local/hadoop/hdfs/data</value>??
  13. ??</property>??
  14. ??<property>??
  15. ?????<name>dfs.replication</name>??
  16. ?????<value> 1 </value>??
  17. ??</property>??
  18. </configuration>??


????
2.1.4 配置mapred-site.xml?

Java代碼?? 收藏代碼
  1. [root @master ?conf]#?vi?mapred-site.xml??
  2. <?xml?version= "1.0" ?>??
  3. <?xml-stylesheet?type= "text/xsl" ?href= "configuration.xsl" ?>??
  4. <!--?Put?site-specific?property?overrides?in? this ?file.?-->??
  5. <configuration>??
  6. ??<property>??
  7. ?????<name>mapred.job.tracker</name>??
  8. ?????<value> 202.173 . 253.36 : 9001 </value>??
  9. ??</property>??
  10. ??<property>??
  11. ?????<name>mapred.local.dir</name>??
  12. ?????<value>/usr/local/hadoop/mapred/local</value>??
  13. ??</property>??
  14. ??<property>??
  15. ?????<name>mapred.system.dir</name>??
  16. ?????<value>/tmp/hadoop/mapred/system</value>??
  17. ??</property>??
  18. </configuration>??

?

?

1、其實core-site.xml 對應有一個core-default.xml, hdfs-site.xml對應有一個hdfs-default.xml,?

mapred-site.xml對應有一個mapred-default.xml。這三個defalult文件里面都有一些默認配置,現在我們修改這三個site文件,目的就覆蓋default里面的一些配置,?
2、hadoop分布式文件系統的兩個重要的目錄結構,一個是namenode上名字空間的存放地方,一個是datanode數據塊的存放地方,還有一些其他的文件存放地方,這些存放地方都是基于hadoop.tmp.dir目錄的,比如namenode的名字空間存放地方就是 ${hadoop.tmp.dir}/dfs/name, datanode數據塊的存放地方就是 ${hadoop.tmp.dir}/dfs/data,所以設置好hadoop.tmp.dir目錄后,其他的重要目錄都是在這個目錄下面,這是一個根目錄。我設置的是 /usr/local/hadoop/hadooptmp,當然這個目錄必須是存在的。?
3、fs.default.name,這個是設置namenode位于哪個機器上,端口號是什么hdfs://192.168.133.128:9000,格式一定要這樣寫,網上很多資料說ip地址寫localhost也行,筆者建議最好寫ip,因為后期講到windows下 eclipse連接hadoop 的時候,如果寫localhost,就會連接不到。?
4、mapred.job.tracker,這個是設置jobtracker位于哪個機器上,端口號是什么,192.168.133.128:9001,格式和上一個不一樣,這個也必須這樣寫,同樣localhost和ip的分別和上述一樣?
5、dfs.replication,這個是設置數據塊的復制次數,默認是3,因為筆者這里就一臺機器,所以只能存在一份,就改成了1
?
2.1.5 配置masters文件和slaves文件?
[root@master conf]# vi masters?
202.173.253.36?
[root@master conf]# vi slaves?
202.173.253.36?
注:因為在偽分布模式下,作為master的namenode與作為slave的datanode是同一臺服務器,所以配置文件中的ip是一樣的。

?

2.2 Hadoop啟動?
2.2.1 進入 /usr/local/hadoop/hadoop-0.20.2/bin目錄下,格式化namenode?
[root@master bin]# hadoop namenode -format?
10/07/19 10:46:41 INFO namenode.NameNode: STARTUP_MSG:?
/************************************************************?
STARTUP_MSG: Starting NameNode?
STARTUP_MSG:?? host = master/202.173.253.36?
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?
************************************************************/?
Re-format filesystem in /usr/local/hadoop/hdfs/name ? (Y or N) Y?
10/07/19 10:46:43 INFO namenode.FSNamesystem: fsOwner=root,root,bin,daemon,sys,adm,disk,wheel?
10/07/19 10:46:43 INFO namenode.FSNamesystem: supergroup=supergroup?
10/07/19 10:46:43 INFO namenode.FSNamesystem: isPermissionEnabled=true?
10/07/19 10:46:43 INFO common.Storage: Image file of size 94 saved in 0 seconds.?
10/07/19 10:46:43 INFO common.Storage: Storage directory /usr/local/hadoop/hdfs/name has been successfully formatted.?
10/07/19 10:46:43 INFO namenode.NameNode: SHUTDOWN_MSG:?
/************************************************************?
SHUTDOWN_MSG: Shutting down NameNode at master/202.173.253.36?
************************************************************/?
2.2.2 啟動hadoop所有進程?
在/usr/local/hadoop/hadoop-0.20.2/bin 目錄下,執行start-all.sh命令?
啟動完成后,可用jps命令查看hadoop進程是否啟動完全。正常情況下應該有如下進程:?
10910 NameNode?
11431 Jps?
11176 SecondaryNameNode?
11053 DataNode?
11254 JobTracker?
11378 TaskTracker??
啟動之后,在/usr/local/hadoop/hadooptmp 下的dfs文件夾里會生成 data目錄,這里面存放的是datanode上的數據塊數據,因為筆者用的是單機,所以name 和 data 都在一個機器上,如果是集群的話,namenode所在的機器上只會有name文件夾,而datanode上只會有data文件夾。 ?
搭建過程中,在此環節出現的問題最多,經常出現啟動進程不完整的情況,要不是datanode無法正常啟動,就是namenode或是TaskTracker啟動異常。解決的方式如下:?
1.在Linux下關閉防火墻 :?
1) 重啟后生效?
開啟: chkconfig iptables on?
關閉: chkconfig iptables off?
2) 即時生效,重啟后失效?
開啟: service iptables start?
關閉: service iptables stop?
需要說明的是對于Linux下的其它服務都可以用以上命令執行開啟和關閉操作。?
在開啟了防火墻時,做如下設置,開啟相關端口,?
修改/etc/sysconfig/iptables 文件,添加以下內容:?
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT?
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT?
開始我使用的是service方式,但是總不好用,最后使用了chkconfig重啟方式,生效!?
2.再次對namenode進行格式化:在/usr/local/hadoop/hadoop-0.20.2/bin 目錄下執行hadoop namenode -format命令?
3.對服務器進行重啟?
4.查看datanode或是namenode對應的日志文件,日志文件保存在/usr/local/hadoop/hadoop-0.20.2/logs目錄下。仔細查看日志報錯的原因,(上次日志報錯的信息忘記了)解決方法是進入/usr/local/hadoop/hdfs/name 和usr/local/hadoop/hdfs/data目錄下,將目錄下的文件全部刪除。?
5.再次在/bin目錄下用start-all.sh命令啟動所有進程,通過以上的幾個方法應該能解決進程啟動不完全的問題了。?

2.2.3? 查看集群狀態?
在 bin目錄下執行:hadoop dfsadmin? -report?
[root@master bin]# hadoop dfsadmin -report?
Configured Capacity: 304427253760 (283.52 GB)?
Present Capacity: 282767941632 (263.35 GB)?
DFS Remaining: 282767904768 (263.35 GB)?
DFS Used: 36864 (36 KB)?
DFS Used%: 0%?
Under replicated blocks: 0?
Blocks with corrupt replicas: 0?
Missing blocks: 0?
-------------------------------------------------?
Datanodes available: 1 (1 total, 0 dead)?
Name: 202.173.253.36:50010?
Decommission Status : Normal?
Configured Capacity: 304427253760 (283.52 GB)?
DFS Used: 36864 (36 KB)?
Non DFS Used: 21659312128 (20.17 GB)?
DFS Remaining: 282767904768(263.35 GB)?
DFS Used%: 0%?
DFS Remaining%: 92.89%?
Last contact: Mon Jul 19 11:07:22 CST 2010?

2.3 在WEB頁面下查看Hadoop工作情況?
啟動后可以通過以下兩個頁面查看節點狀況和job狀況?
http://localhost:50070;?

http://localhost:50030。?
可以查看任務的執行情況?
? ? ?3. Hadop使用?
一個測試例子wordcount?
????? 計算輸入文本中詞語數量的程序。WordCount在Hadoop主目錄下的java程序包hadoop-0.20.2-examples.jar 中,執行步驟如下:?
在/usr/local/hadoop/hadoop-0.20.2/bin/目錄下進行如下操作:?
執行 hadoop fs -ls命令,查看當前hdfs分布式文件系統的 文件目錄結構,剛執行會說no such dictionary,?
你要先建一個文件夾,用命令 haoop fs -mkdir testdir ,然后再執行hadoop fs -ls,就會展示/user/root/testdir?
當前用戶是root,所以hdfs的根目錄就是? /user/root?

hadoop fs -mkdir? okdir(新建目錄名稱,可任意命名)?
離開hodoop的安全模式?
bin/hadoop dfsadmin -safemode leave?
在這個目錄里放入文件:hadoop fs -put /usr/test_in/*.txt okdir(把本地/usr/test_in目錄里的所有txt文件copy到 hdfs分布式文件系統的 /user/root/inputdir 目錄里面,因為當前目錄就是root 所以 直接寫input 就代表/user/root/inputdir)?
在/usr/local/hadoop/hadoop-0.20.2下執行:?
[root@master hadoop-0.20.2]# hadoop jar hadoop-0.20.2-examples.jar wordcount okdir output (提交作業,此處需注意okdir與output是一組任務,下次再執行wordcount程序,還要新建目錄,不能跟okdir與output重名)

?

?

?

可以查看運行結果?
# bin/hadoop dfs -cat hellooutput/part-r-00000?

hadoop偽分布式搭建


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久精品呦女 | 色成人综合 | 国内精品久久久久久久久久影视 | 农村寡妇一级毛片免费播放 | 久久草视频在线 | 老子影院无码午夜伦不卡 | 色婷婷亚洲综合 | 2020久久精品永久免费 | 国产一区二区三区免费播放 | 九九热精品免费 | 日本一区二区在线播放 | 国产一区二区免费福利片 | 亚洲精品成人网 | 日韩在线第二页 | 亚洲成人在线观看视频 | 精品国产一区二区三区2021 | 四虎精品影院2022 | 久久久久久九九 | 国产精品亚洲专区在线观看 | 成人毛片高清视频观看 | 免费视频一区二区三区四区 | 老子影院午夜伦不卡手机 | 国产日本欧美亚洲精品视 | 亚洲 欧美 精品 中文第三 | 夜夜操女人| 国产一级视频免费 | 99在线观看免费 | 99re6这里有精品热视频在线 | 亚洲欧美自拍另类图片色 | 久久综合久久伊人 | 久久国产精品麻豆映画 | 狠狠色噜狠狠狠狠 | 免费精品美女久久久久久久久 | 日本免费三区 | 久久久久国产一级毛片高清版 | 日本黄大片影院一区二区 | 国产你懂的 | 日本一级大黄毛片一级 | 国产一区二区三区播放 | 久久综合图区亚洲综合图区 | 天天综合网天天综合色不卡 |