Потрібно завантажити/оновити метадані в Atlas з Hive за допомогою скрипта import-hive.sh.
Але після запуску скрипта, створення/оновлення метаданих таблиць відбувається дуже повільно.
Завантаження метаданих з однієї таблиці може тривати від кількох хвилин до години.
В кластері: Hadoop, Hive і Atlas.
Для Atlas-a використовуються Cassandra:3.0 та Elasticsearch: 5.5.3 docker імеджі.

Запуск import-hive.sh за допомогою DAG Airflow. Не завантажує всі таблиці, але завершується так ніби успішно закінчив роботу.

3

(4 відповідей, залишених у Інше)

Задайти прямо в скрипт допомогло!

4

(4 відповідей, залишених у Інше)

Насправді там нема пробілів, то мабуть через те, що воно виділен курсивом.
Дерикторія HIVE_HOME може бути трохи інша

Запуск import-hive.sh за допомогою DAG Airflow. Просить "sset HIVE_HOME to the root of Hive installation. + Проблема з конфігураційними файлами
Я у цьому новачок. Мені потрібно запустити скрипт import-hive.sh, щоб оновити таблиці в Atlas за допомогою DAG Airflow. І я використовую в DAG щось таке:

    task = BashOperator (
        task_id = 'task_1',
        bash_command = "" "
    '/home/myhome/airflow/dags/run.sh'
    "" "
    dag=dag)

Де  run.sh - це скрипт для запуску import-hive.sh , і для автозаповнення логіна / пароля приблизно так:
   

 #! / usr / bin / expect -f
    set timeout -1
    spawn /usr/lib/atlas/apache-atlas-hive-hook-2.0.0/hook-bin/import-hive.sh
    expect ": -"
    send "admin \ n"
    expect ": -"
    send "admin \ n"
    expect eof

Якщо я запускаю run.sh вручну, він використовує один файл конфігурації (Using Hive configuration directory [/ usr / lib / hive / conf],) і відпацьовує ок.

Але коли я запускаю DAG backfill, я отримую:

{bash_operator.py:87} INFO - Temporary script location: / tmp / airflowtmpG / task_1EVU
{bash_operator.py:97} INFO - Running command:
'/home/myhome/airflow/dags/run.sh'
{bash_operator.py:106} INFO - Output:
{bash_operator.py:110} INFO - spawn /usr/lib/atlas/apache-atlas-hive-hook-2.0.0/hook-bin/import-hive.sh
{bash_operator.py:110} INFO - Using Hive configuration directory [/ etc / hive / conf]
{bash_operator.py:110} INFO - Please set HIVE_HOME to the root of Hive installation
{bash_operator.py:110} INFO - send: spawn id exp5 not open
{bash_operator.py:110} INFO - while executing
{bash_operator.py:110} INFO - "send" admin \ n ""
{bash_operator.py:110} INFO - (file "/opt/data-processing-dev/data-processing-fact-agg-gen-AIRFLOW_RELEASE-LATEST/run.sh" line 5)
{bash_operator.py:114} INFO - Command exited with return code 1
{models.py:1738} ERROR - Bash command failed

У цьому випадку використовується інший файл конфігурації (Using Hive configuration directory [/ etc / hive / conf]).
Хоча HIVE_HOME = / usr / lib / hive /
Мабуть скрипт import-hive.sh не запускається через різні конфігураційні файли?

І ще: 'Please set HIVE_HOME to the root of Hive installation'
Хоча я встановив HIVE_HOME = / usr / lib / hive / у всіх можливих .bashrc

Підкажіть, як можна це виправити

6

(13 відповідей, залишених у Бази даних)

koala написав:

Дійсно, в цьому H2 лапки у стрічок мають бути одинарними.

Я з одинарними пробував. На подвійні взагалі свариться  :)

7

(13 відповідей, залишених у Бази даних)

fed_lviv написав:

Так покажіть код, JDBC URL, ...

  - Та, для чого, можна ж респонс на селект напряму з бази отримати.
Тобто роблю прямий селект.

8

(13 відповідей, залишених у Бази даних)

koala написав:
... name = "?1"

- так просто шукає значення в стовці, яке відповідає "?1"

fed_lviv написав:

... -> щось типу JPQL

- так JPQL

Для int, все працює ок, а для string, чомусь шукає не значення, а назву стовбця
Мабуть така особливість H2 database   *PARDON*

9

(13 відповідей, залишених у Бази даних)

Це коли треба вибрати значення по певному параметру, не захаркоджуючи саме значення (напр. name='Vasia'), а внести потрібне в процесі виконання селекту. Можна без  '1' просто 'name=?'.

10

(13 відповідей, залишених у Бази даних)

БД - H2.
Є таблиця User:

CREATE TABLE user
(
    id   INT AUTO_INCREMENT,
    name VARCHAR(250) NOT NULL,
    age  INT          NOT NULL,
    PRIMARY KEY (id)
);

Коли роблю такий запит: SELECT * FROM user WHERE name = ?1
то отримую такий error: [42S22][42122] Column "LISA" not found; SQL statement: SELECT * FROM user WHERE name = Lisa [42122-200]
Підкажіть в чому проблема.

11

(1 відповідей, залишених у Java)

Java 8: Stream API
Підкажіть, чи є якийсь сайт (чи інший ресурс), де можна потренуватись в написанні stream-ів, щоб можна було, в разі чого, глянути правильний розв'язок

12

(4 відповідей, залишених у Windows)

Не виходить. За допомогою ResHacker видалив:     MENUITEM "&Форматувати...",  8.
Після заміни на виправлений файл shell32.dll.mui  в System32\uk-UA   все одно є пункт  "&Форматувати...", хоча при повторному копіюванні файлу в інше місце цього пункту вже нема. загадка *SCRATCH*

13

(4 відповідей, залишених у Windows)

Підкажіть, як видалити пункт в контекстному меню - "форматувати", або якось деактивувати цю функцію, чи заборонити доступ.(Windows 10).