
ptchol
15.12.2017
07:48:48
нет. имеется ввиду они не умеют как всякие BI взять и сджойнить тебе 2 табличных из разных датасорсов

Nick
15.12.2017
07:50:06
Вот и зачем тогда такой продукт)))
Прост не вижу смысла

Daniel
15.12.2017
07:50:32

Google

Nick
15.12.2017
07:53:15
Есть такое да
Начал читал теоркат и чёт засиделся

Andrey
15.12.2017
08:44:26
джойнит все что пожелаешь
джойнит несджойниваемое

Nick
15.12.2017
10:36:34
а тут никто R интерпритатор в зеплин не ставил?

Jury
15.12.2017
10:56:51
интересно, вообще R возле биг-даты используют у нас
есть же всякие seplyr и т.п. для работы со спарк

Daniel
15.12.2017
18:51:15
https://t.me/AwesomeKafka_ru

Andrey
18.12.2017
11:09:49
кто нибудь сталкивался с ошибкой user hive@fqdn is not allowed to impersonate userY при запуске спарк-шелла на клаудере с развернутой сентри?
вроде все настройки сделал, а он все равно ругается >.<

Andrew
18.12.2017
11:10:56

Google

Andrey
18.12.2017
11:11:22
что нужно сделать кроме hadoop.proxyusers -> * и hive.server2.enable.doAs -> false ?

Andrew
18.12.2017
11:12:08
hadoop.proxyuser.hive.groups

Andrey
18.12.2017
11:12:15
тоже есть
* в обоих свойствах

Andrew
18.12.2017
11:12:30
Тут прописать юзеров и sentry тож

Andrey
18.12.2017
11:12:41
вместо * ?

Andrew
18.12.2017
11:12:57
У меня там конкретный список


Saydiolim Ganiev
18.12.2017
11:13:13
Dobriy den. Est Java program kotoriy migriruyet datu s rdbms na hbase/phoenix ispolzuya jdbc i mybatis ORM.
Kogda zaouskayu programu inogda udaeetsya perevesti 7 mln strok, a inogda 10 strok. No vsegda programma zavisaet.
2017-12-18 20:06:35 DEBUG ClientCnxn:717 - Got ping response for sessionid: 0x360694b1fff000e after 6ms
2017-12-18 20:06:55 DEBUG ClientCnxn:717 - Got ping response for sessionid: 0x360694b1fff000e after 5ms
2017-12-18 20:07:15 DEBUG ClientCnxn:717 - Got ping response for sessionid: 0x360694b1fff000e after 5ms
2017-12-18 20:07:35 DEBUG ClientCnxn:717 - Got ping response for sessionid: 0x360694b1fff000e after 6ms
2017-12-18 20:07:55 DEBUG ClientCnxn:717 - Got ping response for sessionid: 0x360694b1fff000e after 4ms
2017-12-18 20:08:15 DEBUG ClientCnxn:717 - Got ping response for sessionid: 0x360694b1fff000e after 9ms
2017-12-18 20:08:35 DEBUG ClientCnxn:717 - Got ping response for sessionid: 0x360694b1fff000e after 4ms
2017-12-18 20:08:55 DEBUG ClientCnxn:717 - Got ping response for sessionid: 0x360694b1fff000e after 6ms
2017-12-18 20:09:15 DEBUG ClientCnxn:717 - Got ping response for sessionid: 0x360694b1fff000e after 5ms
2017-12-18 20:09:35 DEBUG ClientCnxn:717 - Got ping response for sessionid: 0x360694b1fff000e after 4ms
2017-12-18 20:09:55 DEBUG ClientCnxn:717 - Got ping response for sessionid: 0x360694b1fff000e after 5ms
pomogite ?


Daniel
18.12.2017
11:26:29


