2012-05-14 2 views
0

Я новичок в Hadoop/Hive. Я пытаюсь обрабатывать xml-файлы с hive.After googling на некоторое время, я наткнулся на пользовательский код FileFormat для xml-файлов, которые могут быть использованы для этой цели.Использование пользовательского fileformat для чтения xml-файлов в кусте

(Вот исходный код для пользовательского класса xmlinputformat: XmlInputFormat.class

Я добавил флягу для класса xmlinputformat и создал образец таблицы, как:

create table person ( 
    name string 
    )   
    ROW FORMAT DELIMITED 
    FIELDS TERMINATED BY '\t'  
    STORED AS INPUTFORMAT 'com.hadoop.xmlparser.XmlInputFormat' 
    OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'; 

Я пытался получить данные из выше таблицы и получил следующее сообщение об ошибке:

Execution Error, код возврата 2 из org.apache.hadoop.hive.ql.exec.MapRedTask

Ниже приведены ошибки, обнаруженные в журналах JobTracker:

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at org.apache.hadoop.hive.shims.Hadoop20SShims$CombineFileRecordReader.initNextRecordReader(Hadoop20SShims.java:306) 
    at org.apache.hadoop.hive.shims.Hadoop20SShims$CombineFileRecordReader.<init>(Hadoop20SShims.java:269) 
    at org.apache.hadoop.hive.shims.Hadoop20SShims$CombineFileInputFormatShim.getRecordReader(Hadoop20SShims.java:366) 
    at org.apache.hadoop.hive.ql.io.CombineHiveInputFormat.getRecordReader(CombineHiveInputFormat.java:413) 
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:371) 
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:325) 
    at org.apache.hadoop.mapred.Child$4.run(Child.java:270) 
    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:1127) 
    at org.apache.hadoop.mapred.Child.main(Child.java:264) 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun 

Любые решения вышеуказанной проблемы ?? Благодаря!!

ответ

0

Я не использовал этот конкретный InputFormat, но Hive предполагает, что записи ограничены \ n. Поэтому вам нужно убедиться, что ваш XML не имеет \ n.

Смежные вопросы