Искра подключается к локальному улью, а не к удаленному - PullRequest
0 голосов
/ 10 мая 2018

Я использую Spring Framework для создания API для запроса некоторых из моих таблиц в Hadoop.Я использую команду:

  println("-----------------------------------------------------------------before )
val spark = SparkSession
  .builder()
  .appName("API")
  .master("local[*])
  .enableHiveSupport()
  .getOrCreate()
  println("--------------------------------------------------------------------Session was created")

-Я использую spark 2.11.6 и scala v2.2.0.Когда я использую оболочку spark, я подключаюсь к удаленному кластеру.

В журнале я не получаю никаких ошибок, но вижу, что создан локальный репозиторий улья:

     [           main] o.a.h.hive.metastore.MetaStoreDirectSql  : Using direct SQL, underlying DB is DERBY
    main] o.a.hadoop.hive.ql.session.SessionState  : Created local directory: C:/Users/..../.../Local/Temp/..._resources
    2018-05-10 16:32:32.556  INFO 16148 --- [           main] o.a.hadoop.hive.ql.session.SessionState  : Created HDFS directory: /tmp/hive/myuser/....

I 'Я пытаюсь подключиться к удаленному кластеру Cloudera.Я скопировал xml-файлы (hive-site, hdfs-site, core-stire, yarn-site) в каталог conf моего проекта, в каталог $ SPARK_CONF.Я добавил путь SPARK_HOME в переменную PATH и назначил переменную HADDOP_HOME, чтобы указать местоположение winutils.

Что еще я могу сделать?

Журнал довольно длинный, несколько сообщений, которыеЯ вижу и могу подразумевать для вас что-нибудь:

-----------------------------------------------------------------ENV=local[*]
   2018-05-10 16:32:16.930  WARN 16148 --- [           main] org.apache.hadoop.util.NativeCodeLoader  : Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
 [           main] org.apache.spark.util.Utils              : Successfully started service 'SparkUI' on port 4040.
 main] o.s.jetty.server.handler.ContextHandler  : Started o.s.j.s.ServletContextHandler@13ee97af{/stages/pool/json,null,AVAILABLE,@Spark}
[           main] org.apache.spark.ui.SparkUI              : Bound SparkUI to 0.0.0.0, and started at http://192.168.56.1:4040
[           main] o.apache.spark.sql.internal.SharedState  : URL.setURLStreamHandlerFactory failed to set FsUrlStreamHandlerFactory
[           main] DataNucleus.Persistence                  : Property hive.metastore.integral.jdo.pushdown unknown - will be ignored
[           main] DataNucleus.Datastore                    : The class "org.apache.hadoop.hive.metastore.model.MFieldSchema" is tagged as "embedded-only" so does not have its own datastore table.
[           main] DataNucleus.Query                        : Reading in results for query "org.datanucleus.store.rdbms.query.SQLQuery@0" since the connection used is closing
[           main] o.a.h.hive.metastore.MetaStoreDirectSql  : Using direct SQL, underlying DB is DERBY
[           main] o.a.hadoop.hive.metastore.ObjectStore    : Failed to 
      get database global_temp, returning NoSuchObjectException
[           main] o.a.hadoop.hive.ql.session.SessionState  : Created local directory: C:/Users/myuser/AppData/Local/Temp/1fa7a82b-fe17-4795-8973-212010634cd1_resources
[           main] o.a.hadoop.hive.ql.session.SessionState  : Created HDFS directory: /tmp/hive/myuser/1fa7a82b-fe17-4795-8973-212010634cd1
[           main] o.a.hadoop.hive.ql.session.SessionState  : Created local directory: C:/Users/myuser/AppData/Local/Temp/myuser/fileasdasdsa
 [           main] o.a.hadoop.hive.ql.session.SessionState  : Created HDFS directory: /tmp/hive/myuser/asdsadsa/_tmp_space.db
[           main] o.a.s.sql.hive.client.HiveClientImpl     : Warehouse location for Hive client (version 1.2.1) is file:/C:/Users/myuser/SpringScalaAPI/spark-warehouse
 [           main] o.a.s.s.e.s.s.StateStoreCoordinatorRef   : Registered StateStoreCoordinator endpoint
--------------------------------------------------------------------Session was created

Если честно, я не первый раз обращаюсь с подобным типом ошибки.В прошлый раз я использовал игровые рамки.Кто-нибудь может указать, какие именно шаги необходимо сделать в этом случае?Какие переменные действительно должны быть настроены и какие переменные не важны?

1 Ответ

0 голосов
/ 11 мая 2018

С Spark 2 вы можете попробовать что-то вроде этого,

val ss = SparkSession
.builder()
.appName(" Hive example")
.config("hive.metastore.uris", "thrift://localhost:9083")
.enableHiveSupport()
.getOrCreate()

Обратите внимание на свойство hive.metastore.uris, измените localhost так, чтобы он указывал на вашу изолированную программную среду или кластер.

one ss инициализирован, вы можете читать таблицы, как показано ниже,

val df = ss.read.table("db_name.table_name")

Надеюсь, это поможет. Приветствия.

...