无法读取输入文件:使用 DBStorage 将猪存储到 MYSQL
Posted
技术标签:
【中文标题】无法读取输入文件:使用 DBStorage 将猪存储到 MYSQL【英文标题】:Unable to read input file : Pig store to MYSQL using DBStorage 【发布时间】:2016-01-21 06:43:12 【问题描述】:我正在尝试使用猪脚本中的 DBStorage 将数据存储到 mysql。 当我运行脚本时,出现无法读取输入文件的错误。 而当我尝试转储以存储相同的数据文件时,它工作正常。 示例猪脚本:
%default DATABASE_HOST 'localhost';
%default DATABASE_NAME 'Test';
%default DATABASE_USER 'username';
%default DATABASE_PASS 'password';
%default DATABASE_DRIVER 'com.mysql.jdbc.Driver';
%default DATABASE_TYPE 'mysql';
A = LOAD '/tmp/TestDivya/Pig/PigSQLTest.txt' using PigStorage() as (name: chararray);
STORE A into 'test' using org.apache.pig.piggybank.storage.DBStorage('$DATABASE_DRIVER', 'jdbc:$DATABASE_TYPE://$DATABASE_HOST/$DATABASE_NAME', '$DATABASE_USER', '$DATABASE_PASS', 'INSERT INTO Test(name) VALUES (?)');
HadoopVersion PigVersion UserId StartedAt FinishedAt Features
2.7.1.2.3.4.0-3485 0.15.0.2.3.4.0-3485 hdfs 2016-01-21 01:34:552016-01-21 01:35:07 UNKNOWN
Failed!
Failed Jobs:
JobId Alias Feature Message Outputs
job_1453263223178_0042 A MAP_ONLY Message: Job failed! hdfs://ip-xxx-xx-xx-xxx.ap-southeast-1.compute.internal:8020/user/hdfs/test,
Input(s):
Failed to read data from "/tmp/TestDivya/Pig/PigSQLTest.txt"
Output(s):
Failed to produce result in "hdfs://ip-xxx-xx-xx-xxx.ap-xxxxxx-1.compute.internal:8020/user/hdfs/test"
Counters:
Total records written : 0
Total bytes written : 0
Spillable Memory Manager spill count : 0
Total bags proactively spilled: 0
Total records proactively spilled: 0
Job DAG:
job_1453263223178_0042
我的集群设置在具有 Hortonworks HDP 2.3.4 并使用 HDP MYSQL 数据库存储猪输出的 EC2 上。
非常感谢您的指点。
谢谢,
【问题讨论】:
【参考方案1】:我找到了解决方案。 必须在 pig.properties 文件中添加 mysql 连接器作为附加 jars。 它奏效了。 在猪控制台中添加它,没有帮助。
谢谢
【讨论】:
以上是关于无法读取输入文件:使用 DBStorage 将猪存储到 MYSQL的主要内容,如果未能解决你的问题,请参考以下文章