hadoop job java_java编译通过,但是在hadoop上运行卡在jobrunning,然后报错timeout,是为什么呢?...

hadoop jar  load.jar    caivbslist  /user/ip/public/cbill_ticket_cdma_voice/201608/20160805  /user/ip/public/cbill_ticket_ivpn/201608/20160805    /user/ffcs_sales/private/output/load_interface/20160805   20160825

WARNING: Use "yarn jar" to launch YARN applications.

16/10/11 11:07:48 INFO impl.TimelineClientImpl: Timeline service address: http://hdd334:8188/ws/v1/timeline/

16/10/11 11:07:48 INFO hdfs.DFSClient: Created HDFS_DELEGATION_TOKEN token 262373 for ffcs_sales on ha-hdfs:ns1

16/10/11 11:07:48 INFO security.TokenCache: Got dt for hdfs://ns1; Kind: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:ns1, Ident: (HDFS_DELEGATION_TOKEN token 262373 for ffcs_sales)

16/10/11 11:07:48 INFO client.ConfiguredRMFailoverProxyProvider: Failing over to rm2

16/10/11 11:07:49 INFO input.FileInputFormat: Total input paths to process : 212

16/10/11 11:07:49 INFO lzo.GPLNativeCodeLoader: Loaded native gpl library

16/10/11 11:07:49 INFO lzo.LzoCodec: Successfully loaded & initialized native-lzo library [hadoop-lzo rev 0d76fa3d79ee46cc5bc1f2bdad607fb18978826d]

16/10/11 11:07:49 INFO input.FileInputFormat: Total input paths to process : 74

16/10/11 11:07:49 INFO mapreduce.JobSubmitter: number of splits:287

16/10/11 11:07:49 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1476104218015_2453

16/10/11 11:07:49 INFO mapreduce.JobSubmitter: Kind: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:ns1, Ident: (HDFS_DELEGATION_TOKEN token 262373 for ffcs_sales)

16/10/11 11:07:50 INFO impl.YarnClientImpl: Submitted application application_1476104218015_2453

16/10/11 11:07:50 INFO mapreduce.Job: The url to track the job: http://HDD333:8088/proxy/appli ... 2453/

16/10/11 11:07:50 INFO mapreduce.Job: Running job: job_1476104218015_2453

Job job_1476104218015_2453 running in uber mode : false

16/10/11 11:33:48 INFO mapreduce.Job: map 0% reduce 0%

16/10/11 11:33:48 INFO mapreduce.Job: Job job_1476104218015_2453 failed with state FAILED due to: Application application_1476104218015_2453 failed 2 times due to ApplicationMaster for attempt appattempt_1476104218015_2453_000002 timed out. Failing the application.

16/10/11 11:33:48 INFO mapreduce.Job: Counters: 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java程序可以在Hadoop运行,以下是一些基本步骤: 1. 确认Hadoop环境已经搭建完成并启动。 2. 将Java程序打包成Jar包。 3. 将Jar包上传到Hadoop集群上。 4. 编写一个Hadoop作业来运行Java程序,通常使用hadoop jar命令来执行这个作业,其中包括指定输入和输出路径等参数。 下面是一个示例作业的代码: ``` import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.*; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; public class WordCount { public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable>{ private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(Object key, Text value, Context context ) throws IOException, InterruptedException { StringTokenizer itr = new StringTokenizer(value.toString()); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); context.write(word, one); } } } public static class IntSumReducer extends Reducer<Text,IntWritable,Text,IntWritable> { private IntWritable result = new IntWritable(); public void reduce(Text key, Iterable<IntWritable> values, Context context ) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } result.set(sum); context.write(key, result); } } public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = Job.getInstance(conf, "word count"); job.setJarByClass(WordCount.class); job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(IntSumReducer.class); job.setReducerClass(IntSumReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); System.exit(job.waitForCompletion(true) ? 0 : 1); } } ``` 这个作业从输入文件中读取数据,将每个单词作为键并将值设置为1,最后通过reduce函数来计算每个单词出现的次数。 要运行这个作业,可以使用以下命令: ``` hadoop jar WordCount.jar input output ``` 其中,WordCount.jar是打包好的Java程序,input是输入路径,output是输出路径。 ### 回答2: 要在Hadoop运行Java程序,首先需要配置好Hadoop环境。以下是运行Java程序的步骤: 1. 安装Hadoop:请按照Hadoop官方文档的指导,下载并正确安装Hadoop。 2. 编写Java程序:使用Java编程语言编写需要在Hadoop运行的程序。确保程序适当地使用Hadoop API和类库。 3. 将Java程序打包成JAR文件:将编写的Java程序打包成JAR文件。确保JAR文件包含必要的依赖项。 4. 将输入数据上传到Hadoop文件系统(HDFS):使用Hadoop的命令行工具或Hadoop API,将程序所需的输入数据上传到HDFS上的适当目录。 5. 配置Hadoop作业参数:在Hadoop集群的配置目录中,找到"mapred-site.xml"文件,并设置适当的作业参数。这些参数包括输入路径、输出路径、作业名称、Mapper和Reducer类等。 6. 提交Hadoop作业:使用"Hadoop jar"命令,将JAR文件和作业参数提交到Hadoop集群上运行。例如,运行以下命令: Hadoop jar YourProgram.jar your.MainClass -input inputPath -output outputPath 7. 等待作业完成:Hadoop将分配计算任务给不同的节点执行。您可以使用HadoopJobTracker Web界面来跟踪作业的状态和进展。 8. 获取输出结果:一旦作业完成,您可以使用Hadoop的命令行工具或Hadoop API,从HDFS获取输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值