运行wordcount时显示Could not obtain block

该文章接上面hadoop运行wordcount时卡住不动,接着下面
hadoop@ubuntu118:~/hadoop-1.0.2$ bin/hadoop dfsadmin -safemode leave
Warning: $HADOOP_HOME is deprecated.

Safe mode is OFF

hadoop@ubuntu118:~/hadoop-1.0.2$ bin/hadoop jar hadoop-examples-1.0.2.jar wordcount file fileout66
Warning: $HADOOP_HOME is deprecated.

d****hdfs://192.168.0.118:9000/user/hadoop/file
12/09/10 18:35:52 INFO input.FileInputFormat: Total input paths to process : 2
12/09/10 18:35:53 INFO util.NativeCodeLoader: Loaded the native-hadoop library
12/09/10 18:35:53 WARN snappy.LoadSnappy: Snappy native library not loaded
12/09/10 18:35:53 INFO mapred.JobClient: Running job: job_201209101835_0001
12/09/10 18:35:54 INFO mapred.JobClient:  map 0% reduce 0%
12/09/10 18:36:17 INFO mapred.JobClient: Task Id : attempt_201209101835_0001_m_000000_0, Status : FAILED
java.io.IOException: Could not obtain block: blk_-7132067374412134968_1005 file=/user/hadoop/file/file2
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.chooseDataNode(DFSClient.java:2266)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.blockSeekTo(DFSClient.java:2060)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2221)
        at java.io.DataInputStream.read(DataInputStream.java:83)
        at org.apache.hadoop.util.LineReader.readLine(LineReader.java:134)
        at org.apache.hadoop.mapreduce.lib.input.LineRecordReader.nextKeyValue(LineRecordReader.java:97)
        at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:532)
        at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093)
        at org.apache.hadoop.mapred.Child.main(Child.java:249)

12/09/10 18:36:20 INFO mapred.JobClient: Task Id : attempt_201209101835_0001_m_000001_0, Status : FAILED
java.io.IOException: Could not obtain block: blk_-4697097477082743821_1006 file=/user/hadoop/file/file1
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.chooseDataNode(DFSClient.java:2266)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.blockSeekTo(DFSClient.java:2060)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2221)
        at java.io.DataInputStream.read(DataInputStream.java:83)
        at org.apache.hadoop.util.LineReader.readLine(LineReader.java:134)
        at org.apache.hadoop.mapreduce.lib.input.LineRecordReader.nextKeyValue(LineRecordReader.java:97)
        at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:532)
        at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093)
        at org.apache.hadoop.mapred.Child.main(Child.java:249)

12/09/10 18:36:35 INFO mapred.JobClient: Task Id : attempt_201209101835_0001_m_000000_1, Status : FAILED
java.io.IOException: Could not obtain block: blk_-7132067374412134968_1005 file=/user/hadoop/file/file2
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.chooseDataNode(DFSClient.java:2266)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.blockSeekTo(DFSClient.java:2060)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2221)
        at java.io.DataInputStream.read(DataInputStream.java:83)
        at org.apache.hadoop.util.LineReader.readLine(LineReader.java:134)
        at org.apache.hadoop.mapreduce.lib.input.LineRecordReader.nextKeyValue(LineRecordReader.java:97)
        at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:532)
        at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093)
        at org.apache.hadoop.mapred.Child.main(Child.java:249)

12/09/10 18:36:35 INFO mapred.JobClient: Task Id : attempt_201209101835_0001_m_000001_1, Status : FAILED
java.io.IOException: Could not obtain block: blk_-4697097477082743821_1006 file=/user/hadoop/file/file1
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.chooseDataNode(DFSClient.java:2266)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.blockSeekTo(DFSClient.java:2060)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2221)
        at java.io.DataInputStream.read(DataInputStream.java:83)
        at org.apache.hadoop.util.LineReader.readLine(LineReader.java:134)
        at org.apache.hadoop.mapreduce.lib.input.LineRecordReader.nextKeyValue(LineRecordReader.java:97)
        at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:532)
        at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093)
        at org.apache.hadoop.mapred.Child.main(Child.java:249)

12/09/10 18:36:50 INFO mapred.JobClient: Task Id : attempt_201209101835_0001_m_000000_2, Status : FAILED
java.io.IOException: Could not obtain block: blk_-7132067374412134968_1005 file=/user/hadoop/file/file2
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.chooseDataNode(DFSClient.java:2266)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.blockSeekTo(DFSClient.java:2060)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2221)
        at java.io.DataInputStream.read(DataInputStream.java:83)
        at org.apache.hadoop.util.LineReader.readLine(LineReader.java:134)
        at org.apache.hadoop.mapreduce.lib.input.LineRecordReader.nextKeyValue(LineRecordReader.java:97)
        at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:532)
        at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093)
        at org.apache.hadoop.mapred.Child.main(Child.java:249)

12/09/10 18:36:50 INFO mapred.JobClient: Task Id : attempt_201209101835_0001_m_000001_2, Status : FAILED
java.io.IOException: Could not obtain block: blk_-4697097477082743821_1006 file=/user/hadoop/file/file1
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.chooseDataNode(DFSClient.java:2266)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.blockSeekTo(DFSClient.java:2060)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2221)
        at java.io.DataInputStream.read(DataInputStream.java:83)
        at org.apache.hadoop.util.LineReader.readLine(LineReader.java:134)
        at org.apache.hadoop.mapreduce.lib.input.LineRecordReader.nextKeyValue(LineRecordReader.java:97)
        at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:532)
        at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093)
        at org.apache.hadoop.mapred.Child.main(Child.java:249)

