как настроить соединение SQL/Hive с кластером cloudera для чтения данных, хранящихся в кластере

Я хотел получить данные, хранящиеся в кластере Hadoop Cloudera, через Hive, Spark или SQL. У меня есть SQL-запрос, который должен получать данные из кластера. Но перед этим я хочу понять, как настроить соединение /Курсор с кластером, чтобы он знал, откуда читать или писать?

sc = spark.sparkContext или аналогичный HIVECONTEXT или SPARKCONTEXT будет недостаточно.

Нам может понадобиться указать URL для узла и всего остального. Итак, как это сделать?

Подойдет любой небольшой пример.


person Tilo    schedule 22.11.2018    source источник
comment
Если вы хотите запросить данные через куст, вам нужно будет определить схему, поэтому сделайте таблицу куста сначала загрузите данные в эту таблицу, а затем выполните запросы, такие как SQL, и вы в основном определяете исходный и целевой адрес при создании таблицы в кусте в чтобы понять, откуда писать и читать.   -  person Vin    schedule 22.11.2018
comment
точно согласен, мне просто нужен пример, чтобы вы в основном определили исходный и конечный адрес при создании таблицы в улье, чтобы понять, откуда писать и читать   -  person Tilo    schedule 23.11.2018
comment
Пожалуйста, найдите приведенный ниже пример и дайте мне знать, если вам все еще нужна помощь.   -  person Vin    schedule 23.11.2018


Ответы (1)


Есть два способа создать таблицу в улье:

1- Создание схемы внешней таблицы:

CREATE EXTERNAL TABLE IF NOT EXISTS names_text(
          student_ID INT, FirstName STRING, LastName STRING,    
          year STRING, Major STRING)
          COMMENT 'Student Names'
          ROW FORMAT DELIMITED
          FIELDS TERMINATED BY ','
          STORED AS TEXTFILE
          LOCATION '/user/andrena';

2- а) Создайте схему для управляемой таблицы:

CREATE TABLE IF NOT EXISTS Names(
  student_ID INT, FirstName STRING, LastName STRING,    
  year STRING, Major STRING)
  COMMENT 'Student Names'
  STORED AS ORC;

б) Переместите данные внешней таблицы в управляемую таблицу:

INSERT OVERWRITE TABLE Names SELECT * FROM names_text;

И, наконец, убедитесь, что хранилище Hive хранит имена учащихся во внешней и внутренней таблицах соответственно:

SELECT * FROM names_text;

SELECT * from Names;
person Vin    schedule 23.11.2018