Tez 0.10.3 와 Hadoop 3.3.6을 설치하니 다음과 같은 오류가 발생하였습니다. 2024-09-05T06:53:52,466 INFO [main] conf.HiveConf: Using the default value passed in for log id: 693153d4-f980-4b4a-84b9-f55371e343d92024-09-05T06:53:52,471 INFO [main] session.SessionState: Error closing tez sessionjava.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.IllegalAccessError: tried to..
장애 상황HA 구성 된 하둡은 3대의 저널 노드(journalnode)를 필요로 하는데 그 중 1대의 노드에 장애가 발생하여 서버가 포맷 되었습니다. 이로 인해 1대의 저널 노드를 새로 구축해야 하는 상황이 되었습니다. 오류를 해결하기 위해서 서버를 새로 설치하고 실행하니 다음과 같은 오류가 발생하였습니다. 2024-07-18 06:31:25,405 INFO org.apache.hadoop.ipc.Server (IPC Server handler 3 on default port 8485): IPC Server handler 3 on default port 8485, call Call#944181936 Retry#0 org.apache.hadoop.hdfs.qjournal.protocol.QJournalP..
노드매니저가 Linux Container Executor reached unrecoverable exception 오류를 출력하면서 UNHEALTHY 상태로 들어가는 경우가 있습니다. 이 경우 실행된 컨테이너가 35번 오류를 출력하면서 종료 되었을 때 발생합니다. 다음과 같이 오류일 가능성이 있으므로 지속적으로 발생한다면 패치를 하거나, 버전을 올려야 합니다. 우선은 간단하게 캐쉬 파일 위치를 삭제하고, 재부팅하는 것으로 문제를 해결할 수 있습니다. https://issues.apache.org/jira/browse/YARN-9833 [YARN-9833] Race condition when DirectoryCollection.checkDirs() runs during container launch - A..
하둡에서 mapreduce를 이용해서 작업을 진행할 때 다음과 같은 오류가 발생하면서 작업이 진행되지 않을 때가 있습니다. 2022-11-07 17:55:58,250 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Before Scheduling: PendingReds:0 ScheduledMaps:12 ScheduledReds:0 AssignedMaps:0 AssignedReds:0 CompletedMaps:0 CompletedReds:0 ContAlloc:0 ContRel:0 HostLocal:0 RackLocal:0 2022-11-07 17:55:58,270 ERROR [RMCommun..
HA 하둡에서 네임노드 실행시 다음과 같은 오류가 발생하는 경우가 있습니다. 22/08/20 12:11:24 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT] 22/08/20 12:11:24 INFO namenode.NameNode: createNameNode [-bootstrapStandby, -force] 22/08/20 12:11:24 ERROR namenode.NameNode: Failed to start namenode. java.io.IOException: java.lang.IllegalStateException: Could not determine own NN ID in namespace 'ha-hadoo..
HA 하둡을 설정할 때 ZKFC를 실행할 때 이런 오류가 발생하는 경우가 있습니다. 2022-04-13 05:22:29,204 ERROR org.apache.hadoop.ha.ZKFailoverController (main): Unable to start failover controller. Parent znode does not exist. Run with -formatZK flag to initialize ZooKeeper. 이때는 zkfc를 포맷하면 됩니다. 다음 명령을 실행합니다. hdfs zkfc -formatZK
HA 하둡을 설정할 때 다음과 같은 오류가 발생하는 경우가 있습니다. 192.168.0.2:8485: Journal Storage Directory /hadoop/hdfs/journal/edit/test-hadoop not formatted ; journal id: test-hadoop at org.apache.hadoop.hdfs.qjournal.server.Journal.checkFormatted(Journal.java:516) at org.apache.hadoop.hdfs.qjournal.server.Journal.getEditLogManifest(Journal.java:707) at org.apache.hadoop.hdfs.qjournal.server.JournalNodeRpcServer.getE..
하둡 타임라인서버 실행 중 다음과 같은 오류가 발생하였다. leveldb 라이브러리를 찾을 수 없다고 하는데, jar 파일이 기본 경로에 들어 있기 때문에 문제가 될 것이 없어 보이는데 오류가 계속 발생하였다. 2021-11-15 08:09:34,187 ERROR org.apache.hadoop.yarn.server.applicationhistoryservice.ApplicationHistoryServer: Error starting ApplicationHistoryServer java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no leveldbjni64-1.8 in java.library.path, no leveldbjni-1.8 in..
커버로스 설정된 보안 하둡에서 비보안 하둡으로 데이터를 조회하거나, 복사 명령을 내릴 때 비보안 하둡은 인증을 처리할 필요가 없기 때문에 인증을 처리하지 않도록 설정해야 합니다. ipc.client.fallback-to-simple-auth-allowed 설정을 이용하여 인증을 처리 하지 않도록 설정합니다. hadoop fs -ls -Dipc.client.fallback-to-simple-auth-allowed=true \ hdfs://hadoop-url/
# 예제임 17/10/09 15:19:53 INFO mapreduce.Job: map 67% reduce 0% 17/10/09 15:30:05 INFO mapreduce.Job: Task Id : attempt_1507562353923_0001_m_000000_0, Status : FAILED AttemptID:attempt_1507562353923_0001_m_000000_0 Timed out after 600 secs Sent signal OUTPUT_THREAD_DUMP (SIGQUIT) to pid 6230 as user ubuntu for container container_1507562353923_0001_01_000002, result=success Container killed by the..
hdfs에서 파일의 소유자를 설정하는 명령은 chown 입니다. 이 명령을 이용해서 파일의 소유자와 그룹을 설정할 수 있습니다. 만약 특정 유저, 그룹에게 파일이나 디렉토리의 소유 권한을 주고 싶다면 setfacl 명령을 이용할 수 있습니다. setfacl은 같은 그룹이 아닌 사용자에게 파일의 권한을 줄 때 사용할 수 있습니다. hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html
하둡에서 파일 시스템을 변경하거나, 어떤 설정값을 변경하고자 할 때 다음과 같은 경고가 뜨는 경우가 있다. // 경고 2021-03-30 18:49:32,981 WARN [main] org.apache.hadoop.conf.Configuration: job.xml:an attempt to override final parameter: fs.defaultFS; Ignoring. // 오류 java.lang.IllegalArgumentException: Wrong FS: swift://test/tmp/hdfs/.staging, expected: hdfs://localhost 이 경우 core-site.xml 파일을 보면 fs.defaultFS 설정에 true이 들어가 있을 것이다. 이 값이 false 이면 ..
하둡에서 오픈 스택의 swift 파일시스템을 연동하기 위해서는 다음의 라이브러리를 사용하면 됩니다. 이 라이브러리는 sahara의 swift 라이브러리를 수정한 버전 shara 버전은 ORC 파일을 읽을 때 오류가 발생함 walmartlab에서 개발한 이 라이브러리를 이용하면 됨 오픈 스택의 구현 버전에 따라 이 라이브러리가 동작하지 않을 수도 있음 github.com/walmartlabs/hadoop-openstack-swifta walmartlabs/hadoop-openstack-swifta hadoop-openstack-swifta. Contribute to walmartlabs/hadoop-openstack-swifta development by creating an account on GitHu..
21/03/28 11:11:14 INFO mapreduce.Job: Task Id : attempt_1616895550362_0002_m_000000_0, Status : FAILED Error: java.lang.RuntimeException: native snappy library not available: SnappyCompressor has not been loaded. at org.apache.hadoop.io.compress.SnappyCodec.checkNativeCodeLoaded(SnappyCodec.java:72) at org.apache.hadoop.io.compress.SnappyCodec.getCompressorType(SnappyCodec.java:136) at org.apach..
하둡 distcp 에서 이런 오류가 발생하면 다음의 설정을 추가합니다. 커버러스 적용된 하둡 클러스터간에 위임 토큰을 처리하지 못해서 발생하는 오류입니다. -Dmapreduce.job.hdfs-servers.token-renewal.exclude=server 21/03/04 18:17:19 ERROR tools.DistCp: Exception encountered java.io.IOException: org.apache.hadoop.yarn.exceptions.YarnException: Failed to submit application_1609849426446_23330 to YARN : Failed to renew token: Kind: SWEBHDFS delegation, Service: 10.0...
하둡 yarn의 커패시티 스케줄러의 큐 매핑은 사용자, 그룹에 따라서 자동으로 큐 설정을 변경해 줍니다. 유저A, 그룹 GrpA 유저B, 그룹 GrpB 유저C, 그룹 GrpA, GrpB 위와 같은 경우 유저 A는 큐 GrpA로 작업이 처리되고, 유저 B는 큐 GrpB로 처리됩니다. 유저C는 프라이머리 그룹에 따라 처리 됩니다. 프라이머리 그룹은 사용자의 기본 그룹입니다. /etc/passwd에서 확인할 수 있는 사용자의 기본 그룹입니다. hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html#Dynamic_Auto-Creation_and_Management_of_Leaf_Queues
하둡 DistCp를 이용하여 데이터를 복사할 때 오류가 발생하는 경우가 있습니다. - Socket is closed - Error writing request body to server Caused by: java.net.SocketException: Socket is closed at sun.security.ssl.SSLSocketImpl.getInputStream(SSLSocketImpl.java:680) at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:673) java.io.IOException: Error writing request body to server at sun.net.www.protocol.http.HttpURLConnection$..
AWS 환경에서는 하둡으로 S3의 데이터를 직접 조회할 수 있습니다. AWS가 아닌 환경, 직접 구성한 클러스터 에서는 S3 데이터를 조회하기 위해서 라이브러리를 추가해야 합니다. 작업을 진행하기 전에 AWS S3 버켓의 접근 가능 여부를 먼저 확인해야 합니다. 라이브러리 설정 aws 연결을 위한 라이브러리는 기본적으로 하둡 배포판에 제공됩니다. 하둡을 설치한 디렉토리의 아라의 위치를 확인하면 aws 관련 라이브러리가 존재하는 것을 알 수 있습니다. 이 라이브러리 위치를 hadoop-env.sh 의 HADOOP_CLASSPATH 에 추가하거나, 명령어 실행 시점에 추가 해주 면 됩니다. # 하둡 라이브러리 확인 $ ls share/hadoop/tools/lib/hadoop-aws-2.10.0.jar sh..
HDFS를 운영중 네임노드가 일시적으로 중단되었을 때 데이터노드가 블록 리포트를 네임노드에 전달하고 응답을 받지 못하면 StaleStorage가 발생합니다. 이 오류는 일시적인 오류이기 때문에 일반적으로 모르고 넘어갈 수 있습니다. 데이터노드의 블록 리포트는 기본적으로 6시간(dfs.blockreport.intervalMsec)에 한번씩 생성하기 때문에 이 오류는 네임노드가 정상이 되어도 바로 사라지지 않습니다. 이럴 때는 FS 명령을 이용해서 오류를 바로 처리할 수 있습니다.
하둡 fs 명령에서 디버깅을 위한 메세지를 출력하고 싶을 때는 하둡의 로깅 레벨을 변경하면 됩니다. 다음은 HADOOP_ROOT_LOGGER를 변경하여 fs 커맨드에서 로그를 출력하는 방법입니다. export HADOOP_ROOT_LOGGER=DEBUG,console # 로그가 출력됨 $ hadoop fs -Dfs.swift.service.kw.username= -Dfs.swift.service.kw.password= -ls swift://default.service/ 20/11/04 08:24:37 DEBUG util.Shell: setsid exited with exit code 0 20/11/04 08:24:37 DEBUG conf.Configuration: parsing URL jar:file:/..
Line에서 하둡 클러스터를 운영하면서 발생한 장애 상황을 정리한 것입니다. 데이터 엔지니어링 관련 소프트웨어 장애 대응 사례 에서 상세한 내용을 확인할 수 있습니다. 짧게 요약하면 다음과 같습니다. hadoop.registry.rm.enabled=false로 설정 HDFS의 휴지통 설정을 켜놓으면 삭제 데이터가 많을 때는 HDFS에 부담이 될 수 있으므로 삭제 간격을 잘 조절 Zeepline의 버그에 의한 오류가 발생할 수 있으니 버전업, 버그 리포트를 잘 확인 하이브 테이블의 파티션이 많으면 스파크 드라이버가 힘들 수 있으니 파티션을 잘 설정 Apache Hadoop YARN 리소스 매니저 failover 발생 문제와 해결 방안 현상 하둡 클러스터에서 동작하는 애플리케이션의 수가 늘어나면서 리소스 매..
hadoop fs 명령에서 OutOfMemory 오류가 발생하는 경우가 있습니다. 아래와 같이 디렉토리의 정보를 가져올 때 오류가 발생합니다. $ hadoop fs -ls /app/logs # # java.lang.OutOfMemoryError: GC overhead limit exceeded # -XX:OnOutOfMemoryError="kill -9 %p" # Executing /bin/sh c "kill -9 1234"... KILLED 원인 및 해결방법 주로 파일 개수가 많을 때 발생합니다. 이런 경우 하둡 클라이언트의 메모리를 늘려주면 됩니다. 아래와 같이 입력하여 메모리 설정을 늘려주고 fs 명령을 입력하면 됩니다. export HADOOP_CLIENT_OPTS="-Xmx2048m"
YARN은 2.6버전 부터 노드 레이블 기능을 제공합니다. 레이블은 서버를 특성에 맞게 구분하여 애플리케이션을 실행할 수 있는 기능을 제공합니다. 노드 레이블은 서버의 타입(ex: SSD, GPU)에 따라 작업을 처리하도록 구성할 수 있음 빠른 IO가 필요한 작업은 SSD 중심의 서버를 이용하도록 설정 빠른 CPU연산이 필요한 작업은 GPU를 이용할 수 있는 서버를 이용하도록 설정 특징 노드는 하나의 파티션을 가짐 기본 파티션은 DEFAULT이고 partiton="" 노드별로 설정을 다르게 할 수 있음 노드 파티션은 두가지 종류가 있음 Exclusive 설정한 노드만 사용할 수 있음 Non-Exclusive 운영상황에 여유가 있을때는 다른 노드도 이용 가능 Node Labels in YARN from D..
하둡은 데이터를 저장할 때 HadoopFileSystem API를 이용하여 파일 시스템에 데이터를 저장합니다. 이 API를 이용하여 HDFS나 S3에 데이터를 저장할 수 있습니다. HDFS 분산 파일 시스템 대량의 데이터 처리에 유리 큰 사이즈의 파일에 최적화 네임노드가 메타데이터를 관리하고, 데이타노드가 데이터를 블록단위로 저장 하둡 3.x에서는 이레이져 코딩, 라우터 기반 연합, ozone 도입 Hadoop FileSystem API, 하둡 fs 커맨드, 웹 UI로 접근 S3 AWS에서 제공하는 객체 저장 시스템 확장성, 고가용성, 내구성, 보안, 성능 등의 특징을 가짐 저장용량과 요청 횟수에 따라 과금 키 기반으로 데이터가 저장됨. 디렉토리 시스템 아님. 파일 시스템 아님 REST API, AWS ..
YARN의 커패시티 스케줄러의 큐는 운영중에 추가는 할 수 있지만, 삭제 할 수는 없습니다. 기존에 설정된 큐를 삭제하는 경우 다음과 같은 오류가 발생합니다. 리소스 매니저를 재시작해야 설정이 적용됩니다. 리소스 매니저 재시작 # 정지 $ sudo stop hadoop-yarn-resourcemanager # 실행 $ sudo start hadoop-yarn-resourcemanager 오류 $ yarn rmadmin -refreshQueues 19/10/31 04:26:55 INFO client.RMProxy: Connecting to ResourceManager at /10.11.60.235:8033 refreshQueues: java.io.IOException: Failed to re-init qu..
- Total
- Today
- Yesterday
- ubuntu
- Python
- 백준
- build
- bash
- 파이썬
- 정올
- 하둡
- S3
- HIVE
- yarn
- Hadoop
- Linux
- java
- 하이브
- AWS
- emr
- error
- hbase
- airflow
- SPARK
- 오류
- 다이나믹
- nodejs
- oozie
- 알고리즘
- Tez
- HDFS
- mysql
- SQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |