
Александр
15.09.2018
17:24:09
На конкретные даты запускают обработку

Евгений
15.09.2018
17:24:16
а что, если я скажу, что можно включить эти папки как колонки в таблицу?)
а можно даже заставить спарк и файлы читать с учётом того, что это будут колонки

Александр
15.09.2018
17:25:14
Я тогда не прочь почитать об этом

Google

Евгений
15.09.2018
17:25:17
достаточно просто назвать папки вроде yyyy=2018, внутри mm=9, внутри dd=15

Александр
15.09.2018
17:25:30
Примерно так и есть
А внутри паркетные файлы

Евгений
15.09.2018
17:25:53
и если на вход спарку подать самую внешнюю папку, то он возьмёт эти названия папок как колонки
то есть будут 3 дополнительные колонки с названием yyyy, mm и dd
и значения у каждого ряда будут такие, откуда их достали
нужно считать одну/несколько папок из тысячи - можно вписать это в spark.read.parquet("dir").where("yyyy=2018")
это вызовет PartitionFilter

Александр
15.09.2018
17:28:50
Thx, посмотрю и погуглю

Евгений
15.09.2018
17:29:05
а лучше всё в хайв как таблички сохранять, включая всякое фуфло, которое приходит вот таким образом извне
а то потом хрен разберёшь, куда делось 300 терабайт
а там кто-то папочку в хдфс завёл, куда складывает логи из других систем, и нигде это не отражается, в общем-то)

Natali
15.09.2018
17:32:30

Google

Grigory
15.09.2018
20:36:22

Pavel
15.09.2018
20:57:53
https://youtu.be/YuiXHAiRmf8
Я перезалил видео, а запиненное сообщение статичное, оно не подхватывает изменения исходника. Прошу прощения
Лучше подписаться на плейлист Moscow spark на моем канале

Александр
15.09.2018
22:06:44
Идеально, спасибо

Natali
15.09.2018
22:08:07
В ютубе

Александр
15.09.2018
22:34:53
хм, а на канале была конфа про митап ? я бы сгонял - хорошие видео

Pavel
15.09.2018
23:21:19

Александр
15.09.2018
23:24:34
*инфа, чтения канала достаточное условие чтобы знать о предстоящих митапах или есть смысл еще что-то просматривать ?

Pavel
15.09.2018
23:35:59
Но @pomadchin довольно оперативно репостит сюда

Александр
15.09.2018
23:44:55
спасибо !

Polina
17.09.2018
14:06:29
Всем привет! Нужна помощь зала)
Классическая ошибка:
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.PigMain], main() threw exception, org/apache/pig/Main
java.lang.NoClassDefFoundError: org/apache/pig/Main
Происходит в hue при попытке запустить простейший пиго-скрипт
Начало воспроизводится после обновы хадупца на тесте - sharedlib вроде выгружала
Кто-нибудь помнит, куда смотреть, что копать?)

Igor
17.09.2018
14:17:53
Привет! SparkSubmitOperator в airflow запускает сабмит под собой (airflow), хотя должен под другим юзером, заданным параметром run_as_user. Соответственно в yarn отбивается, потому как там нет такого юзера. Кто сталкивался, как победить?

Alexander
17.09.2018
14:20:23

Polina
17.09.2018
14:20:53

Igor
17.09.2018
14:21:40

Polina
17.09.2018
14:26:35

Google

sherzod
17.09.2018
17:52:17

Рамиль
17.09.2018
17:52:51

Alexander
17.09.2018
17:55:39

Polina
17.09.2018
18:37:20
В oozie-default.xml обе настройки исторически в true
Но узя всё равно не видит пиг)
Надо вот эту штуку проставить в workflow
<property>
<name>oozie.action.sharelib.for.pig</name>
<value>pig,hive</value>
</property>
и ещё в job.properties: oozie.use.system.libpath=true
+
Хотя не, по-моему, у меня какая-то дичь в sharelib.for.pig прописана
Сейчас проверю, спасибо

sherzod
17.09.2018
18:39:54
можно любой лог запуска открыть, там в начале classpath пишется

Polina
17.09.2018
19:05:18
В classpath написано что есть oozie-sharedlib-pig джарка
а джоба падает
Может быть ещё какая-то джарка нужна?
Из странного - перед тем как он ругается что нет класса pig/Main - есть строчка:
Run pig script using Main.main() for Pig version before 0.8
У меня пиг вообще 0.16.0

sherzod
17.09.2018
19:13:10
видимо смешались jar-ники разных версий.
а что показывает
oozie admin -shareliblist

Polina
17.09.2018
19:26:16
Help показывает тоже самое)
java.lang.IllegalArgumentException: Oozie URL is not available neither in command option or in the environment
at org.apache.oozie.cli.OozieCLI.getOozieUrl(OozieCLI.java:702)
at org.apache.oozie.cli.OozieCLI.createXOozieClient(OozieCLI.java:907)
at org.apache.oozie.cli.OozieCLI.adminCommand(OozieCLI.java:1752)
at org.apache.oozie.cli.OozieCLI.processCommand(OozieCLI.java:670)
at org.apache.oozie.cli.OozieCLI.run(OozieCLI.java:617)
at org.apache.oozie.cli.OozieCLI.main(OozieCLI.java:218)
Oozie URL is not available neither in command option or in the environment
OOZIE_BASE_URL задан
oozie jobs -oozie с этим урлом тоже работает
Как оно раньше работало вообще на тесте :D
Я, короче, пока забью, утром поковыряю)
Всем спасибо!

Andrey
18.09.2018
07:53:29

Oleg
18.09.2018
14:02:33
Привет!
Есть необходимость грузить инкрементальные данные из пары таблиц одной базы (PG) в другую (тут любой подходящий вариант) в близкой к реальному времени частотой.
Подсказали вариант с кафкой https://github.com/confluentinc/bottledwater-pg
Мб есть какие-то альтернативы?

Google

agathis
18.09.2018
14:05:51

Oleg
18.09.2018
14:07:43

agathis
18.09.2018
14:17:52

Oleg
18.09.2018
14:19:41

Sergey
18.09.2018
14:21:37

Oleg
18.09.2018
14:23:22
а зачем вам джойны при репликации?
ну мне не репликация нужна
у меня есть данные в одной табличке и нужно грузить их в другую базу, но делая небольшую предобработку. Частота обновления "чем чаще - тем лучше", ну хотя бы раз в несколько минут. Про репликацию я пока ничего не говорил, это мне предложили)

agathis
18.09.2018
14:25:32
Или это репликация и обработка делается на целевой бд, или это не репликация, и данные перекладываются sqlями раз в n минут хоть тем же sqoop
Джойны в потоке наверное не надо делать :)

Sergey
18.09.2018
14:26:12
коллеги, кто работает с Cloudera, подскажите:
если у меня для роли ZeppelinServer сервиса Zeppelin настроено auto-restart process, то это ведь делается силами supervisord и при падении процесса ZeppelinServer я никак об этом не узнаю? supervisord молча поднимет процесс.
я могу не узнать о падении даже по истории состояний?

Oleg
18.09.2018
14:40:56
туда триггером записываются данные об изменениях

Sergey
18.09.2018
14:43:47
приведите пример SQL-запроса, которым вы вычленяете инкремент из какой-либо таблицы с помощью таблицы аудита

Oleg
18.09.2018
14:56:41
SELECT id, stime
FROM pr_stat.trans as p
INNER JOIN
(SELECT DISTINCT unix_timestamp(cast(from_unixtime(partition_dttm) as date)) as startday,
unix_timestamp(cast(from_unixtime(partition_dttm) as date))+ 86399 as endday
FROM pr_stat.pr_audit
WHERE table_nm = 'pr_stat.trans'
AND change_dttm BETWEEN '2018-09-17' AND '2018-09-18'
) as t
ON p.stime BETWEEN t.startday AND t.endday;

Sergey
18.09.2018
15:04:06
т.е. во всех таблицах есть поле stime? оно проиндексировано? если вы будете дергать каждые 5 минут такой запрос по жирной таблице pr_stat.trans - DBA вас не заругают?

KrivdaAllStars
18.09.2018
16:24:50
О, там сча 2.4 RC1 будет

Grigory
18.09.2018
16:25:18
жду попробовать

Oleg
18.09.2018
16:25:41

Sergey
18.09.2018
16:38:55

Google

KrivdaAllStars
18.09.2018
17:33:32
когда?
20 сентября войты перестанут принимать
я думаю после 20

Oleg
18.09.2018
19:33:28
а как у вас фиксируется в таблице аудита delete?
у нас (пока) забирается весь день, в котором были изменения и перезаписывается
сделано так из-за отсутствия нормальных update-delete в хадупе
Но для задачи постоянной выгрузки планируется использование другой базы, возможно, тоже PG.
ну и в таблице аудита, соответственно, пишется, что был delete

Aleksey
19.09.2018
05:53:27
Всем привет. Подскажите пожалуйста. Стоит задача наиболее быстро прогрузить данные из N таблиц из Oracle в cassandra. Пара таблиц "большие" 30-50Гб. Я пока не очень силен в этом, но планирую написать небольшое приложение на scala - коннект цели и источнику, и в цикле (делим исходные данные по ключу/фильтрам на куски из больших таблиц) - и частями читаем, вставляем в cassnadra. ?

Renarde
19.09.2018
05:56:49
По большим таблицам - цикл по партициям.
https://dzone.com/articles/read-data-from-oracle-database-with-apache-spark
Вот про чтение из оракла
Вот про запись в кассандру
https://stackoverflow.com/questions/49151722/how-to-write-file-to-cassandra-from-spark