Невозможно сохранить данные в таблице улья из Spark с помощью Hive Warehouse Connector в HDP 3.0.1 из eclipse
Пробовали следующие конфигурации:
pom.xml:
<dependency>
<groupId>com.hortonworks.hive</groupId>
<artifactId>hive-warehouse-connector_2.11</artifactId>
<version>1.0.0.7.1.1.0-565</version>
</dependency>
</dependencies>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>hortonworks.extrepo</id>
<name>Hortonworks HDP</name>
<url>http://repo.hortonworks.com/content/repositories/releases</url>
</repository>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>Cloudera.extrepo</id>
<name>Cloudera HDP</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
</repositories>
Сделанные изменения кода:
import com.hortonworks.hwc.HiveWarehouseSession
import com.hortonworks.hwc.HiveWarehouseSession._
import com.hortonworks.spark.sql.hive.llap.HiveWarehouseConnector
val hive = com.hortonworks.spark.sql.hive.llap.HiveWarehouseBuilder.session(spark).build()
hive.showDatabases().show()
hive.setDatabase("default")
hive.createTable("newTable").ifNotExists().column("abc", "string").create()
datasetFile.write.format("com.hortonworks.spark.sql.hive.llap.HiveWarehouseConnector")
.option("database","default").option("table", "newTable")
.save()
Попадание ниже ошибки:
Вызвано: org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAccessControlException: в разрешении отказано: пользователь [анонимный] не имеет права [USE] для [по умолчанию] в org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizer.checkPrivileges(RangerHiveAuthorizer.java:483)
Пробовал исправления ниже:
- Сброс политики Apache ranger:
Установите владельца анонимного пользователя в разделе всех привилегий политики всех баз данных.
Задайте следующие свойства перед созданием сеанса искры:
conf.set ("spark.hadoop.metastore.catalog.default", "hive") conf.set ("spark.datasource.hive.warehouse.load.staging.dir", "/ tmp")
Я могу написать таблицу улья с помощью искровой оболочки, используя команду ниже для запуска искровой оболочки и после добавления разрешения в рейнджере для raj_ops:
spark-shell --jars /usr/hdp/current/hive_warehouse_connector/hive-warehouse-connector-assembly-1.0.0.3.0.1.0-187.jar --conf spark.hadoop.metastore.catalog.default=hive -conf spark.sql.hive.hiveserver2.jdbc.url="jdbc:hive2://sandbox-hdp.hortonworks.com:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;user=raj_ops"
Но я не могу записывать данные из искры в таблицу улей через eclipse.
Пожалуйста, помогите мне в этом.