Hadoop HBase区域服务器在tsv导入时不断崩溃

Hadoop HBase区域服务器在tsv导入时不断崩溃,hadoop,mapreduce,hbase,Hadoop,Mapreduce,Hbase,我正在尝试使用下面的命令将tab分隔的HDFS文件(3.5G)和4500万条记录加载到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/

我正在尝试使用下面的命令将tab分隔的HDFS文件(3.5G)和4500万条记录加载到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
重新启动服务器后,我可以看到一些数据已经加载,如何跟踪崩溃的原因

在检查RegionServer日志后,我看到的唯一错误是

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

但是我可以看到我有足够的可用RAM,问题是你的映射程序运行时间超过了600秒,因此超时并死亡。将
mapreduce.task.timeout
设置为
0
。通常这不会是一个问题,但在您的情况下,作业会写入HBase,而不是正常的MapReduce
上下文。write(…)
,因此MapReduce认为什么都没有发生


请参阅。

问题是由堆内存溢出引起的,cloudera设置的默认值似乎很低,在将堆增加到4G后,文件已成功加载

我进行了检查,设置为10分钟,我已将其更新为0,但我认为情况正好相反,区域服务器首先崩溃,这就是为什么mapReduce Timeouts我再次尝试,似乎正如我想象的那样,区域服务器在处理20秒后出现故障和崩溃,然后映射程序在10分钟后超时,因为我检查了区域服务器日志,请检查编辑的问题