欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    最近老是遇到小伙伴問(wèn)一些hadoop的問(wèn)題,在這里把一些hadoop常見的問(wèn)題及解決方案分享給大數(shù)據(jù)初學(xué)者,如果再遇到同樣的問(wèn)題就對(duì)號(hào)入座。

    一、hadoop安裝完以后,在執(zhí)行命令時(shí),經(jīng)常會(huì)提示一下警告:

    1. WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...

    2. using builtin-java classes where applicable

    原因:

    這個(gè)跟系統(tǒng)位數(shù)有關(guān)系,我們平常使用的是Centos 6.5 64位操作系統(tǒng)。

    解決辦法:

    (1)如果你是hadoop2.6的可以下載下面這個(gè):

    http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.6.0.tar

    (2)下載完以后,解壓到hadoop的native目錄下,覆蓋原有文件即可。操作如下:

    tar -x hadoop-native-64-2.4.0.tar -C hadoop/lib/native/

    二、在使用combiner的時(shí)候,出現(xiàn)IntWritable is not Text,或者其他的類型不匹配問(wèn)題

    原因:這是設(shè)置combiner的時(shí)候,map輸出的keyvalue類型和combiner輸出的keyvalue類型不一致導(dǎo)致的。

    解決:如果設(shè)置combiner,必須保證一點(diǎn),map輸出的keyvalue類型和combiner輸出的keyvalue類型必須一致!!!

    489034603

    三、error:server IPC version 9 cannot communicate with client version 4

    原因:

    (1)如果是在使用插件操作hdfs時(shí)報(bào)錯(cuò),是因?yàn)椋琫clipse插件和eclipse的版本不匹配

    (2)如果是在執(zhí)行mapreduce時(shí)報(bào)錯(cuò):是因?yàn)閖ar包不匹配

    解決:重新編譯hadoop插件,使用自己的hadoop和eclipse版本

    四、Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

    原因:在使用hadoop插件的時(shí)候,會(huì)在本地找winutils.exe這個(gè)文件,而這個(gè)文件是hadoop安裝包下的文件,必須配置eclipse插件的hadoop的windows本地路徑才行。

    解決:配置windows的hadoop環(huán)境變量,并且重啟機(jī)器,讓環(huán)境變量生效

    五、Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out

    原因:程序里面需要打開多個(gè)文件,進(jìn)行分析,系統(tǒng)一般默認(rèn)數(shù)量是1024,(用ulimit -a可以看到)對(duì)于正常使用是夠了,但是對(duì)于程序來(lái)講,就太少了。

    解決:

    修改2個(gè)文件。

    /etc/security/limits.conf

    vi /etc/security/limits.conf

    加上:

    * soft nofile 102400

    * hard nofile 409600

    $cd /etc/pam.d/

    $sudo vi login

    添加session required /lib/security/pam_limits.so

    六、Too many fetch-failures

    原因:出現(xiàn)這個(gè)問(wèn)題主要是結(jié)點(diǎn)間的連通不夠全面。

    解決:

    1) 檢查/etc/hosts,要求本機(jī)ip對(duì)應(yīng)服務(wù)器名,要求要包含所有的服務(wù)器ip+服務(wù)器名

    2) 檢查 .ssh/authorized_keys,要求包含所有服務(wù)器(包括其自身)的public key

    七、處理速度特別的慢 出現(xiàn)map很快 但是reduce很慢 而且反復(fù)出現(xiàn) reduce=0%

    解決:修改 conf/hadoop-env.sh 中的export HADOOP_HEAPSIZE=4000


    489034603

    八、能夠啟動(dòng)datanode,但無(wú)法訪問(wèn),也無(wú)法結(jié)束的錯(cuò)誤

    原因:可能原因很多,需要查看日志定位,可能的原因是namespaceId不一致

    解決:

    (1)刪除namenode的本地文件夾:${hadoop}/namedir/*

    (2)刪除datanode的本地文件夾:${hadoop}/datadir/*

    (3)重新格式化

    (4)注意:刪除是個(gè)很危險(xiǎn)的動(dòng)作,不能確認(rèn)的情況下不能刪除!!做好刪除的文件等通通備份!!

    九java.io.IOException:Could not obtain block:blk_194219614024901469_1100 file=/user/hive/warehouse/src_20090724_log/src_20090724_log

    原因:出現(xiàn)這種情況大多是結(jié)點(diǎn)斷了,沒(méi)有連接上。

    解決:檢查datanode是否有宕機(jī)情況,恢復(fù)

    十、java.lang.OutOfMemoryError: Java heap space

    原因:出現(xiàn)這種異常,明顯是jvm內(nèi)存不夠得原因,要修改所有的datanode的jvm內(nèi)存大小。

    解決:執(zhí)行命令

    Java -Xms1024m -Xmx4096m

    一般jvm的最大內(nèi)存使用應(yīng)該為總內(nèi)存大小的一半,我們使用的8G內(nèi)存,所以設(shè)置為4096m,這一值可能依舊不是最優(yōu)的值。

    十一、單個(gè)node新加硬盤

    原因:datanode的硬盤不夠用了

    解決:(1)修改需要新加硬盤的node的dfs.data.dir,用逗號(hào)分隔新、舊文件目錄(2)重啟dfs

    十二、hdfs的namenode內(nèi)存飆升,不夠用

    原因:可能是上傳了過(guò)多的小文件

    解決:用命令合并HDFS小文件 hadoop fs -getmerge <src> <dest>

    十三、hadoop OutOfMemoryError

    解決:

    1. <property>

    2. <name>mapred.child.java.optsname>

    3. <value>-Xmx800M -servervalue>

    4. property>

    With the right JVM size in your hadoop-site.xml , you will have to copy this

    to all mapred nodes and restart the cluster.

    或者:hadoop jar jarfile [main class] -D mapred.child.java.opts=-Xmx800M

    十四、Hadoop name -format后Incompatible namespaceIDS 錯(cuò)誤解決辦法

    原因:是格式化namenode后會(huì)重新創(chuàng)建一個(gè)新的namespaceID,以至于和datanode上原有的不一致。

    解決:

    (1)刪除datanode dfs.data.dir目錄(默認(rèn)為tmp/dfs/data)下的數(shù)據(jù)文件,

    (2)hadoop namenode -format

    (3)修改/home/hadoop/data/current/VERSION 文件,把namespaceID修成與namenode上相同即可(log錯(cuò)誤里會(huì)有提示)

    489034603

    十五、namenode無(wú)法啟動(dòng),不報(bào)錯(cuò)

    原因:可能原因是:之前用root用戶啟動(dòng)過(guò),導(dǎo)致current文件夾的權(quán)限和所屬用戶更改了,需要更改回來(lái)

    解決:current文件夾位于hadoop安裝目錄同級(jí)目錄的tmp/dfs/namesecondary

    先寫到這里,篇幅太大怕通過(guò)不了,下次再補(bǔ)充完。如果小伙伴想要學(xué)習(xí)大數(shù)據(jù)架構(gòu)師的技術(shù),可以加下圖片下面的交流群,群里有很多學(xué)習(xí)視頻都可以下載,而且每天大數(shù)據(jù)架構(gòu)師馬士兵老師都會(huì)在群里分享大數(shù)據(jù)的技術(shù)。。

    【Hadoop大數(shù)據(jù)基礎(chǔ)】

    第二節(jié) Hadoop安裝與使用

    2.1 Hadoop簡(jiǎn)介

    2.2 MR實(shí)現(xiàn)第一節(jié)作業(yè)

    2.3 HDFS分布式存儲(chǔ)系統(tǒng)

    2.4 單機(jī)安裝

    2.5 分布式集群搭建

    2.6 課后作業(yè)

    2.1 Hadoop簡(jiǎn)介

    在文章的時(shí)候已經(jīng)講解了Hadoop的簡(jiǎn)介以及生態(tài)圈,有什么不懂的可以"出門右轉(zhuǎn)"

    http://dwz.cn/4rdSdU

    2.2 MR實(shí)現(xiàn)第一節(jié)作業(yè)

    首先運(yùn)行計(jì)算就要啟動(dòng)mapreduce,我們剛剛才啟動(dòng)了start-dfs.sh (HDFS文件系統(tǒng)),所以不能計(jì)算那么我們把mapreduce的程序也啟動(dòng)起來(lái)。

    啟動(dòng)mapreduce命令

    [root@localhost hadoop]# start-yarn.sh starting yarn daemons

    starting resourcemanager, logging to /opt/hadoop/hadoop-2.6.0-cdh5.8.2/logs/yarn-root-resourcemanager-localhost.localdomain.out

    localhost: starting nodemanager, logging to /opt/hadoop/hadoop-2.6.0-cdh5.8.2/logs/yarn-root-nodemanager-localhost.localdomain.out

    啟動(dòng)完成以后我們調(diào)用"jps"命令看是否真的啟動(dòng)成功了28113 NodeManager28011 ResourceManager28442 Jps27137 NameNode27401 SecondaryNameNode27246 DataNode

    可以很明顯的看到多出來(lái)兩個(gè)程序。

    創(chuàng)建測(cè)試文件

    創(chuàng)建一個(gè)測(cè)試的數(shù)據(jù):

    vi /opt/test/test.txt

    麒麟

    小張

    張張

    果哥

    澤安

    跨越

    天天順利

    澤安

    祖淵

    張張

    2.2-01.jpg

    將測(cè)試文件上傳到HDFS

    首先我們要在HDFS上再創(chuàng)建兩個(gè)文件,一個(gè) input(輸入) / ouput(輸出)的文件夾。

    [root@localhost ~]# hdfs dfs -mkdir /input /ouput

    16/10/26 04:30:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    將測(cè)試數(shù)據(jù)上傳到"input"文件夾

    [root@localhost ~]# hdfs dfs -put /opt/test/test.txt /input16/10/26 04:33:03 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    查看是上傳成功

    [root@localhost ~]# hdfs dfs -cat /input/test.txt16/10/26 04:34:04 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    麒麟

    小張

    張張

    果哥

    澤安

    跨越

    天天順利

    澤安

    祖淵

    張張

    調(diào)用Hadoop自帶的WordCount方法

    [root@localhost ~]# hadoop jar /opt/hadoop/hadoop-2.6.0-cdh5.8.2/share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.6.0-cdh5.8.2.jar wordcount /input /ouput/test16/10/26 04:49:37 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable16/10/26 04:49:38 INFO client.RMProxy: Connecting to ResourceManager at localhost/127.0.0.1:803216/10/26 04:49:42 INFO input.FileInputFormat: Total input paths to process : 116/10/26 04:49:43 INFO mapreduce.JobSubmitter: number of splits:116/10/26 04:49:44 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1477471653063_000116/10/26 04:49:46 INFO impl.YarnClientImpl: Submitted application application_1477471653063_000116/10/26 04:49:47 INFO mapreduce.Job: The url to track the job: http://localhost:8088/proxy/application_1477471653063_0001/16/10/26 04:49:47 INFO mapreduce.Job: Running job: job_1477471653063_000116/10/26 04:50:21 INFO mapreduce.Job: Job job_1477471653063_0001 running in uber mode : false16/10/26 04:50:21 INFO mapreduce.Job: map 0% reduce 0%16/10/26 04:50:44 INFO mapreduce.Job: map 100% reduce 0%16/10/26 04:51:04 INFO mapreduce.Job: map 100% reduce 100%16/10/26 04:51:06 INFO mapreduce.Job: Job job_1477471653063_0001 completed successfully16/10/26 04:51:06 INFO mapreduce.Job: Counters: 49

    File System Counters

    FILE: Number of bytes read=116

    FILE: Number of bytes written=232107

    FILE: Number of read operations=0

    FILE: Number of large read operations=0

    FILE: Number of write operations=0

    HDFS: Number of bytes read=177

    HDFS: Number of bytes written=78

    HDFS: Number of read operations=6

    HDFS: Number of large read operations=0

    HDFS: Number of write operations=2

    Job Counters

    Launched map tasks=1

    Launched reduce tasks=1

    Data-local map tasks=1

    Total time spent by all maps in occupied slots (ms)=18128

    Total time spent by all reduces in occupied slots (ms)=17756

    Total time spent by all map tasks (ms)=18128

    Total time spent by all reduce tasks (ms)=17756

    Total vcore-seconds taken by all map tasks=18128

    Total vcore-seconds taken by all reduce tasks=17756

    Total megabyte-seconds taken by all map tasks=18563072

    Total megabyte-seconds taken by all reduce tasks=18182144

    Map-Reduce Framework

    Map input records=10

    Map output records=10

    Map output bytes=116

    Map output materialized bytes=116

    Input split bytes=101

    Combine input records=10

    Combine output records=8

    Reduce input groups=8

    Reduce shuffle bytes=116

    Reduce input records=8

    Reduce output records=8

    Spilled Records=16

    Shuffled Maps=1

    Failed Shuffles=0

    Merged Map outputs=1

    GC time elapsed (ms)=454

    CPU time spent (ms)=3450

    Physical memory (bytes) snapshot=306806784

    Virtual memory (bytes) snapshot=3017633792

    Total committed heap usage (bytes)=163450880

    Shuffle Errors

    BAD_ID=0

    CONNECTION=0

    IO_ERROR=0

    WRONG_LENGTH=0

    WRONG_MAP=0

    WRONG_REDUCE=0

    File Input Format Counters

    Bytes Read=76

    File Output Format Counters

    Bytes Written=78運(yùn)行完成我們看看計(jì)算出來(lái)的結(jié)果:

    [root@localhost ~]# hdfs dfs -ls /ouput/test16/10/26 04:53:22 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    Found 2 items

    -rw-r--r-- 1 root supergroup 0 2016-10-26 04:51 /ouput/test/_SUCCESS

    -rw-r--r-- 1 root supergroup 78 2016-10-26 04:51 /ouput/test/part-r-00000[root@localhost ~]# hdfs dfs -cat /ouput/test/part-r-0000016/10/26 04:53:41 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    天天順利 1小張 1張張 2果哥 1澤安 2祖淵 1跨越 1麒麟 1

    2.3 HDFS分布式存儲(chǔ)系統(tǒng)

    HDFS優(yōu)點(diǎn)

    1. 高容錯(cuò)性

      1. 數(shù)據(jù)自動(dòng)保存多個(gè)副本

      2. 副本都時(shí)候會(huì)自動(dòng)恢復(fù)

    2. 適合批量處理

      1. 移動(dòng)計(jì)算而非數(shù)據(jù)

      2. 數(shù)據(jù)位置暴露給計(jì)算框架

    3. 適合大數(shù)據(jù)處理

      1. GB/TB/甚至PB級(jí)數(shù)據(jù)

      2. 百萬(wàn)規(guī)模以上文件數(shù)量

      3. 10k+

    4. 可構(gòu)建廉價(jià)的機(jī)器上

      1. 不管機(jī)器人有多么的垃圾,只要有空間內(nèi)存就可以搭建Hadoop

    HDFS缺點(diǎn)

    1. 低延遲數(shù)據(jù)訪問(wèn)

      1. 比如毫秒級(jí)

      2. 低延遲與高吞吐率

    2. 小文件存取

      1. 占用NameNode大量?jī)?nèi)存

      2. 尋道時(shí)間超過(guò)讀取時(shí)間

    3. 并發(fā)寫入/文件隨機(jī)修改

      1. 一個(gè)文件只能有一個(gè)寫者

      2. 只支持append

    HDFS架構(gòu)

    2.3-01.jpg

    如圖所示,HDFS是按照Master和Slave的結(jié)構(gòu)

    NameNode:類似項(xiàng)目經(jīng)理職位 下達(dá)需求,監(jiān)控團(tuán)隊(duì)進(jìn)度,工作分配。

    管理數(shù)據(jù)塊映射;處理客戶端的讀寫請(qǐng)求;配置副本策略;管理HDFS的名稱空間;

    NameNode的主要功能:接受客戶端的讀寫服務(wù)。

    上傳文件 讀取文件都要聯(lián)系NameNode

    Namenode保存了metadate信息,而metadate保存著datanode的元數(shù)據(jù) 包含了block的位置信息(路徑),以及datanode的詳細(xì)信息。

    Namenode的metadate信息啟動(dòng)后會(huì)加載到內(nèi)存,metadate存儲(chǔ)到磁盤的文件名;"fsimage",但是其中不包含Block的位置信息,而block的位置信息是在每一次Datanode啟動(dòng)的時(shí)候?qū)lock的位置信息發(fā)送給NameNode 內(nèi)存中。

    **edits**記錄對(duì)metadate的操作日志。

    SecondaryNameNode:類似經(jīng)理助理的職位 分擔(dān)領(lǐng)導(dǎo)(Namenode)的工作量;

    SecondaryNameNode他不是主節(jié)點(diǎn)也不是從節(jié)點(diǎn),它是用來(lái)輔助NameNode來(lái)完成editslog操作日志的。

    合并edits的操作可以配置:

    設(shè)置fs.checkpoint.period 默認(rèn)3600秒

    設(shè)置edits log大小fs.checkpoint.size規(guī)定edits文件的最大默認(rèn)64MB

    NN合并流程

    DataNode: 程序員干活的,上頭(NameNode)下達(dá)一個(gè)需求功能需要你(DataNode)實(shí)現(xiàn)。存儲(chǔ)client發(fā)來(lái)的數(shù)據(jù)塊block;執(zhí)行數(shù)據(jù)塊的讀寫操作。

    dataNode(block)它是數(shù)據(jù)存儲(chǔ)單元,就是數(shù)據(jù)真正存儲(chǔ)的地方。每一個(gè)block都會(huì)被固定大小的數(shù)

    據(jù)塊,默認(rèn)數(shù)據(jù)塊的大小是64MB**可配置**。

    問(wèn):我這個(gè)文件大小沒(méi)有達(dá)到64MB怎么辦呢?

    答:如果該文件還不到64MB的時(shí)候,則單獨(dú)成一個(gè)block

    問(wèn):那如果大于64MB怎么辦?

    答:如果大了就在切分一個(gè)block出來(lái),就像我們切肉/切菜一樣,想把他們切的均衡(64MB),假如肉切的1厘米,到最后還剩下3厘米怎么辦?那就繼續(xù)再切分。

    datanode設(shè)計(jì)思想

    如圖所示

    假如我上傳文件大小為"50G"-->切分為多個(gè)block。

    每一個(gè)Block都會(huì)有一個(gè)3個(gè)副本(可配置)

    每一個(gè)block的3個(gè)副本都存在不同的節(jié)點(diǎn)(機(jī)器)上,如圖"block1"。

    HDFS寫流程

    簡(jiǎn)單易懂

    1.HDFS Client-->NameNode:我要上次新文件2.NameNode檢查DataNode空間,檢查出: xxx機(jī)器上的節(jié)點(diǎn)可以存儲(chǔ)3.NameNode上傳4.記錄log日志

    下面是專業(yè)術(shù)語(yǔ)

    客戶端調(diào)用create()來(lái)創(chuàng)建文件

    DistributedFileSystem用RPC調(diào)用元數(shù)據(jù)節(jié)點(diǎn),在文件系統(tǒng)的命名空間中創(chuàng)建一個(gè)新的文件。

    元數(shù)據(jù)節(jié)點(diǎn)首先確定文件原來(lái)不存在,并且客戶端有創(chuàng)建文件的權(quán)限,然后創(chuàng)建新文件。

    DistributedFileSystem返回DFSOutputStream,客戶端用于寫數(shù)據(jù)。

    客戶端開始寫入數(shù)據(jù),DFSOutputStream將數(shù)據(jù)分成塊,寫入data queue。Data queue由Data Streamer讀取,并通知元數(shù)據(jù)節(jié)點(diǎn)分配數(shù)據(jù)節(jié)點(diǎn),用來(lái)存儲(chǔ)數(shù)據(jù)塊(每塊默認(rèn)復(fù)制3塊)。分配的數(shù)據(jù)節(jié)點(diǎn)放在一個(gè)pipeline里。Data Streamer將數(shù)據(jù)塊寫入pipeline中的第一個(gè)數(shù)據(jù)節(jié)點(diǎn)。第一個(gè)數(shù)據(jù)節(jié)點(diǎn)將數(shù)據(jù)塊發(fā)送給第二個(gè)數(shù)據(jù)節(jié)點(diǎn)。第二個(gè)數(shù)據(jù)節(jié)點(diǎn)將數(shù)據(jù)發(fā)送給第三個(gè)數(shù)據(jù)節(jié)點(diǎn)。

    DFSOutputStream為發(fā)出去的數(shù)據(jù)塊保存了ack queue,等待pipeline中的數(shù)據(jù)節(jié)點(diǎn)告知數(shù)據(jù)已經(jīng)寫入成功。

    如果數(shù)據(jù)節(jié)點(diǎn)在寫入的過(guò)程中失敗:

    關(guān)閉pipeline,將ack queue中的數(shù)據(jù)塊放入data queue的開始。

    當(dāng)前的數(shù)據(jù)塊在已經(jīng)寫入的數(shù)據(jù)節(jié)點(diǎn)中被元數(shù)據(jù)節(jié)點(diǎn)賦予新的標(biāo)示,則錯(cuò)誤節(jié)點(diǎn)重啟后能夠察覺(jué)其數(shù)據(jù)塊是過(guò)時(shí)的,會(huì)被刪除。

    失敗的數(shù)據(jù)節(jié)點(diǎn)從pipeline中移除,另外的數(shù)據(jù)塊則寫入pipeline中的另外兩個(gè)數(shù)據(jù)節(jié)點(diǎn)。

    元數(shù)據(jù)節(jié)點(diǎn)則被通知此數(shù)據(jù)塊是復(fù)制塊數(shù)不足,將來(lái)會(huì)再創(chuàng)建第三份備份。

    當(dāng)客戶端結(jié)束寫入數(shù)據(jù),則調(diào)用stream的close函數(shù)。此操作將所有的數(shù)據(jù)塊寫入pipeline中的數(shù)據(jù)節(jié)點(diǎn),并等待ack queue返回成功。最后通知元數(shù)據(jù)節(jié)點(diǎn)寫入完畢。

    寫原理

    讀文件

    客戶端(client)用FileSystem的open()函數(shù)打開文件

    DistributedFileSystem用RPC調(diào)用元數(shù)據(jù)節(jié)點(diǎn),得到文件的數(shù)據(jù)塊信息。

    對(duì)于每一個(gè)數(shù)據(jù)塊,元數(shù)據(jù)節(jié)點(diǎn)返回保存數(shù)據(jù)塊的數(shù)據(jù)節(jié)點(diǎn)的地址。

    DistributedFileSystem返回FSDataInputStream給客戶端,用來(lái)讀取數(shù)據(jù)。

    客戶端調(diào)用stream的read()函數(shù)開始讀取數(shù)據(jù)。

    DFSInputStream連接保存此文件第一個(gè)數(shù)據(jù)塊的最近的數(shù)據(jù)節(jié)點(diǎn)。

    Data從數(shù)據(jù)節(jié)點(diǎn)讀到客戶端(client)

    當(dāng)此數(shù)據(jù)塊讀取完畢時(shí),DFSInputStream關(guān)閉和此數(shù)據(jù)節(jié)點(diǎn)的連接,然后連接此文件下一個(gè)數(shù)據(jù)塊的最近的數(shù)據(jù)節(jié)點(diǎn)。

    當(dāng)客戶端讀取完畢數(shù)據(jù)的時(shí)候,調(diào)用FSDataInputStream的close函數(shù)。

    在讀取數(shù)據(jù)的過(guò)程中,如果客戶端在與數(shù)據(jù)節(jié)點(diǎn)通信出現(xiàn)錯(cuò)誤,則嘗試連接包含此數(shù)據(jù)塊的下一個(gè)數(shù)據(jù)節(jié)點(diǎn)。

    失敗的數(shù)據(jù)節(jié)點(diǎn)將被記錄,以后不再連接。

    讀原理

    安全模式

    Name啟動(dòng)的時(shí)候,首先將映像文件(fsimage)載入內(nèi)存,并執(zhí)行編輯日志(edits)中的各項(xiàng)操作,一旦在內(nèi)存中成功建立文件系統(tǒng)元數(shù)據(jù)映射,則創(chuàng)建一個(gè)新的fsimage文件(SecondaryNameNode)和一個(gè)空的(edits)編輯日志。

    此刻N(yùn)amenode運(yùn)行"安全模式",即Namenode的文件系統(tǒng)對(duì)于客戶端來(lái)說(shuō)是只讀的。(顯示目錄,顯示文件內(nèi)容等。但是 增刪改都會(huì)失敗)。

    2.4 單機(jī)安裝

    系統(tǒng)環(huán)境

    名稱版本下載
    linuxcentos百度
    jdk1.7百度
    hadoop2.6.0百度

    jdk安裝

    下載地址百度即可,我使用的JDK版本是 1.7 ;

    2.4-01.jpg

    1.在linux創(chuàng)建一個(gè)文件夾放jdk

    mkdir /usr/jvm2.將jdk移到剛剛創(chuàng)建的JVM文件夾下,也可以解壓到j(luò)vm文件夾下

    我這里使用解壓

    tar -zxvf /opt/hadoop/tar/jdk-7u79-linux-x64.tar.gz -C /usr/jvm/3.解壓完成以后配置JDK環(huán)境變量 /etc/profile

    使用命令:

    vi /etc/profile

    2.4-02.jpg

    將↓↓↓↓加在profile中

    export JAVA_HOME=/usr/jvm/jdk1.7.0_79 export JAVA_BIN=/usr/jvm/jdk1.7.0_79/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    #PATH

    PATH=$PATH:$JAVA_HOME/bin

    2.4-03.jpg

    ==在linux配置中有hadoop在這里先不要管==

    4.到這里jdk配置已經(jīng)完成了,我們需要刷新一下剛剛修改的profile。否則我們改改新配置的參數(shù)是無(wú)法生效的。

    [root@zero230 tar]# source /etc/profile5.調(diào)用命令查看是否配置成功并且查看版本是否與我們配置的一致

    2.4-04.jpg

    [root@zero230 tar]# java -version

    java version "1.7.0_79"

    Java(TM) SE Runtime Environment (build 1.7.0_79-b15)

    Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)到這里JDK已經(jīng)安裝完成!

    SSH免驗(yàn)證

    $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

    配置Hadoop

    一.Hadoop-env.sh

    Hadoop也是需要java的,所以我們需要配置(hadoop-env.sh)它調(diào)用的java。

    vi hadoop-env.sh它默認(rèn)的配置是:export JAVA_HOME=${JAVA_HOME}。這樣的話必須定義變量才能啟動(dòng)JAVA,所以我們需要將(hadoop-env.sh)里面的JAVA_HOME變量指定的內(nèi)容改成我們的JAVA安裝的絕對(duì)路徑,我JDK安裝的路徑在"/usr/bin/java"目錄下。export JAVA_HOME=/usr/bin/java

    二.core-site.xml

    我們需要配置兩個(gè)參數(shù) defaultFS(HDFS默認(rèn)名稱)

    //配置HDFS名稱

    hdfs:協(xié)議頭,如:http https 等

    localhost:主機(jī)名

    9000:端口<property>

    <name>fs.defaultFS</name>

    <value>hdfs://localhost:9000</value></property>

    三.hdfs-site.xml

    replication(副本個(gè)數(shù) 默認(rèn)為3個(gè)),因?yàn)槲疫@里搭建的是單機(jī)所以只要一個(gè)。

    replication:設(shè)置的副本個(gè)數(shù)<property>

    <name>dfs.replication</name>

    <value>1</value></property>

    四.mapred-site.xml

    ==注意:mapred.site.xml開始并不存在,而是mapred-site.xml.template。我們需要使用cp命令一份命名為mapred.site.xml==

    <property>

    <name>mapreduce.framework.name</name>

    <value>yarn</value></property>

    五.yarn-site.xml

    <property>

    <name>yarn.nodemanager.aux-services</name>

    <value>mapreduce_shuffle</value></property><property>  <name>yarn.resourcemanager.address</name>  <value>localhost:8032</value></property>

    格式化HDFS

    1. $ bin/hdfs namenode -format

    格式化NameNode,不需要每次啟動(dòng)都需要格式化,機(jī)器第一次啟動(dòng)的時(shí)候需要格式化一次16/10/26 03:30:03 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]16/10/26 03:30:03 INFO namenode.NameNode: createNameNode [-format]16/10/26 03:30:05 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    Formatting using clusterid: CID-2eba6061-bea3-4e86-85cc-ebb1b51cf73016/10/26 03:30:05 INFO namenode.FSNamesystem: No KeyProvider found.16/10/26 03:30:05 INFO namenode.FSNamesystem: fsLock is fair:true16/10/26 03:30:06 INFO blockmanagement.DatanodeManager: dfs.block.invalidate.limit=100016/10/26 03:30:06 INFO blockmanagement.DatanodeManager: dfs.namenode.datanode.registration.ip-hostname-check=true16/10/26 03:30:06 INFO blockmanagement.BlockManager: dfs.namenode.startup.delay.block.deletion.sec is set to 000:00:00:00.00016/10/26 03:30:06 INFO blockmanagement.BlockManager: The block deletion will start around 2016 Oct 26 03:30:0616/10/26 03:30:06 INFO util.GSet: Computing capacity for map BlocksMap16/10/26 03:30:06 INFO util.GSet: VM type=64-bit16/10/26 03:30:06 INFO util.GSet: 2.0% max memory 966.7 MB=19.3 MB16/10/26 03:30:06 INFO util.GSet: capacity=2^21=2097152 entries16/10/26 03:30:06 INFO blockmanagement.BlockManager: dfs.block.access.token.enable=false16/10/26 03:30:06 INFO blockmanagement.BlockManager: defaultReplication=116/10/26 03:30:06 INFO blockmanagement.BlockManager: maxReplication=51216/10/26 03:30:06 INFO blockmanagement.BlockManager: minReplication=116/10/26 03:30:06 INFO blockmanagement.BlockManager: maxReplicationStreams=216/10/26 03:30:06 INFO blockmanagement.BlockManager: replicationRecheckInterval=300016/10/26 03:30:06 INFO blockmanagement.BlockManager: encryptDataTransfer=false16/10/26 03:30:06 INFO blockmanagement.BlockManager: maxNumBlocksToLog=100016/10/26 03:30:06 INFO namenode.FSNamesystem: fsOwner=root (auth:SIMPLE)16/10/26 03:30:06 INFO namenode.FSNamesystem: supergroup=supergroup16/10/26 03:30:06 INFO namenode.FSNamesystem: isPermissionEnabled=true16/10/26 03:30:06 INFO namenode.FSNamesystem: HA Enabled: false16/10/26 03:30:06 INFO namenode.FSNamesystem: Append Enabled: true16/10/26 03:30:06 INFO util.GSet: Computing capacity for map INodeMap16/10/26 03:30:06 INFO util.GSet: VM type=64-bit16/10/26 03:30:06 INFO util.GSet: 1.0% max memory 966.7 MB=9.7 MB16/10/26 03:30:06 INFO util.GSet: capacity=2^20=1048576 entries16/10/26 03:30:06 INFO namenode.NameNode: Caching file names occuring more than 10 times16/10/26 03:30:06 INFO util.GSet: Computing capacity for map cachedBlocks16/10/26 03:30:06 INFO util.GSet: VM type=64-bit16/10/26 03:30:06 INFO util.GSet: 0.25% max memory 966.7 MB=2.4 MB16/10/26 03:30:06 INFO util.GSet: capacity=2^18=262144 entries16/10/26 03:30:06 INFO namenode.FSNamesystem: dfs.namenode.safemode.threshold-pct=0.999000012874603316/10/26 03:30:06 INFO namenode.FSNamesystem: dfs.namenode.safemode.min.datanodes=016/10/26 03:30:06 INFO namenode.FSNamesystem: dfs.namenode.safemode.extension=3000016/10/26 03:30:06 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.window.num.buckets=1016/10/26 03:30:06 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.num.users=1016/10/26 03:30:06 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.windows.minutes=1,5,2516/10/26 03:30:06 INFO namenode.FSNamesystem: Retry cache on namenode is enabled16/10/26 03:30:06 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis16/10/26 03:30:06 INFO util.GSet: Computing capacity for map NameNodeRetryCache16/10/26 03:30:06 INFO util.GSet: VM type=64-bit16/10/26 03:30:06 INFO util.GSet: 0.029999999329447746% max memory 966.7 MB=297.0 KB16/10/26 03:30:06 INFO util.GSet: capacity=2^15=32768 entries16/10/26 03:30:06 INFO namenode.NNConf: ACLs enabled? false16/10/26 03:30:06 INFO namenode.NNConf: XAttrs enabled? true16/10/26 03:30:06 INFO namenode.NNConf: Maximum size of an xattr: 1638416/10/26 03:30:06 INFO namenode.FSImage: Allocated new BlockPoolId: BP-857467713-127.0.0.1-147746700675416/10/26 03:30:06 INFO common.Storage: Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted.16/10/26 03:30:07 INFO namenode.FSImageFormatProtobuf: Saving image file /tmp/hadoop-root/dfs/name/current/fsimage.ckpt_0000000000000000000 using no compression16/10/26 03:30:07 INFO namenode.FSImageFormatProtobuf: Image file /tmp/hadoop-root/dfs/name/current/fsimage.ckpt_0000000000000000000 of size 351 bytes saved in 0 seconds.16/10/26 03:30:07 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >=016/10/26 03:30:07 INFO util.ExitUtil: Exiting with status 016/10/26 03:30:07 INFO namenode.NameNode: SHUTDOWN_MSG:

    /************************************************************

    SHUTDOWN_MSG: Shutting down NameNode at localhost.localdomain/127.0.0.1

    ************************************************************/[root@localhost hadoop-2.6.0-cdh5.8.2]#

    格式化

    截取后半部分,這樣就表示格式化完成

    2. sbin/start-dfs.sh

    啟動(dòng)HDFS(NameNode,secondarynamenode,DataNode)

    [root@localhost hadoop]# start-dfs.sh

    16/10/26 03:57:24 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableStarting namenodes on [localhost]

    localhost: starting namenode, logging to /opt/hadoop/hadoop-2.6.0-cdh5.8.2/logs/hadoop-root-namenode-localhost.localdomain.outlocalhost: starting datanode, logging to /opt/hadoop/hadoop-2.6.0-cdh5.8.2/logs/hadoop-root-datanode-localhost.localdomain.outStarting secondary namenodes [0.0.0.0]0.0.0.0: starting secondarynamenode, logging to /opt/hadoop/hadoop-2.6.0-cdh5.8.2/logs/hadoop-root-secondarynamenode-localhost.localdomain.out16/10/26 03:58:31 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    2.4-06.jpg

    啟動(dòng)完成以后我們調(diào)用"jps"命令看是否真的啟動(dòng)成功了

    [root@localhost hadoop]# jps28442 Jps27137 NameNode27401 SecondaryNameNode27246 DataNode

    Web瀏覽HDFS文件

    到這一步我們可以通過(guò)ip地址訪問(wèn)HDFS文件系統(tǒng)。

    [root@localhost hadoop]# ifconfig

    inet **172.19.4.239** netmask 255.255.255.0 broadcast 172.19.4.255

    inet6 fe80::250:56ff:fe8d:1144 prefixlen 64 scopeid 0x20<link>

    ether 00:50:56:8d:11:44 txqueuelen 1000 (Ethernet)

    RX packets 1638661 bytes 777256881 (741.2 MiB)

    RX errors 0 dropped 8125 overruns 0 frame 0

    TX packets 333206 bytes 24964212 (23.8 MiB)

    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0我這里的地址為 172.19.4.239 那么外部訪問(wèn)的地址是:http://172.19.4.239:50070(默認(rèn)的端口號(hào))/就可以訪問(wèn)。

    2.4-07.jpg

    命令操作HDFS文件

    我們講到了配置-->啟動(dòng),現(xiàn)在我們來(lái)講講對(duì)HDFS文件系統(tǒng)的操作,操作HDFS 在linux中的命令:

    [root@localhost hadoop]# hdfs dfs

    Usage: hadoop fs [generic options]

    [-appendToFile <localsrc> ... <dst>]

    [-cat [-ignoreCrc] <src> ...]

    [-checksum <src> ...]

    [-chgrp [-R] GROUP PATH...]

    [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]

    [-chown [-R] [OWNER][:[GROUP]] PATH...]

    [-copyFromLocal [-f] [-p] [-l] <localsrc> ... <dst>]

    [-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]

    [-count [-q] [-h] [-v] <path> ...]

    [-cp [-f] [-p | -p[topax]] <src> ... <dst>]

    [-createSnapshot <snapshotDir> [<snapshotName>]]

    [-deleteSnapshot <snapshotDir> <snapshotName>]

    [-df [-h] [<path> ...]]

    [-du [-s] [-h] <path> ...]

    [-expunge]

    [-find <path> ... <expression> ...]

    [-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]

    [-getfacl [-R] <path>]

    [-getfattr [-R] {-n name | -d} [-e en] <path>]

    [-getmerge [-nl] <src> <localdst>]

    [-help [cmd ...]]

    [-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [<path> ...]]

    [-mkdir [-p] <path> ...]

    [-moveFromLocal <localsrc> ... <dst>]

    [-moveToLocal <src> <localdst>]

    [-mv <src> ... <dst>]

    [-put [-f] [-p] [-l] <localsrc> ... <dst>]

    [-renameSnapshot <snapshotDir> <oldName> <newName>]

    [-rm [-f] [-r|-R] [-skipTrash] <src> ...]

    [-rmdir [--ignore-fail-on-non-empty] <dir> ...]

    [-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]

    [-setfattr {-n name [-v value] | -x name} <path>]

    [-setrep [-R] [-w] <rep> <path> ...]

    [-stat [format] <path> ...]

    [-tail [-f] <file>]

    [-test -[defsz] <path>]

    [-text [-ignoreCrc] <src> ...]

    [-touchz <path> ...]

    [-usage [cmd ...]]

    Generic options supported are

    -conf <configuration file> specify an application configuration file

    -D <property=value> use value for given property

    -fs <local|namenode:port> specify a namenode

    -jt <local|resourcemanager:port> specify a ResourceManager

    -files <comma separated list of files> specify comma separated files to be copied to the map reduce cluster

    -libjars <comma separated list of jars> specify comma separated jar files to include in the classpath.

    -archives <comma separated list of archives> specify comma separated archives to be unarchived on the compute machines.

    The general command line syntax is

    bin/hadoop command [genericOptions] [commandOptions]

    **建立一個(gè)文件夾**

    [root@localhost hadoop]# hdfs dfs -mkdir /user

    16/10/26 04:10:38 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    **查看是否創(chuàng)建成功**

    [root@localhost hadoop]# hdfs dfs -ls /

    16/10/26 04:12:04 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    Found 1 items

    drwxr-xr-x - root supergroup 0 2016-10-26 04:10 /user

    簡(jiǎn)單命令就講到這里以后會(huì)更單獨(dú)講解HDFS

    2.5 分布式集群搭建

    系統(tǒng)環(huán)境

    名稱版本下載地址
    centos7百度
    JDK7百度
    hadoopCDH 2.6.0下載地址
    zero230172.19.4.230
    zero231172.19.4.231
    zero239172.19.4.239

    安裝JDK

    下載地址百度即可,我使用的JDK版本是 1.7 ;

    2.5-01.jpg

    1.在linux創(chuàng)建一個(gè)文件夾放jdk

    mkdir /usr/jvm2.將jdk移到剛剛創(chuàng)建的JVM文件夾下,也可以解壓到j(luò)vm文件夾下

    我這里使用解壓

    tar -zxvf /opt/hadoop/tar/jdk-7u79-linux-x64.tar.gz -C /usr/jvm/3.解壓完成以后配置JDK環(huán)境變量 /etc/profile

    使用命令:

    vi /etc/profile

    2.5-02.jpg

    將↓↓↓↓加在profile中

    export JAVA_HOME=/usr/jvm/jdk1.7.0_79 export JAVA_BIN=/usr/jvm/jdk1.7.0_79/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    #PATH

    PATH=$PATH:$JAVA_HOME/bin

    2.5-03.jpg

    ==在linux配置中有hadoop在這里先不要管==

    4.到這里jdk配置已經(jīng)完成了,我們需要刷新一下剛剛修改的profile。否則我們改改新配置的參數(shù)是無(wú)法生效的。

    [root@zero230 tar]# source /etc/profile5.調(diào)用命令查看是否配置成功并且查看版本是否與我們配置的一致

    2.5-04.jpg

    [root@zero230 tar]# java -version

    java version "1.7.0_79"

    Java(TM) SE Runtime Environment (build 1.7.0_79-b15)

    Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)到這里JDK已經(jīng)安裝完成!

    SSH互免驗(yàn)證

    1.在 zero230 zero231 zero239 機(jī)器上分別執(zhí)行一下命令

    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

    執(zhí)行完以后會(huì)獲得 id_dsa(私鑰) 和 id_dsa.pub(公鑰) 兩個(gè)文件2.在zero239 機(jī)器上執(zhí)行該命令

    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

    意思就是將 公鑰 的內(nèi)容追加到 authorized_keys 文件中。3.將 zero231/zero230 的 id_dsa.pub(公鑰)復(fù)制到zero239機(jī)器上

    [root@zero230 ~]# scp -r ~/.ssh/id_dsa.pub root@zero239:~/.ssh/230.pub

    [root@zero231 ~]# scp -r ~/.ssh/id_dsa.pub root@zero239:~/.ssh/231.pub

    **注意:**在這里復(fù)制到zero239機(jī)器上必須重新命令否則會(huì)將 zero239 的給覆蓋。4.將 230 231 機(jī)器上的 id_dsa.pub 復(fù)制到 239機(jī)器上了將他們追加到 "authorized_keys" 文件中。

    [root@zero239 ~]# cat ~/.ssh/23*.pub >> ~/.ssh/authorized_keys

    2.5-05.jpg

    5.將239機(jī)器上已經(jīng)添加了 230/231機(jī)器的公鑰"authorized_keys"文件復(fù)制到230和231機(jī)器上

    scp -r ~/.ssh/authorized_keys root@zero230:~/.ssh/

    scp -r ~/.ssh/authorized_keys root@zero231:~/.ssh/

    中有提示(yes/no),選擇yes6.測(cè)試SSH是否互通

    ssh zero230

    回車即可,如果需要輸入密碼請(qǐng)檢查是否配置正確

    [root@zero239 ~]# ssh zero230

    Last login: Thu Oct 27 14:56:54 2016 from a-bg-519.ztequantum.com

    [root@zero230 ~]# exit

    配置hadoop

    1.將hadoop安裝包復(fù)制到230 231 239 三臺(tái)機(jī)器上

    使用命令Scp

    2.解壓到/opt/hadoop(解壓到那個(gè)目錄下看自己,但一定要記得在哪個(gè)目錄下)文件夾下,建議*三臺(tái)機(jī)器上的hadoop存放的位置相同*

    tar zxvf /opt/hadoop/tar/hadoop-2.6.0-cdh5.8.2.tar.gz -C /opt/hadoop/3.修改配置文件

    首先我們要做分布式的Hadoop,那么配置一定需要將他們連串起來(lái),否則怎么可以相互傳遞數(shù)據(jù)呢?

    一.core-site.xml

    參數(shù)|說(shuō)明

    ----|----

    fs.defaultFS|Namenode 定義,HDFS Url訪問(wèn)地址

    io.file.buffer.size|設(shè)置緩存的大小

    二.hdfs-site.xml

    參數(shù)說(shuō)明
    dfs.namenode.name.dirNamenode 存儲(chǔ)的磁盤路徑
    dfs.datanode.data.dirDataNode 存儲(chǔ)的磁盤路徑
    dfs.blocksizeblock的大小設(shè)置
    dfs.replication節(jié)點(diǎn)數(shù)量設(shè)置,默認(rèn)為3個(gè)。這里230 231 239三個(gè)節(jié)點(diǎn),這里可以設(shè)置也可以不設(shè)置。

    三.mapred-site.xml

    參數(shù)說(shuō)明
    mapreduce.framwork.namemapreduce.framework.name屬性為yarn-tez,就可以替換默認(rèn)的MR框架為tez引擎。就是管理yarn

    四.yarn-site.xml

    參數(shù)說(shuō)明
    yarn.resourcemanager.hostnameresourcemanager 啟動(dòng)在那臺(tái)機(jī)器上

    五.slaves

    將 zero239 zero230 zero231 主機(jī)名添加進(jìn)去

    2.5-06.jpg

    4.配置修改完成以后將它復(fù)制分配到各個(gè)節(jié)點(diǎn)上\

    scp -r /opt/hadoop/hadoop-2.6.0-cdh5.8.2/etc/hadoop/* root@zero230:/opt/hadoop/hadoop-2.6.0-cdh5.8.2/etc/hadoop/

    scp -r /opt/hadoop/hadoop-2.6.0-cdh5.8.2/etc/hadoop/* root@zero231:/opt/hadoop/hadoop-2.6.0-cdh5.8.2/etc/hadoop/5.格式化hdfs

    hdfs namenode -format

    2.5-07.jpg

    6.啟動(dòng)hadoop

    方法一: start-dfs.sh 然后 yarn-start.sh

    方法二:start-all.sh

    2.5-08.jpg

    7.查看進(jìn)程是否全部啟動(dòng)使用命令:JPS 239機(jī)器:

    [root@zero239 hadoop-2.6.0-cdh5.8.2]# jps

    7518 NodeManager

    6813 NameNode 7874 Jps 5292 DataNode 7113 SecondaryNameNode 7404 ResourceManager 230機(jī)器:

    [root@zero230 ~]# jps

    5690 Jps 5545 NodeManager 5692 DataNode 231機(jī)器

    [root@zero231 ~]# jps

    3855 NodeManager 3631 DataNode 4082 Jps

    到這一步說(shuō)明分布式集群搭建完成。

    錯(cuò)誤記錄

    [root@localhost ~]# hadoop jar /opt/hadoop/hadoop-2.6.0-cdh5.8.2/share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.6.0-cdh5.8.2.jar wordcount /input /ouput16/10/26 04:40:32 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable16/10/26 04:40:33 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:803216/10/26 04:40:34 WARN security.UserGroupInformation: PriviledgedActionException as:root (auth:SIMPLE) cause:java.net.ConnectException: Call From localhost.localdomain/127.0.0.1 to localhost:9001 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefusedjava.net.ConnectException: Call From localhost.localdomain/127.0.0.1 to localhost:9001 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)

    at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:791)

    at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:731)

    at org.apache.hadoop.ipc.Client.call(Client.java:1475)

    at org.apache.hadoop.ipc.Client.call(Client.java:1408)

    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:230)

    at com.sun.proxy.$Proxy9.getFileInfo(Unknown Source)

    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:762)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:606)

    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:256)

    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:104)

    at com.sun.proxy.$Proxy10.getFileInfo(Unknown Source)

    at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:2121)

    at org.apache.hadoop.hdfs.DistributedFileSystem.doCall(DistributedFileSystem.java:1215)

    at org.apache.hadoop.hdfs.DistributedFileSystem.doCall(DistributedFileSystem.java:1211)

    at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)

    at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1211)

    at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1412)

    at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:145)

    at org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:270)

    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:143)

    at org.apache.hadoop.mapreduce.Job.run(Job.java:1307)

    at org.apache.hadoop.mapreduce.Job.run(Job.java:1304)

    at java.security.AccessController.doPrivileged(Native Method)

    at javax.security.auth.Subject.doAs(Subject.java:415)

    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1693)

    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1304)

    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1325)

    at org.apache.hadoop.examples.WordCount.main(WordCount.java:87)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:606)

    at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:71)

    at org.apache.hadoop.util.ProgramDriver.run(ProgramDriver.java:144)

    at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:74)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:606)

    at org.apache.hadoop.util.RunJar.run(RunJar.java:221)

    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)Caused by: java.net.ConnectException: Connection refused

    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)

    at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)

    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:530)

    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:494)

    at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:614)

    at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:713)

    at org.apache.hadoop.ipc.Client$Connection.access00(Client.java:375)

    at org.apache.hadoop.ipc.Client.getConnection(Client.java:1524)

    at org.apache.hadoop.ipc.Client.call(Client.java:1447)

    ... 41 more[root@localhost ~]#

    問(wèn)題:沒(méi)有關(guān)閉防火墻

    service iptables stop 關(guān)閉

    chkconfig iptables off 永久關(guān)閉

    2.6 課后作業(yè)

    1. 搭建一個(gè)3個(gè)節(jié)點(diǎn)的Hadoop分布式環(huán)境

    2. 用MR的方式實(shí)現(xiàn)第一課的作業(yè),對(duì)文本進(jìn)行統(tǒng)計(jì),輸出統(tǒng)計(jì)結(jié)果到HDFS

    更多課程可以關(guān)注

    【微信公眾號(hào)】小張網(wǎng)校

    公眾號(hào)內(nèi)有微信群,掃描加入后更多大牛交流學(xué)習(xí)

網(wǎng)站首頁(yè)   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有