无法读取输入文件:使用DBStorage将Pig存储到MYSQL

时间:2016-01-21 06:43:13

标签: mysql apache-pig

我正在尝试使用Pig脚本中的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的EC2上设置,并使用HDP MYSQL数据库存储猪输出。

非常感谢指针。

谢谢,

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 必须在pig.properties文件中添加mysql连接器作为附加jar。 它起作用了。 将它添加到猪控制台中,没有帮助。

由于