Гость
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Выгрузка из Hadoop в Oracle / 9 сообщений из 9, страница 1 из 1
14.10.2015, 21:22
    #39076969
sergus166
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Hadoop в Oracle
Добрый вечер, уважаемые!
Не являюсь специалистом в хадупе, до этого работал только в Oracle, но вот появилась такая задачка: Есть база данных на Hadoop, есть оракловая БД. Необходимо с некоторой периодичностью выполнять некий запрос с группировкой к таблице в хадупе и результат вставлять в оракловую БД. Предполагается, что данные в хадупе ежедневно обновляются (догружаются новые логи).

Предполагаю сделать job в Oozie, который будет дергать скрипт, который будет селектить таблицу и результат инсертить в оракловую таблицу.
Собственно, сам запрос в Hive я написал, но как законнектиться к оракловой БД из хадупа (по аналогии с dblink в Oracle)?
...
Рейтинг: 0 / 0
15.10.2015, 01:24
    #39077068
Alexander Ryndin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Hadoop в Oracle
sergus166Добрый вечер, уважаемые!
Не являюсь специалистом в хадупе, до этого работал только в Oracle, но вот появилась такая задачка: Есть база данных на Hadoop, есть оракловая БД. Необходимо с некоторой периодичностью выполнять некий запрос с группировкой к таблице в хадупе и результат вставлять в оракловую БД. Предполагается, что данные в хадупе ежедневно обновляются (догружаются новые логи).

Предполагаю сделать job в Oozie, который будет дергать скрипт, который будет селектить таблицу и результат инсертить в оракловую таблицу.
Собственно, сам запрос в Hive я написал, но как законнектиться к оракловой БД из хадупа (по аналогии с dblink в Oracle)?Есть два варианта:
1) sqoop - бесплатно, но медленно
2) Oracle Connectоrs. Например, можно глянуть на Oracle Loader for Hadoop или Oracle SQL Connector for HDFS. Стоят денег, но работают сильно быстрее.
...
Рейтинг: 0 / 0
15.10.2015, 09:46
    #39077240
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Hadoop в Oracle
sergus166Предполагаю сделать job в Oozie, который будет дергать скрипт, который будет селектить таблицу и результат инсертить в оракловую таблицу.
Собственно, сам запрос в Hive я написал, но как законнектиться к оракловой БД из хадупа (по аналогии с dblink в Oracle)?

Я писал обычную m/r job'у в хадупе, в которой открывался обычный коннект через банальный jdbc.
Проблемы две.
1. Хадуп считает, что любую мапу можно перезапустить после падения. Что не всегда правда для переливки данных. Т.е. надо использовать merge вместо insert.
2. Хадуп рад запустить столько мапперов, сколько у него ядер в кластере. Это может огорчить :D оракловый сервер и его админов. Тут надо что-то делать.
Я делал так- взял общий объём данных (я переливал из hdfs) делил его на допустимое количество потоков и задвал ЭТО как mapred.min.split.size и mapred.max.split.size. Результат не 100%, но то, что вместо оговоренных 8 потоков заливка иногда ла в 9 - никого не напрягало.
При заливке из hbase вроде как можно просто указать число мапперов (но я hbase старался не трогать- она и так постоянно дохнет).
...
Рейтинг: 0 / 0
19.10.2015, 20:41
    #39080633
sergus166
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Hadoop в Oracle
Alexey Tominsergus166Предполагаю сделать job в Oozie, который будет дергать скрипт, который будет селектить таблицу и результат инсертить в оракловую таблицу.
Собственно, сам запрос в Hive я написал, но как законнектиться к оракловой БД из хадупа (по аналогии с dblink в Oracle)?

Я писал обычную m/r job'у в хадупе, в которой открывался обычный коннект через банальный jdbc.
Проблемы две.
1. Хадуп считает, что любую мапу можно перезапустить после падения. Что не всегда правда для переливки данных. Т.е. надо использовать merge вместо insert.
2. Хадуп рад запустить столько мапперов, сколько у него ядер в кластере. Это может огорчить :D оракловый сервер и его админов. Тут надо что-то делать.
Я делал так- взял общий объём данных (я переливал из hdfs) делил его на допустимое количество потоков и задвал ЭТО как mapred.min.split.size и mapred.max.split.size. Результат не 100%, но то, что вместо оговоренных 8 потоков заливка иногда ла в 9 - никого не напрягало.
При заливке из hbase вроде как можно просто указать число мапперов (но я hbase старался не трогать- она и так постоянно дохнет).