Saydiolim Ganiev
18.12.2017
11:28:09
ya ispolzuyu Clouderu
posmotrel vo vsex log faylax
ws-hadoop-master-3 ERROR December 18, 2017 7:58 PM log
/jmx
javax.management.RuntimeErrorException: getMBeanInfo threw Error
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBeanInfo(DefaultMBeanServerInterceptor.java:1387)
at com.sun.jmx.mbeanserver.JmxMBeanServer.getMBeanInfo(JmxMBeanServer.java:920)
at org.apache.hadoop.hbase.util.JSONBean.write(JSONBean.java:125)
at org.apache.hadoop.hbase.util.JSONBean.access$000(JSONBean.java:53)
at org.apache.hadoop.hbase.util.JSONBean$1.write(JSONBean.java:96)
at org.apache.hadoop.hbase.http.jmx.JMXJsonServlet.doGet(JMXJsonServlet.java:202)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
at org.apache.hadoop.hbase.http.lib.StaticUserWebFilter$StaticUserFilter.doFilter(StaticUserWebFilter.java:113)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.apache.hadoop.hbase.http.ClickjackingPreventionFilter.doFilter(ClickjackingPreventionFilter.java:48)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.apache.hadoop.hbase.http.HttpServer$QuotingInputFilter.doFilter(HttpServer.java:1354)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.apache.hadoop.hbase.http.NoCacheFilter.doFilter(NoCacheFilter.java:49)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.apache.hadoop.hbase.http.NoCacheFilter.doFilter(NoCacheFilter.java:49)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:767)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: java.lang.AbstractMethodError: org.apache.hadoop.hbase.ipc.RpcScheduler.getWriteQueueLength()I
at org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapperImpl.getWriteQueueLength(MetricsHBaseServerWrapperImpl.java:87)
at org.apache.hadoop.hbase.ipc.MetricsHBaseServerSourceImpl.getMetrics(MetricsHBaseServerSourceImpl.java:228)
at org.apache.hadoop.metrics2.impl.MetricsSourceAdapter.getMetrics(MetricsSourceAdapter.java:199)
at org.apache.hadoop.metrics2.impl.MetricsSourceAdapter.updateJmxCache(MetricsSourceAdapter.java:182)
at org.apache.hadoop.metrics2.impl.MetricsSourceAdapter.getMBeanInfo(MetricsSourceAdapter.java:155)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBeanInfo(DefaultMBeanServerInterceptor.java:1378)
... 34 more
tol eta oshibka postoyanno vixodit na hbase


Daniel
18.12.2017
11:34:28
> Est Java program kotoriy migriruyet datu s rdbms na hbase/phoenix ispolzuya jdbc i mybatis ORM.
Повесить логирование, обрабатывать исключения. Если она зависает при ошибках в базе, то могут эксепшены сглатываться. Какие-нить локи тоже нельзя исключить.
Ошибка в hbase может быть вызвана либо несоответствием версий, либо что вы сами в своей софтине накосяпорили и дергаете абстрактный класс.


