Серверы региона HBase продолжают сбой при импорте TSV - PullRequest
1 голос
/ 26 июня 2019

Пытаюсь загрузить вкладку разделенный файл HDFS ( 3.5G ) с 45-миллионной записью в HBASE, используя следующую команду

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=HBASE_ROW_KEY,description:part_description part /user/sw/spark_search/part_description_data

фрагмент файла

45-573  Conn Circular Adapter F/M 11 POS ST 1 Port
CA3100E14S-4P-B-03  Conn Circular PIN 1 POS Crimp ST Wall Mount 1 Terminal 1 Port Automotive

Я вижу, как карта сокращает количество запускаемых заданий и достигает 5%, но затем серверы регионов просто аварийно завершают работу и время ожидания заданий.и выдает

19/06/26 14:56:31 INFO mapreduce.Job:  map 0% reduce 0%
19/06/26 15:06:59 INFO mapreduce.Job: Task Id : attempt_1561551541629_0001_m_000010_0, Status : FAILED
AttemptID:attempt_1561551541629_0001_m_000010_0 Timed out after 600 secs
19/06/26 15:06:59 INFO mapreduce.Job: Task Id : attempt_1561551541629_0001_m_000004_0, Status : FAILED
AttemptID:attempt_1561551541629_0001_m_000004_0 Timed out after 600 secs
19/06/26 15:06:59 INFO mapreduce.Job: Task Id : attempt_1561551541629_0001_m_000003_0, Status : FAILED
AttemptID:attempt_1561551541629_0001_m_000003_0 Timed out after 600 secs

после перезапуска сервера, я вижу, что некоторые данные уже были загружены, как я могу отследить причину сбоя?

После проверки журналов regionservers,Единственная ошибка, которую я вижу, это

2019-06-27 15:43:05,361 ERROR org.apache.hadoop.hbase.ipc.RpcServer: Unexpected throwable object 
java.lang.OutOfMemoryError: Java heap space
    at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ResultOrException$Builder.buildPartial(ClientProtos.java:29885)
    at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ResultOrException$Builder.build(ClientProtos.java:29877)
    at org.apache.hadoop.hbase.regionserver.RSRpcServices.getResultOrException(RSRpcServices.java:328)
    at org.apache.hadoop.hbase.regionserver.RSRpcServices.getResultOrException(RSRpcServices.java:319)
    at org.apache.hadoop.hbase.regionserver.RSRpcServices.doBatchOp(RSRpcServices.java:789)
    at org.apache.hadoop.hbase.regionserver.RSRpcServices.doNonAtomicRegionMutation(RSRpcServices.java:716)
    at org.apache.hadoop.hbase.regionserver.RSRpcServices.multi(RSRpcServices.java:2146)
    at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33656)
    at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2191)
    at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
    at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:183)
    at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:163)
2019-06-27 15:43:08,120 INFO org.apache.zookeeper.ZooKeeper: Client environment:zookeeper.version=3.4.5-cdh5.14.4--1, built on 06/12/2018 10:49 GMT

Но я вижу, что у меня достаточно свободной оперативной памяти

Ответы [ 2 ]

2 голосов
/ 26 июня 2019

Проблема в том, что вашим картостроителям требуется более 600 секунд для запуска, и поэтому время ожидания истекает. Установите mapreduce.task.timeout на 0. Обычно это не будет проблемой, но в вашем случае задание записывает в HBase, а не в обычный MapReduce context.write(...), поэтому MapReduce считает, что ничего не происходит.

См. https://hadoop.apache.org/docs/r2.8.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml.

1 голос
/ 16 июля 2019

Проблема возникла из-за переполнения памяти кучи, значение по умолчанию, установленное cloudera, кажется низким, после увеличения кучи до 4G файл был успешно загружен

...