使用spark读取hbase数据成为rdd数据结构时,不论spark作业的运行模式是client和cluster都报了一个异常:
org.apache.hadoop.hbase.client.ScannerTimeoutException
【原因】
没有在指定的时长内完成从HregionServer拉取完整数据到spark job客户端的内存当中,默认这个时间为是60000ms。为什么会超时呢?是因为所需要的数据需要从HregionServer先Scan再加载到spark job的客户端的内存,但是由于我这客户端内存不足,导致了无法完成所需全部数据的本地加载。
【解决办法】
(1)要么就加大spark job客户端的内存大小
(2)要么在跑spark作业前,调整hbase.client.scanner.timeout.period参数,例如从60秒调高到120秒
参考博文:http://blog.youkuaiyun.com/bryce123phy/article/details/51504585