Saydiolim Ganiev
18.12.2017
11:42:14
ExecutorService executorService = Executors.newFixedThreadPool(100);
List<ColtItemIvt> list;
int maxThreadCnt = 100;
final static Logger logger = Logger.getLogger(ColtItemIvtMigr.class);
public void run() {
int threadCnt = 0;
List<Future<Void» rList = new ArrayList<?);
long lastId = 91232350L;
long lastExecutedId = 0L;
long TotalCnt = 0L;
double InsertedDataPercentage = 0d;
long allData = 90717246L;
for (long id = 87000L; id <= lastId + 999;) {
try {
SqlSession session = rdbms().openSession();
try {
HBaseFashionDao dao = session.getMapper(HBaseFashionDao.class);
Map<String, Object> param = new HashMap<?);
param.put("from", id);
param.put("to", id + 999);
list = dao.getColtItemIvtWithId(param);
} finally {
session.close();
}
if (threadCnt < maxThreadCnt) {
ColtIvtInsert coltIvtInsert = new ColtIvtInsert(list);
Future<Void> tt = executorService.submit(coltIvtInsert);
rList.add(tt);
threadCnt++;
TotalCnt = ColtIvtInsert.TotalCnt;
lastExecutedId = ColtIvtInsert.lastExecutedId;
//
} else {
for (Future<Void> r : rList) {
try {
r.get();
} catch (InterruptedException | ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
threadCnt = 0;
}
InsertedDataPercentage = ((double) TotalCnt * 100 / (double) allData);
logger.info(String.format(
"Thread: ->%s,Inventory---»> Last id ->%s, Last executed id ->%s, Total cnt ->%s,Percentage->%.2f%%",
threadCnt,lastId, lastExecutedId, TotalCnt, InsertedDataPercentage));
// System.out.println(String.format("Inventory---»> Last id
// ->%s, Last executed id ->%s, Total cnt
// ->%s,InsertedDataPercentage->%.2f%%",lastId,lastExecutedId,TotalCnt,InsertedDataPercentage));
} catch (IOException e) {
e.printStackTrace();
} finally {
id = id + 1000;
}
}
if (threadCnt > 0) {
for (Future<Void> r : rList) {
try {
r.get();
} catch (InterruptedException | ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public SqlSessionFactory rdbms() throws IOException {
Reader reader = Resources.getResourceAsReader("config/mybatis/hbase.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader, "rdbms");
return sqlSessionFactory;
}
}
List<ColtItemIvt> list;
static long TotalCnt = 0L;
static long lastExecutedId = 0L;
public ColtIvtInsert(List<ColtItemIvt> list) {
this.list = list;
}
@Override
public Void call() throws Exception {
if (list != null && !list.isEmpty()) { // open connection
SqlSession sqlSession = phoenix().openSession();
try {
HBaseFashionDao dao = sqlSession.getMapper(HBaseFashionDao.class);
for (ColtItemIvt tt : list) {
dao.insertColtItemIvt(tt);
sqlSession.commit();
TotalCnt++;
lastExecutedId = tt.getId();
}
} finally {
sqlSession.close();
}
// close connection
}
return null;
}
public SqlSessionFactory phoenix() throws IOException {
Reader reader = Resources.getResourceAsReader("config/mybatis/hbase.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader, "phoenix");
return sqlSessionFactory;
}
}
vryadli s kodom est problemi, potomu mne udaetsya delat insert v hbase/phoenix 2-7 mln strok.
dumal problema s zookeeperom i povisil vse parametri svyazannie s client connection.

Google

Andrey
18.12.2017
11:46:44

adi
18.12.2017
12:22:04
www

Vadim
18.12.2017
18:08:02

Saydiolim Ganiev
18.12.2017
18:09:41


Vadim
18.12.2017
18:11:47
Как я думаю, проблема в следующем :
1) я бы обратил внимание на следующие строки из лога:
...
org.apache.hadoop.hbase.http.ClickjackingPreventionFilter.doFilter(ClickjackingPreventionFilter.java:48)
...
Caused by: java.lang.AbstractMethodError: org.apache.hadoop.hbase.ipc.RpcScheduler.getWriteQueueLength()I
at org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapperImpl.getWriteQueueLength(MetricsHBaseServerWrapperImpl.java:87)
at org.apache.hadoop.hbase.ipc.MetricsHBaseServerSourceImpl.getMetrics
2) количество потоков. Учитывая, что у вас может быть до 100 потоков в пуле, и stacktrace из 1), попробуйте уменьшить количество потоков, вряд ли у вас все 100 отрабатывают одновременно, и чтобы не было контеншина.
3) возможно, слишком большая нагрузка для вашей HBase. Посмотрите через Cloudera Manager статистику сети, машины в целом
4) код, вы прислали не весь код, может быть у вас где то есть memory leak-и - мы не знаем. И зачем вы создаете так много раз SqlSessionFactory? Создайте 1 на одно приложение для каждой БД. Множествое создание считается "bad smell" - смотрите доки


Saydiolim Ganiev
18.12.2017
18:20:25
1. Pitayus ponat logi, poka bezrezultatno.
Sguglil Caused by: java.lang.AbstractMethodError: org.apache.hadoop.hbase.ipc.RpcScheduler.getWriteQueueLength(). K sojeleniyu ne nashel poxojuyu oshibku.
2.Kolichestvo potokov menyal s 1 do 100, rezultat odinakov, raznitsa tolko v kolichestvax insertax.
3.Obyazatelno proveryu.
4.Sdelayu.

Vadim
18.12.2017
18:33:21
1) Посмотрите логи HBase, может там компакшн происходит и мастер не успевает обслуживать поступающие запросы? Или gc срабатывает на JVM - добавьте PrintGCDetails и verbose:gc в настройки JVM
2) а смотрели отличие по времени между периодами возникновения ошибки при смене количества потоков?


Saydiolim Ganiev
19.12.2017
01:17:36
2) periodichnost vozniknoveniya oshibok v hbase log faylax variruyetsya v 2-3 minutax. I eto kak ya ponal proisxodit postayanno vne zavisomosti kakie raboti zapuskayu v moem klastere. Seychas utrom proveril log fayli, kajduyu 2-3 minuti v kajdom hbase node voznikali takie errors.
Zapustil programmu. Ona zanosit data v hbase/phoenix. do opredellnogo vremeni poka ne poluchayu 2017-12-18 20:09:55 DEBUG ClientCnxn:717 - Got ping response for sessionid: 0x360694b1fff000e after 5ms.
A oshibki Caused by: java.lang.AbstractMethodError: org.apache.hadoop.hbase.ipc.RpcScheduler.getWriteQueueLength()I i prochiee takje proisxodit.
Mojno sdelat vivod chto dannaya oshibka/error v samom klastere i ne vliyayet na rabotu moey programmi?


