VJu*_*une 4 hadoop amazon-s3 apache-pig amazon-web-services hdfs
我是一个新手.我创建了一个集群并ssh到主节点.当我尝试将文件从s3:// my-bucket-name /复制到pig中的本地文件:// home/hadoop文件夹时使用:
cp s3://my-bucket-name/path/to/file file://home/hadoop
Run Code Online (Sandbox Code Playgroud)
我收到错误:
2013-06-08 18:59:00,267 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 29 99:意外的内部错误.AWS Access Key ID和Secret Access Key必须分别作为s3 URL的用户名或密码,或者通过设置fs.s3.awsAccessKeyId或fs.s3.awsSecretAccessKey属性(分别).
我甚至不能进入我的s3桶.我没有成功设置AWS_ACCESS_KEY和AWS_SECRET_KEY.此外,我找不到猪的配置文件来设置适当的字段.
有什么帮助吗?
编辑:我尝试使用完整的s3n:// uri在pig中加载文件
grunt> raw_logs = LOAD 's3://XXXXX/input/access_log_1' USING TextLoader a
s (line:chararray);
grunt> illustrate raw_logs;
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
2013-06-08 19:28:33,342 [main] INFO org.apache.pig.backend.hadoop.executionengi ne.HExecutionEngine - 连接到hadoop文件系统:file:/// 2013-06-08 19:28: 33,404 [main] INFO org.apache.pig.backend.hadoop.executionengi ne.mapReduceLayer.MRCompiler - 文件级联阈值:100乐观?fal se 2013-06-08 19:28:33,404 [main] INFO org.apache.pig.backend.hadoop.executionengi ne.mapReduceLayer.MultiQueryOptimizer - 优化前的MR计划大小:1 2013-06-08 19:28:33,405 [主要] INFO org.apache.pig.backend.hadoop.executionengi ne.mapReduceLayer.MultiQueryOptimizer - 优化后的MR计划大小:1 2013-06-08 19:28:33,405 [main] INFO org.apache.pig.tools. pigstats.ScriptState - Pig脚本设置被添加到作业2013-06-08 19:28:33,429 [main] INFO org.apache.pig.backend.hadoop.executionengi ne.mapReduceLayer.JobControlCompiler - mapred.job.reduce.markreset.buffer.percen t未设置,设置为默认值0.3 2013-06-08 19:28:33,430 [main] ERROR org.apache.pig.pen.ExampleGenerator - 读取数据时出错.内部错误创建作业配置.java.lang.RuntimeException:创建作业配置的内部错误.org.apache.pig.pen.ExampleGenerator.getExamples(ExampleGenerator.java:160)atg.apache.pig.PigServer.getExamples(PigServer.java:1244)org.apache.pig.tools.grunt.GruntParser.processIllustrate (gruntParser.java:722)org.apache.pig.tools.pigscript.parser.PigScriptParser.Illustrate(PigS criptParser.java:591)org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScript Parser) .java:306)在org.apache.pig.tools.grunt.来自org.apache.pig.tools.grunt.Grunt.run的org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.j ava:165)中的GruntParser.parseStopOnError(GruntParser.j ava:189)(Grunt. java:69)atg.apache.pig.Main.run(Main.java:500)atg.apache.pig.Main.main(Main.java:114)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at the sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)at at java.lang.reflect.Method.invoke(Method.java:597)atg .apache.hadoop.util.RunJar.main(RunJar.java:187)2013-06-08 19:28:33,432 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 29 97:遇到IOException.例外:创建作业配置的内部错误.日志文件的详细信息:/home/hadoop/pig_1370719069857.log
小智 7
首先,您应该使用s3n协议(除非您使用s3协议将文件存储在s3上) - s3用于块存储(即类似于hdfs,仅用于s3),s3n用于本机s3文件系统(即得到你在那里看到的东西).
您可以使用scp中的distcp或简单的猪负载.您可以在hadoop-site.xml中提供访问和机密,如您获得的异常中所指定的(有关详细信息,请参阅此处:http://wiki.apache.org/hadoop/AmazonS3),或者您可以将它们添加到URI:
raw_logs = LOAD 's3n://access:secret@XXXXX/input/access_log_1' USING TextLoader AS (line:chararray);
Run Code Online (Sandbox Code Playgroud)
确保你的秘密不包含反斜杠 - 否则它将无效.
| 归档时间: |
|
| 查看次数: |
12334 次 |
| 最近记录: |