12/09/10 18:37:12 INFO mapred.JobClient: Job complete: job_201209101835_0001
12/09/10 18:37:12 INFO mapred.JobClient: Counters: 6
12/09/10 18:37:12 INFO mapred.JobClient:   Job Counters 
12/09/10 18:37:12 INFO mapred.JobClient:     SLOTS_MILLIS_MAPS=115005
12/09/10 18:37:12 INFO mapred.JobClient:     Total time spent by all reduces waiting after reserving slots (ms)=0
12/09/10 18:37:12 INFO mapred.JobClient:     Total time spent by all maps waiting after reserving slots (ms)=0
12/09/10 18:37:12 INFO mapred.JobClient:     Launched map tasks=8
12/09/10 18:37:12 INFO mapred.JobClient:     SLOTS_MILLIS_REDUCES=0
12/09/10 18:37:12 INFO mapred.JobClient:     Failed map tasks=1

执行文件file里面文件权限问题,查看里面的文件后发现其中的文件没有执行权限,但修改后发现还是没有执行权限。无奈执行重新上传文件上去hdfs,之后运行正常。

转载于:https://my.oschina.net/mkh/blog/77852

### 回答1: Hadoop集群运行WordCount的步骤如下: 1. 准备数据:将需要统计的文本数据上传到Hadoop集群中的HDFS文件系统中。 2. 编写MapReduce程序:编写WordCount的MapReduce程序,其中包括Mapper类和Reducer类。 3. 打包程序:将编写好的MapReduce程序打包成jar包。 4. 提交作业:使用hadoop jar命令将jar包提交到Hadoop集群中运行。 5. 查看结果:等待作业运行完成后,在Hadoop集群中查看统计结果。 具体的步骤可以参考Hadoop官方文档或者其他相关教程。 ### 回答2: Hadoop是一款分布式计算框架,通过将数据分散到不同的机器上处理,从而实现了大规模数据的快速处理。Hadoop集群的运行需要通过分布式计算任务进行实现。Wordcount是Hadoop的一个经典实例,可以用来计算数据中每个单词出现的次数。 在Hadoop集群运行Wordcount首先需要准备数据,将数据上传到Hadoop文件系统HDFS中,可以使用Hadoop命令行工具或Hadoop API将数据上传到Hadoop中。上传完数据后,需要编写MapReduce程序对数据进行处理。MapReduce是Hadoop的计算模型,它将输入数据划分成若干分片,每个分片由一个Map任务处理,并将结果输出到一个临文件,在Reduce任务中对这个临文件进行整合从而得到最终结果。 在编写程序,需要定义Map和Reduce的业务逻辑。在Wordcount中,Map任务的业务逻辑是读取每个文档中的单词,并将每个单词作为Key值输出,Value值设置为1,表示出现的次数。Reduce任务的业务逻辑是将相同Key的Value值进行累加,从而得出每个单词出现的总次数。 最后,将编写好的MapReduce程序打包上传到Hadoop集群中,通过YARN ResourceManager调度Map和Reduce任务分配给不同的计算节点执行。任务执行完成后,结果将输出到指定的输出目录中。 总的来说,Hadoop集群运行Wordcount需要进行以下几步操作:准备数据、编写MapReduce程序、上传程序并提交任务、等待任务运行完成并输出结果。在程序运行过程中需要进行日志跟踪和任务管理,以确保任务的正常运行和结果正确输出。 ### 回答3: Hadoop集群运行wordcount是Hadoop的一个基本例子,用于理解Hadoop MapReduce框架的运行方式。下面是具体步骤: 1.安装Hadoop 首先需要在每一台机器上安装Hadoop集群,并配置好环境变量。在安装完成后,需要测试安装是否成功,可以执行hadoop version命令,能够看到输出Hadoop的版本信息,则说明Hadoop已安装成功。 2.编写MapReduce作业 在该集群上运行wordcount需要编写MapReduce作业,这个作业包含了map和reduce方法代码。在map方法中,通过空格将每个单词分离出来,并将其映射到一个键值对中;在reduce方法中,将所有相同键值对的值加起来,得到对应单词出现的频率。 3.上传文件到HDFS 需要将要处理的文件上传到HDFS中。可以使用以下命令将文件上传到HDFS中: ``` hadoop fs -mkdir /input hadoop fs -put input_file /input ``` 4.提交MapReduce作业 可以使用以下命令提交MapReduce作业: ``` hadoop jar wordcount.jar WordCount /input /output ``` 其中,wordcount.jar是MapReduce的Java代码打包好的JAR文件,后面跟着两个参数,第一个参数是输入文件所在的路径(HDFS中的路径),第二个参数是输出文件所在的路径。 5.查看结果 等待作业完成后,可以通过以下命令查看结果: ``` hadoop fs -cat /output/part-r-00000 ``` 其中,part-r-00000是reduce任务的输出文件名称。 通过以上步骤,就可以在Hadoop集群上运行wordcount作业并获取结果。需要注意的是,在实际生产环境中,需要对Hadoop集群进行更细致的配置和优化,以确保作业可以在最短间内完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值