分享

读取hbase数据到hdfs api 报错 网上搜不到 求解 错误java.lang.NoSuchFieldError...

本帖最后由 o13674976542 于 2018-11-5 10:42 编辑

错误信息:
Exception in thread "main" java.lang.NoSuchFieldError: DEFAULT_MR_AM_ADMIN_USER_ENV


package com.zzti.sq.day1101shenmegui.wtf;


import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;


public class ReadHBaseDataMR {
        
        private static final String ZK_CONNECT_KEY = "hbase.zookeeper.quorum";
        private static final String ZK_CONNECT_VALUE = "master:2181";
        private static final String TABLE = "user_info";

        public static void main(String[] args) throws Exception {
                System.setProperty("hadoop.home.dir", "/Users/songqi/RuntimeEnvironment/hadoop-2.7.6HA");
//                System.setProperty("HBASE_HOME", "/Users/songqi/RuntimeEnvironment/hbase-1.2.6");
                Configuration conf = HBaseConfiguration.create();
                conf.set(ZK_CONNECT_KEY, ZK_CONNECT_VALUE);
                Job job = Job.getInstance(conf);
                job.setJarByClass(ReadHBaseDataMR.class);
//                job.setJar("/Users/songqi/Desktop/wtf.jar");
                Scan scan  = new Scan();
                TableMapReduceUtil.initTableMapperJob(
                                TABLE,
                                scan,
                                ReadHbaseDataMR_Mapper.class,
                                Text.class,
                                NullWritable.class,
                                job,
                                false);
               
                job.setNumReduceTasks(0);
               
                FileOutputFormat.setOutputPath(job, new Path("/hbase_mr/result07"));
               
                boolean isDone = job.waitForCompletion(true);
                System.out.println(isDone);
        }
}

// class TableMapper<KEYOUT, VALUEOUT>
// extends Mapper<ImmutableBytesWritable, Result, KEYOUT, VALUEOUT>


mapper类:
package com.zzti.sq.day1101shenmegui.wtf;

import java.io.IOException;
import java.util.List;

import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.mapreduce.TableMapper;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;

public class ReadHbaseDataMR_Mapper extends TableMapper<Text, NullWritable>{
        
        Text outKey = new Text();
        
        @Override
        protected void map(ImmutableBytesWritable key,
                        Result result,
                        Context context)
                        throws IOException, InterruptedException {
               
                List<Cell> cells = result.listCells();
               
                for(Cell c: cells){
                        
                        String rowkey = Bytes.toString(CellUtil.cloneRow(c));
                        String family = Bytes.toString(CellUtil.cloneFamily(c));
                        String column = Bytes.toString(CellUtil.cloneQualifier(c));
                        String value = Bytes.toString(CellUtil.cloneValue(c));
                        long timestamp = c.getTimestamp();
                        
                        outKey.set(rowkey + "\t" + family + "\t" + column + "\t" + value + "\t" + timestamp);
                        context.write(outKey, NullWritable.get());
                }
               
        }
        
        
        
}




以下是报错信息:

错误

错误


只有这一点  