Vadim
19.12.2017
09:02:55
Кроме, предложений о которых писал ранее, можно еще:
7) Прочитать
https://www.cloudera.com/documentation/enterprise/5-9-x/topics/cdh_ig_hbase_config.htm
8)
Обратить внимание на следующие настройки:
hbase.rpc.timeout
Настройки клиентского jar файла для hbase:
hbase.client.ipc.pool.type
hbase.client.ipc.pool.size
9) поставить меньше потоков (может хотя бы 16/32?В идеале 1м потоком, чтобы убедиться что дело не в большом количестве соеднинений)
10) при использовании нативного API общения с HBase записи вставлял batch-ами, вы уверены что MyBatis у вас работает подобным образом, а не по 1ой записи?

Timur
21.12.2017
12:08:20
Господа, а тут можно постить вакансии?

sherzod
21.12.2017
12:09:11
https://t.me/scala_jobs
если по хадупу можнО)

Timur
21.12.2017
12:10:01
#job
Data Engineer в команду DWH (Maintenance).
Работа команды DWH в компании направлена на развитие хранилища данных (Oracle Exadata, 24x nodes/1.4 PB CDH Cluster), а также сбор, обработку и оптимальное хранение данных со всех наших проектов во всех регионах.
Содержание работы:
поддержка ежедневного ETL-процесса;
интеграция данных из различных источников (RDBMS, Kafka, AWS);
оптимизация хранилища данных.
Требования:
опыт работы от 3 лет с Oracle на крупных проектах в роли разработчика или администратора;
опыт написания скриптов на Bash;
английский язык на уровне Intermediate (для общения с англоязычными коллегами в рамках распределенной команды).
Желательно:
опыт работы с Hadoop;
опыт работы с Exadata;
опыт работы с планировщиком задач (Tidal, Control-M, Jenkins).
Дополнительная информация:
Возможны командировки в Прагу и Остин.
про зрп ничего не знаю, как договоришься
и это в Минске


Dmitry
22.12.2017
11:48:02
Коллеги, у меня нубский вопрос, как через oozie закачать файл с хттп в хдфс?
shell wget + shell hadoop fs -copyFromLocal ?
мож че поинтересней есть?

Anton
22.12.2017
12:38:59
https://hadoop.apache.org/docs/r1.0.4/webhdfs.html#CREATE yне вариант?
я бы не советовал webhdfs в принципе но если это тестовое окружение то в принципе ничего криминального

Google

Anton
22.12.2017
12:39:40
там есть вопрос с безопасностью серьезные

Vadim
22.12.2017
12:57:16

Dmitry
22.12.2017
12:57:55
сделал через шелы собсна

Anton
22.12.2017
12:59:46
ну если админы не подумали - с строку дописываешь user.name=hdfs и делаешь rm -rf
:)

Andrey
22.12.2017
13:04:06
а как жи керберос

Anton
22.12.2017
13:10:01
ну вот я и говорю
если его нет то можно кучу дел натворить
хотя консоль тоже не панацея - export HADOOP_USER_NAME=hdfs
и ололо

Vasiliy
22.12.2017
13:19:09

Anton
22.12.2017
13:20:14
канеш можно но с консоли у тебя хотя бы проверяется username а так ты можешь вообще без авторизации это сделать

Nick
24.12.2017
18:00:01
а че там вышел новый хадуп?)

sherzod
24.12.2017
18:00:11
давно уж

Nick
24.12.2017
18:00:41
чет мимо меня прошло все

Grigory
24.12.2017
18:01:41
13 декабря ага

Nick
24.12.2017
18:01:56
ппц как давно
миллион лет прошло

Grigory
24.12.2017
18:02:01
будем ждать как амазон себе засунет

Google

Grigory
24.12.2017
18:02:20
11 дней

Nick
24.12.2017
18:02:21
а в hdfs много изменений ?

sherzod
24.12.2017
18:02:25
не знаю чё там нового) счас в докере пока гоняем

Nick
24.12.2017
18:02:54
в докере хдфс?

Grigory
24.12.2017
18:02:56
я тож хз чо ноовго) знаю что он теперь жава 8+

Nick
24.12.2017
18:02:58
вы мощные ребзя))))

Grigory
24.12.2017
18:03:03
у меня небольшй клсатер из 20 машин такой был и нормально все.