понедельник, 29 июля 2013 г.

вторник, 16 июля 2013 г.

понедельник, 15 июля 2013 г.

Hadoop MapReduce "Can't read partitions file"

Во время выполнения джобы, падает вот такое исключение "Can't read partitions file"


13/07/15 18:48:42 WARN mapred.LocalJobRunner: job_local38891965_0001
java.lang.Exception: java.lang.IllegalArgumentException: Can't read partitions file
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:404)
Caused by: java.lang.IllegalArgumentException: Can't read partitions file
at org.apache.hadoop.mapreduce.lib.partition.TotalOrderPartitioner.setConf(TotalOrderPartitioner.java:108)
at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:70)
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:130)
at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:588)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:657)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:331)
at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.FileNotFoundException: File file:/home/anikulin/_partition.lst does not exist
at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:468)
at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:373)
at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1704)
at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1728)
at org.apache.hadoop.mapreduce.lib.partition.TotalOrderPartitioner.readPartitions(TotalOrderPartitioner.java:293)
at org.apache.hadoop.mapreduce.lib.partition.TotalOrderPartitioner.setConf(TotalOrderPartitioner.java:80)
... 12 more


Это значит что наш кластер функционирует в режиме "pseudo distributed mode"
Хотя никто его об этом не просил!
Чинится прописыванием адреса JobTracker в mapred-site.xml

В Клоудеровском исполнении это делается из консоли, добавлением свойств в
"MapReduce Service Configuration Safety Valve for mapred-site.xml"

<property>
       <name>mapred.job.tracker</name>
       <value>categorizer-hadoop-1.mywork:8021</value>
</property>


http://archive.cloudera.com/cdh4/cdh/4/hbase/book.html

Вот опять начались дни Хадупа в Макдональдсе

sudo -u hdfs hadoop dfsadmin -safemode leave

Переводит ноду из режима "Name node is in safe mode"