org.apache.hadoop.ipc.RemoteException: No lease on /google/public_plus/20181127/23_merged (inode 2683729964): File does not exist. [Lease. Holder: DFSClient_NONMAPREDUCE_-39928930_1, pending creates: 8]
하둡 소스를 보면, 파일이 없거나 디렉토리이면 위의 에러가 발생한다. lease 이슈는 아니다..
private void checkLease(String src, String holder, INode file)
throws IOException {
if (file == null || file.isDirectory()) {
Lease lease = leaseManager.getLease(holder);
throw new LeaseExpiredException("No lease on " + src +
" File does not exist. " +
(lease != null ? lease.toString() :
"Holder " + holder +
" does not have any open files"));
}
참고로 lease는 write lock과 비슷한 개념이다.
Leases
In HDFS these locks are called Leases. Leases are granted to a client which request to open a file for a write operation (e.g. create / append / truncate a file.)
https://www.raviprak.com/research/hadoop/leaseManagement.html
사실 생각해보면. 실제로 있어야 하는데 존재했다가 삭제된 것이다.
이는 병렬 이슈인 것이다.
https://stackoverflow.com/questions/7559880/leaseexpiredexception-no-lease-error-on-hdfs
spark이라면. 다음과 같이 설정을 해서 speculative optimization 알고리즘(병렬)을 끄도록 한다.
sparkConf.set("spark.speculation", "false");
sparkConf.set("spark.hadoop.mapreduce.map.speculative", "false");
sparkConf.set("spark.hadoop.mapreduce.reduce.speculative", "false")
hive라면 다음과 같은 설정을 진행한다.
set mapreduce.map.speculative=false;
set mapreduce.reduce.speculative=false;
set hive.mapred.reduce.tasks.speculative.execution=false;
'hadoop' 카테고리의 다른 글
sqoop 성능 튜닝 (0) | 2019.01.11 |
---|---|
얀(yarn) 기반 spark 애플리케이션 종료 방법 (0) | 2019.01.11 |
[phoenix] 피닉스의 timestamp 타입 값을 현재시간으로 확인하기 (0) | 2018.11.20 |
[Hbase-Phoenix] phoenix.schema.isNamespaceMappingEnabled, Cannot create schema because config phoenix.schema.isNamespaceMappingEnabled for enabling name space mapping isn't enabled 에러 발생 (0) | 2018.11.01 |
[hbase-phoenix] jdbc driver (0) | 2018.11.01 |