2017-02-18 2 views
0

Я написал код Java для запуска SparkSQL на Hive. Я пытаюсь передать путь моего метафора улья к программе, но он вообще не работает.
Смотрите программу:Как я могу указать метастор улья в программе Apache Spark с помощью java?

String warehouseLocation = "file:${system:user.dir}/spark-warehouse"; 

SparkSession spark = SparkSession 
      .builder() 
      .appName("Java Spark Hive Example") 
      .master("local[*]") 
      .config("spark.sql.warehouse.dir", warehouseLocation) 
      .enableHiveSupport() 
      .getOrCreate(); 
try 
{ 
     spark.sql("select count(*) from health1 ").show(); 
} 
catch (Exception AnalysisException) 
{ 
    System.out.print("\nTable is not found\n"); 
} 

Мой metastore_db находится на месте: /home/aims/hadoop/hadoop/hive/var/lib/metastore_db Я хочу, что любая операция, что я пытаюсь сделать, используя SparkSQL должны быть отражены на Hadoop с энцефалопатией. Для этого мне нужно подключить metastore_db к моей программе Maven.
Как я могу это сделать? Есть ли способ, которым я могу дать свой путь hive-site.xml в программе, используя config?

ответ

2

Вы можете запустить сервер метаданных Hive, как показано ниже.

hive --service metastore & 

Теперь вы можете подключиться к улей, используя искру, установив конфиг hive.metastore.uris

SparkSession spark = SparkSession 
    .builder() 
    .appName("Java Spark Hive Example") 
    .master("local[*]") 
    .config("hive.metastore.uris", "thrift://localhost:9083") 
    .enableHiveSupport() 
    .getOrCreate(); 

spark.sql("select count(*) from health1").show(); 
+0

Могу ли я узнать, откуда вы пришли к заключению '" бережливость: // localhost: 9083 "'? Я этого не понимаю. –

+0

Когда вы запустите сервер метастор, вы получите подробную информацию в консоли. Что-то вроде «INFO metastore.HiveMetaStore: начался новый метасервер на порту [9083]» – abaghel

+0

Спасибо .. ты решил для меня большую проблему ... :) –

0

Поместите свой файл core-site.xml и hive-site.xml в папку ресурсов, и Spark автоматически будет искать эти файлы и инициализировать метастор для Hive. Также установите уровень ведения журнала в INFO, чтобы просмотреть информацию о метасторе улья.

+0

, как я могу сделать это с помощью Eclipse? Я действительно использую IDE. пожалуйста, сообщите n = мне знать –

Смежные вопросы