Alexey Tomin, Вы имеете ввиду job в oozie?
...
Рейтинг: 0 / 0
19.11.2015, 19:35
    #39108219
sergus166
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Hadoop в Oracle
Доброго вечера всем!

Джоб сделал, падает в процессе выполнения, пытаюсь отладить.

Кусок лога ниже:

Sqoop command arguments :
export
--driver
oracle.jdbc.driver.OracleDriver
--connect
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XX.YY.AA.BB)(PORT=1521)))(CONNECT_DATA=(SERVER=dedicated)(SERVICE_NAME=ZZZZZ)))
--username
USER
--password
PASSWORD
--table
test_table
--export-dir
/user/hive/warehouse/test_table/
=================================================================

>>> Invoking Sqoop command line now >>>

4397 [main] WARN org.apache.sqoop.tool.SqoopTool - $SQOOP_CONF_DIR has not been set in the environment. Cannot check for additional configuration.
4445 [main] INFO org.apache.sqoop.Sqoop - Running Sqoop version: 1.4.5-cdh5.3.3
4469 [main] WARN org.apache.sqoop.tool.BaseSqoopTool - Setting your password on the command-line is insecure. Consider using -P instead.
4491 [main] WARN org.apache.sqoop.ConnFactory - $SQOOP_CONF_DIR has not been set in the environment. Cannot check for additional configuration.
4533 [main] WARN org.apache.sqoop.ConnFactory - Parameter --driver is set to an explicit driver however appropriate connection manager is not being set (via --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. Please specify explicitly which connection manager should be used next time.
4550 [main] INFO org.apache.sqoop.manager.SqlManager - Using default fetchSize of 1000
4550 [main] INFO org.apache.sqoop.tool.CodeGenTool - Beginning code generation
5646 [main] INFO org.apache.sqoop.manager.SqlManager - Executing SQL statement: SELECT t.* FROM test_table AS t WHERE 1=0
5691 [main] ERROR org.apache.sqoop.manager.SqlManager - Error executing statement: java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended


Т.е. до оракловой БД процесс достучался, затем он зачем-то запускает сгенерированный селект SELECT t.* FROM test_table AS t WHERE 1=0 и падает на ORA-00933.

При выполнении селекта SELECT t.* FROM test_table AS t WHERE 1=0 непосредственно в оракловой БД та же ошибка.
Что с этим можно сделать? Выручайте, братцы....
...
Рейтинг: 0 / 0
23.11.2015, 22:08
    #39111518
Apex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Hadoop в Oracle
sergus166При выполнении селекта SELECT t.* FROM test_table AS t WHERE 1=0 непосредственно в оракловой БД та же ошибка.
Что с этим можно сделать? Выручайте, братцы....
А если просто
Код: plsql
1.
SELECT * FROM test_table WHERE 1=0
...
Рейтинг: 0 / 0
24.11.2015, 09:42
    #39111700
sergus166
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Hadoop в Oracle
Apexsergus166При выполнении селекта SELECT t.* FROM test_table AS t WHERE 1=0 непосредственно в оракловой БД та же ошибка.
Что с этим можно сделать? Выручайте, братцы....
А если просто
Код: plsql
1.
SELECT * FROM test_table WHERE 1=0



Такой запрос в Oracle нормально проходит. Проблема в том, что Hadoop при обращении генерит другой запрос (SELECT t.* FROM test_table AS t WHERE 1=0).

Порылся в инете. тут говорят, что драйвер нужно поменять.
...
Рейтинг: 0 / 0
24.11.2015, 09:42
    #39111701
sergus166
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Hadoop в Oracle
...
Рейтинг: 0 / 0
24.11.2015, 12:22
    #39111958
Ivan Durak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Hadoop в Oracle
а почему нельзя через хадуп экстернал таблес - которые суть csv, которые bulk load -> oracle
...
Рейтинг: 0 / 0
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Выгрузка из Hadoop в Oracle / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]