将数据从配置单元转储到MongoDB时出错

将数据从配置单元转储到MongoDB时出错,mongodb,hadoop,hive,hue,Mongodb,Hadoop,Hive,Hue,在将数据从Hive转储到MongoDB时,我面临以下问题。我运行的命令是: (一) 创建外部表mongo_用户(memberid字符串、电子邮件字符串、sentdate字符串、actiontype字符串、actiondate字符串、campaignid字符串、campaignname字符串),这些用户由“org.yong3.hive.mongo.MongoStorageHandler”存储,具有SerdeProperty(“mongo.column.mapping”=“memberid、电子邮件

在将数据从Hive转储到MongoDB时,我面临以下问题。我运行的命令是:

(一)

创建外部表mongo_用户(memberid字符串、电子邮件字符串、sentdate字符串、actiontype字符串、actiondate字符串、campaignid字符串、campaignname字符串),这些用户由“org.yong3.hive.mongo.MongoStorageHandler”存储,具有SerdeProperty(“mongo.column.mapping”=“memberid、电子邮件、sentdate、actiontype、actiondate、campaignid、campaignname”)TBLProperty属性(“mongo.host”=“serverip”、“mongo.port”=“port”、“mongo.db”=“admin”、“mongo.collection”=“dummy”)

2)
insert into table mongo_用户从testmail中选择*

表的说明:

Mongo_Users

memberid        string  from deserializer
email           string  from deserializer
sentdate        string  from deserializer
actiontype      string  from deserializer
actiondate      string  from deserializer
campaignid      string  from deserializer
campaignname    string  from deserializer
TestMail表:

memberid        string
email   string
sentdate        string
actiontype      string
actiondate      string
campaignid      string
campaignname    string
配置单元正在抛出错误:

Diagnostic Messages for this Task:
java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"memberid":"1","email":"George1@gmail.com","sentdate":"1st June 2012","actiontype":"Bounced","actiondate":"4-Jun","campaignid":"51674","campaignname":"Brand Awareness"}
    at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:159)
    at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:417)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:332)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
    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:1438)
    at org.apache.hadoop.mapred.Child.main(Child.java:262)
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"memberid":"1","email":"George1@gmail.com","sentdate":

FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask
MapReduce Jobs Launched:
Job 0: Map: 1   HDFS Read: 0 HDFS Write: 0 FAIL
Total MapReduce CPU Time Spent: 0 msec

首先,您必须设置配置单元

命令如下

hive--auxpath/home/hadoop/mongo-java-driver-2.12.4.jar,/home/hadoop/hive-mongo-0.0.1-SNAPSHOT.jar

除了上述JAR之外,您还需要添加执行配置单元脚本所需的JAR

创建mongo表

创建由“org.yong3.hive.mongo.mongostragehandler”存储的外部表mongo_用户(student_id INT、email_id STRING、delivery_status STRING)和serdeproperty(“mongo.column.mapping”=“student_id、email_id、delivery_status”)TBLProperty(“mongo.host”=“ServerName”、“mongo.port”=“port”、“mongo.db”=“admin”、“mongo.user”=“admin”,“mongo.passwd”=“admin”、“mongo.collection”=“testing”)

从配置单元向mongo插入数据:

插入覆盖表mongo_用户从avro_表中选择学生id、电子邮件id、送达状态