以下是控制台输出的所有信息 太长发不出来 基本都是这样 只在最后有个错
DEBUG [main] - Call: getFileInfo took 2ms
DEBUG [main] - Creating setup context, jobSubmitDir url is scheme: "hdfs" host: "sq" port: 8020 file: "/tmp/hadoop-yarn/staging/songqi/.staging/job_1541197362274_0007"
DEBUG [IPC Parameter Sending Thread #0] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi sending #22
DEBUG [IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi got value #22
DEBUG [main] - Call: getFileInfo took 2ms
DEBUG [IPC Parameter Sending Thread #0] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi sending #23
DEBUG [IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi got value #23
DEBUG [main] - Call: getFileInfo took 2ms
INFO [main] - Job jar is not present. Not adding any jar to the list of resources.
DEBUG [IPC Parameter Sending Thread #0] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi sending #24
DEBUG [IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi got value #24
DEBUG [main] - Call: getFileInfo took 2ms
DEBUG [IPC Parameter Sending Thread #0] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi sending #25
DEBUG [IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi got value #25
DEBUG [main] - Call: getFileInfo took 2ms
DEBUG [IPC Parameter Sending Thread #0] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi sending #26
DEBUG [IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi got value #26
DEBUG [main] - Call: getFileInfo took 2ms
DEBUG [IPC Parameter Sending Thread #0] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi sending #27
DEBUG [IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi got value #27
DEBUG [main] - Call: getFileInfo took 2ms
DEBUG [main] - Command to launch container for ApplicationMaster is : $JAVA_HOME/bin/java -Djava.io.tmpdir=$PWD/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=<LOG_DIR> -Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA -Dhadoop.root.logfile=syslog  -Xmx1024m org.apache.hadoop.mapreduce.v2.app.MRAppMaster 1><LOG_DIR>/stdout 2><LOG_DIR>/stderr
INFO [main] - Cleaning up the staging area /tmp/hadoop-yarn/staging/songqi/.staging/job_1541197362274_0007
DEBUG [IPC Parameter Sending Thread #0] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi sending #28
DEBUG [IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi] - IPC Client (225290371) connection to master/10.37.129.100:9000 from songqi got value #28
DEBUG [main] - Call: delete took 9ms

Exception in thread "main" java.lang.NoSuchFieldError: DEFAULT_MR_AM_ADMIN_USER_ENV
        at org.apache.hadoop.mapred.YARNRunner.createApplicationSubmissionContext(YARNRunner.java:480)
        at org.apache.hadoop.mapred.YARNRunner.submitJob(YARNRunner.java:296)
        at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:432)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1285)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1282)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:1282)
        at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1303)
        at com.zzti.sq.day1101shenmegui.wtf.ReadHBaseDataMR.main(ReadHBaseDataMR.java:45)
DEBUG [Thread-1] - stopping client from cache: org.apache.hadoop.ipc.Client@341b80b2


求解求解,很奇怪啊   集群我确定也是没问题的   
master.png slave1.png slave2.png









已有(6)人评论

跳转到指定楼层
yaojiank 发表于 2018-11-5 12:50:13
出现这个问题,一般为版本混合或则升级了等造成的。也就是说不是程序的问题,而是版本造成的。
回复

使用道具 举报

o13674976542 发表于 2018-11-5 16:23:47
yaojiank 发表于 2018-11-5 12:50
出现这个问题,一般为版本混合或则升级了等造成的。也就是说不是程序的问题,而是版本造成的。

您好,我同学的版本和我一样  都是 hbase 1.2.6  hadoop 2.7.6   我的环境为mac 下 的 虚拟机  同学的是windows平台 都为maven环境 请问有没有可能别的问题? 比如centos 版本?  我的是 7 他的是 6  但是这个不应该有这种问题吧 &#128531;
回复

使用道具 举报

阿飞 发表于 2018-11-5 20:06:19
本帖最后由 阿飞 于 2018-11-5 20:11 编辑
o13674976542 发表于 2018-11-5 16:23
您好,我同学的版本和我一样  都是 hbase 1.2.6  hadoop 2.7.6   我的环境为mac 下 的 虚拟机  同学的是w ...

为何会有两个人?
跟操作系统没关系的。一般跟大数据组件有关系。或则版本不兼容,冲突等造成的。

你本地的开发环境与集群环境是否一致。
是本地跑程序,还是远程跑程序。
回复

使用道具 举报

o13674976542 发表于 2018-11-6 08:56:56
阿飞 发表于 2018-11-5 20:06
为何会有两个人?
跟操作系统没关系的。一般跟大数据组件有关系。或则版本不兼容,冲突等造成的。

您好,是这样的,我说两个人意思是  我俩环境一样  他的没问题 我的有问题   。  是本地提交到远程跑程序,代码中我也设置了 本地环境是从虚拟机拷贝下来的 所以是一致的,那我现在应该考虑更换hbase  或者hadoop 版本来解决问题?
另外 想问您
您应该工作很久了,请问如果在公司遇到这种没头绪的问题该怎么办,根本不知道从何下手啊
回复

使用道具 举报

阿飞 发表于 2018-11-6 09:26:09
本帖最后由 阿飞 于 2018-11-6 09:27 编辑
o13674976542 发表于 2018-11-6 08:56
您好,是这样的,我说两个人意思是  我俩环境一样  他的没问题 我的有问题   。  是本地提交到远程跑程序 ...

其它不用考虑,就当练练看,找你们两个的区别在什么地方。
回复

使用道具 举报

o13674976542 发表于 2018-11-7 14:23:28
阿飞 发表于 2018-11-6 09:26
其它不用考虑,就当练练看,找你们两个的区别在什么地方。

好的谢谢您
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条