Сбой SparkHadoopWriter с NPE на UserProvider - PullRequest
0 голосов
/ 24 мая 2018

Я использую Spark для записи данных в Hbase, я могу читать данные очень хорошо, но запись не удалась со следующим исключением.Я нашел похожую проблему, которая была решена путем добавления * site.xml и hbase JAR.Но это не работает для меня.Я пытаюсь прочитать данные из таблицы и записать данные в другую таблицу.я могу читать данные просто отлично, но получаю исключение во время записи.

     JavaPairRDD<ImmutableBytesWritable, Put>  tablePuts = hBaseRDD.mapToPair(new PairFunction<Tuple2<ImmutableBytesWritable, Result>, ImmutableBytesWritable, Put>() {      
            @Override
            public Tuple2<ImmutableBytesWritable, Put> call(Tuple2<ImmutableBytesWritable, Result> results) throws Exception {
                        byte[] accountId = results._2().getValue(Bytes.toBytes(COLFAMILY), Bytes.toBytes("accountId"));                       
                        String rowKey = new String(results._2().getRow();
String accountId2 = (Bytes.toString(accountId));
                        String prefix = getMd5Hash(rowKey);
                        String newrowKey = prefix + rowKey; 
                        Put put = new Put( Bytes.toBytes(newrowKey) );
                        put.addColumn(Bytes.toBytes("def"), Bytes.toBytes("accountId"), accountId);

                    }
                });
    Job newAPIJobConfiguration = Job.getInstance(conf);
        newAPIJobConfiguration.getConfiguration().set(TableOutputFormat.OUTPUT_TABLE, OUT_TABLE_NAME);
        newAPIJobConfiguration.setOutputFormatClass(org.apache.hadoop.hbase.mapreduce.TableOutputFormat.class);
        newAPIJobConfiguration.setOutputKeyClass(org.apache.hadoop.hbase.io.ImmutableBytesWritable.class);
        newAPIJobConfiguration.setOutputValueClass(org.apache.hadoop.io.Writable.class);
        tablePuts.saveAsNewAPIHadoopDataset(newAPIJobConfiguration.getConfiguration());

Исключение в потоке "main" java.lang.NullPointerException в org.apache.hadoop.hbase.security.UserProvider.instantiate (UserProvider.java: 123) в org.apache.hadoop.hbase.client.ConnectionFactory.createConnection (ConnectionFactory.java:214) в org.apache.hadoop.hbase.client.ConnectionFactory.createConnection (ConnectionFactory.java:119) в org.ap.hadoop.hbase..write (SparkHadoopWriter.scala: 71) в org.apache.spark.rdd.PairRDDFunctions $$ anonfun $ saveAsNewAPIHadoopDataset $ 1.apply $ mcV $ sp (PairRDDFunctions.scala: 1083) в org.apache.spairDFD.anonfun $ saveAsNewAPIHadoopDataset $ 1.apply (PairRDDFunctions.scala: 1081) в org.apache.spark.rdd.PairRDDFunctions $$ anonfun $ saveAsNewAPIHadoopDataset $ 1.apply (PairRDDFunctions.scala: 1081) в org.apache.spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 151) в org.apache.spark.rdd.RDDOperationScope $ .withScope.cope $ .withScope.cope (.) в org.apache.spark.rdd.RDD.withScope (RDD.scala: 363) в org.apache.spark.rdd.PairRDDFunctions.saveAsNewAPIHadoopDataset (PairRDDFunctions.scala: 1081) в org.apache.spark.api.JavaPairRDD.saveAsNewAPIHadoopDataset (JavaPairRDD.scala: 831) по адресу com.voicebase.etl.s3tohbase.HbaseScan2.main (HbaseScan2.java:148) по адресу sun.reflect.NativeMethodAccessorImpl.invoto.ImpImon.Noke0NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke (Method.java:498) в org.apain.pache.(SparkApplication.scala: 52) в org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $$ runMain (SparkSubmit.scala: 879) в org.apache.spark.deploy.SparkSubmit $ .doRunMain $ 1 (SparkSubmit.scala: 197) в org.apache.spark.deploy.SparkSubmit $ .submit (SparkSubmit.scala: 227) в org.apache.spark.deploy.SparkS$ .main (SparkSubmit.scala: 136) в org.apache.spark.deploy.SparkSubmit.main (SparkSubmit.scala)

...