У меня есть этот код, который сохраняет schemaRDD (человек) к столу улей хранится в виде паркета (person_parquet)Spark: Улей Вставить перезапись бросает ClassNotFoundException
hiveContext.sql("insert overwrite table person_parquet select * from person")
Но выдает ошибку:
Java. lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdConfOnlyAuthorizerFactory at org.apache.hadoop .hive.ql.session.SessionState.setupAuth (SessionState.java:399) at org.apache.hadoop.hive.ql.session .SessionState.getAuthenticator (SessionState.java:867) at org.apache.hadoop.hive.ql.session.SessionState.getUserFromAuthenticator (SessionState.java:589) at org.apache.hadoop.hive.ql.metadata.Table .getEmptyTable (Table.java:174) at org.apache.hadoop.hive.ql.metadata.Table. (Table.java:116) по адресу org.apache.hadoop.hive.ql.metadata.Hive.newTable (Hive.java:2566) at org.apache.hadoop.hive.ql.metadata.Hive.getTable (Hive.java:917) at org.apache.hadoop.hive.ql.metadata.Hive.loadTable (Hive. java: 1464) at org.apache.spark.sql.hive.execution.InsertIntoHiveTable.sideEffectResult $ lzycompute (InsertIntoHiveTable.scala: 243) at org.apache.spark.sql.hive.execution.InsertIntoHiveTable.sideEffectResult (InsertIntoHiveTable. scala: 137) at org.apache.spark.sql.execution.Command $ class.execute (commands.scala: 46) at org.apache.spark.sql.hecution.execution.InsertIntoHiveTable.execute (InsertIntoHiveTable.scala: 51) at org.apache.spark.sql.SQLContext $ QueryExecution.toRdd $ lzycompute (SQLContext.scala: 425) at org.apache.spark.sql.SQLContext $ QueryExecution.toRdd (SQLContext.scala: 425) at org.apache. spark.sql.SchemaRDDLike $ class. $ init $ (SchemaRDDLike.scala: 58) at org.apache.spark.sql.SchemaRDD. (SchemaRDD.scala: 108) at org.apache.spark.sql.hive.HiveContext .sql (HiveContext.scala: 94) at com.example.KafkaConsumer $$ anonfun $ main $ 2.apply (KafkaConsumer.scala: 114) at com.example.KafkaConsumer $$ anonfun $ main $ 2.apply (KafkaConsumer.scala : 83) по адресу: org.apache.spark.streaming.dstream.DStream $$ anonfun $ foreachRDD $ 1.apply (DStream.scala: 529) at org.apache.spark.streaming.dstream.DStream $$ anonfun $ foreachRDD $ 1.apply (DStream. scala: 529) at org.apache.spark.streaming.dstream.ForEachDStream $$ anonfun $ 1.apply $ mcV $ sp (ForEachDStream.scala: 42) at org.apache.spark.streaming.dstream.ForEachDStream $$ anonfun $ 1.apply (ForEachDStream.scala: 40) at org.apache.spark.streaming.dstream.ForEachDStream $$ anonfun $ 1.apply (ForEachDStream.scala: 40) at scala.util.Try $ .apply (Try.scala : 161) at org.apache.spark.streaming.scheduler.Job.run (Job.scala: 32) at org.apache.spark.streaming.scheduler.JobScheduler $ JobHandler.run (JobScheduler.scala: 171) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExe cutor.java:1145) at java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:615) at java.lang.Thread.run (Thread.java:745) Вызвано: org.apache. hasoop.hive.ql.metadata.HiveException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdConfOnlyAuthorizerFactory at org.apache.hadoop.hive.ql.metadata.HiveUtils .getAuthorizeProviderManager (HiveUtils.java:376) at org.apache.hadoop.hive.ql.session.SessionState.setupAuth (SessionState.java:381) ... 29 еще Вызвано: java.lang.ClassNotFoundException: org .apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdConfOnlyAuthorizerFactory at java.net.URLClassLoader $ 1.run (URLClassLoader.java: 366) at java.net.URLClassLoader $ 1.run (URLClassLoader.java:355) at java.security.AccessController.doPrivileged (собственный метод) at java.net.URLClassLoader.findClass (URLClassLoader.java:354) на java.lang.ClassLoader.loadClass (ClassLoader.java:425) в java.lang.ClassLoader.loadClass (ClassLoader.java:358) в java.lang.Class.forName0 (нативный метод) в java.lang .Class.forName (Class.java:274) в org.apache.hadoop.hive.ql.metadata.HiveUtils.getAuthorizeProviderManager (HiveUtils.java:366) ... 30 более
Я изменил свой улей-site.xml к этому, но по-прежнему бросает то же исключение
<property>hive.security.authenticator.manager</property> <value>org.apache.hadoop.hive.ql.security.HadoopDefaultAuthenticator</value> <property>hive.security.authorization.enabled</property> <value>false</value> <property>hive.security.authorization.manager</property <value>org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider</value>
(такое же улей-site.xml, как # 1) Когда я добавил улей-Exec 1.0 в моих зависимости , он бросил другое исключение (AbstractMethodError)
(тот же hive-site.xml как # 1) Я попробовал добавить hive-exec 0.13 в мои зависимости. Во время первого запуска (вставка) он все равно выдает ошибку, но во второй и последующей вставке он успешно выполнен.
Я использую Sandbox HDP 2.2 (Hive 0.14.0.2.2.0.0-2041) и Spark 1.2.0.
Зависимости:
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>0.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.10</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka_2.10</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.10</artifactId>
<version>1.2.0</version>
</dependency>
По-прежнему выдает сообщение об ошибке. Исключение из потока "pool-5-thread-1" java.lang.AbstractMethodError: org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdConfOnlyAuthorizerFactory.createHiveAuthorizer (Lorg/apache/hadoop/hive/QL/безопасность/авторизация/плагин/HiveMetastoreClientFactory; Lorg/Apache/Hadoop/ульи/CONF/HiveConf; Lorg/Apache/Hadoop/ульи/QL/безопасность/HiveAuthenticationProvider;) Lorg/Apache/Hadoop/ульи/QL/безопасность/авторизации/плагин/HiveAuthorizer; – sophie
У меня есть следующие настройки: «hive.security.authenticator.manager» установлен как «org.apache.hadoop.hive.ql.security.HadoopDefaultAuthenticator "и " hive.security.authorization.enabled "установлено как" false "и" hive.security.authorization.manager "установлено как" org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider " – sophie
Можете ли вы установить улей 13 вместо улья 14 на вашей машине и попробовать? Также, какая версия искры вы? – DexterMorgan