본문 바로가기

HDFS39

[hdfs] java.io.IOException: Got error, status=ERROR, status message , ack with firstBadLink as 192.168.0.103:50010 오류 HDFS 운영 중 다음과 같은 오류가 발생하였습니다. 23/12/18 15:22:43 INFO hdfs.DataStreamer: Exception in createBlockOutputStream java.io.IOException: Got error, status=ERROR, status message , ack with firstBadLink as 192.168.0.103:50010 at org.apache.hadoop.hdfs.protocol.datatransfer.DataTransferProtoUtil.checkBlockOpStatus(DataTransferProtoUtil.java:118) at org.apache.hadoop.hdfs.DataStreamer.createBlockOutputStre.. 2023. 12. 26.
[hdfs] Datanode 실행 중 You cannot have a rack and a non-rack node at the same level of the network topology. 오류 데이터 노드 실행 중 다음과 같은 오류가 발생하는 경우 데이터 노드의 네트워크 토폴로지 설정이 네임노드에 갱신되지 않아서 발생 하였습니다. core-site.xml 의 설정이 네트워크 토폴로지 설정을 이용하도록 변경된 상태에서 네임노드를 재부팅하지 않고, 운영하다가 데이터 노드를 재부팅 하니 다음과 같은 오류가 발생하였습니다. 2023-06-09 00:24:48,434 WARN org.apache.hadoop.hdfs.server.datanode.DataNode (BP-717439599-10.0.0.1-1679643941117 heartbeating to user-host.com/10.0.0.1:8020): RemoteException in register org.apache.hadoop.ipc.Remo.. 2023. 6. 9.
[hdfs] yarn 작업 중 s3a 연결 오류 처리: com.amazonaws.AmazonClientException: No AWS Credentials provided by BasicAWSCredentialsProvider EnvironmentVariableCredentialsProvider InstanceProfileCredentialsProvider : com.amazonaws.SdkClientException.. yarn 에 s3를 연결하여 작업을 처리할 때 모든 작업을 다 했는데도 다음과 같은 오류가 발생하면서 연결이 되지 않는 다면 리소스 매니저, 노드 매니저를 재부팅해야 할 필요가 있습니다. Failing this attempt.Diagnostics: [2022-11-25 19:18:38.425]java.io.InterruptedIOException: doesBucketExist on peb-test-bucket: com.amazonaws.AmazonClientException: No AWS Credentials provided by BasicAWSCredentialsProvider EnvironmentVariableCredentialsProvider InstanceProfileCredentialsProvi.. 2022. 12. 3.
[hive] 하이브 서버2의 Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.fs.FsTracer.get 오류 수정 방법 hive 3에서 tez 0.10.1, hadoop 3.3.4와 연동 중 하이브 서버2를 실행했을 때 다음과 같은 오류가 발생하는 경우가 있습니다. 이 오류는 tez 가 하둡 3.1.3 라이브러리를 가지고 있기 때문입니다. 하둡과 하이브의 hadoop-hdfs-client 버전이 달라서 발생합니다. 하둡 라이브러리 버전을 일치하게 만들면 오류를 해결할 수 있습니다. java.lang.Error: Max start attempts 5 exhausted at org.apache.hive.service.server.HiveServer2.startHiveServer2(HiveServer2.java:1064) ~[hive-service-3.1.3.jar:3.1.3] at org.apache.hive.service... 2022. 8. 28.
[hadoop] ha 하둡 실행 시 java.lang.IllegalStateException: Could not determine own NN ID in namespace 'ha-hadoop'. Please ensure that this node is one of the machines listed as an NN RPC address, or configure dfs.ha.namenode.id 오류 처리 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.. 2022. 8. 21.
[hdfs] 하둡 2.10.0 버전에서 데이터 노드를 재시작할 때 발생하는 java.io.IOException: Failed to start sub tasks to add replica in replica map :java.lang.ArithmeticException 오류 해결 방법 하둡 2.10.0 버전에서 데이터 노드를 재시작할 때 다음과 같은 오류가 발생하였습니다. 여러 대의 노드에서 동일한 작업을 진행하였는데 하나의 노드에서만 이런 문제가 발생하였습니다. 2022-07-05 15:15:19,119 INFO org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl (Thread-83): Caught exception while adding replicas from /hadoop/hdfs/data/current. Will throw later. java.io.IOException: Failed to start sub tasks to add replica in replica map :java.lang.Arithmeti.. 2022. 7. 6.
[hdfs] Access denied for user root. Superuser privilege is required 오류 해결 방법 HDFS에서 관리자용 명령어인 dfsadmin 관련 명령을 실행할 때 다음과 같은 오류가 발생하면서 실행이 되지 않을 때가 있습니다. 이럴때는 두 가지 해결방법이 있습니다. $ hdfs dfsadmin -report Configured Capacity: 194882378752 (181.50 GB) Present Capacity: 194848824320 (181.47 GB) DFS Remaining: 192335490048 (179.13 GB) DFS Used: 2513334272 (2.34 GB) DFS Used%: 1.29% Under replicated blocks: 0 Blocks with corrupt replicas: 0 Missing blocks: 0 Missing blocks (with re.. 2022. 5. 17.
[hdfs] Unable to start failover controller. Parent znode does not exist. 오류 수정 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 2022. 4. 20.
[hdfs] Journal Storage Directory /hadoop/hdfs/journal/... not formatted 오류 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.. 2022. 4. 20.
[hdfs] HDFS 메타 데이터 백업 및 복구 HDFS 메타 데이터를 백업하고 복구하는 방법을 알아보겠습니다. 메타 데이터 백업 데이터 백업은 세이프 모드에서 진행합니다. 메타 데이터 복구 복구를 위해서는 기존의 VERSION 파일은 있어야 하고, fsimage 에 맞는 체크섬을 생성하고 md5 파일을 생성해 주어야 합니다. 2022. 2. 22.
[hdfs] 네임노드의 fsimage 파일 구조 하둡 네임노드는 HDFS의 최신 데이터(fsimage)를 메모리에 보관하고 있습니다. 그리고 설정에 따라, 6시간에 1번, 100만 트랜잭션 당 1번씩 fsimage 를 파일로 보관합니다. 또한 중간 데이터인 edits 를 추가로 보관합니다. fsimage 저장 주기는 6시간에 1번 or 100만 트랜잭션당 1번 HDFS 파일 구조 파일 저장 구조는 위와 같습니다. VERSION: 현재 실행 중인 HDFS의 ID, 타입 등 정보 edits_0000xxx-0000xxx: 트랜잭션 정보. edits_트랜잭션시작번호-트랜잭션종료번호 까지의 정보를 저장 eidts_inprogress_000xx: 최신 트랜잭션 정보. 압축되지 않은 정보 fsimage_000xxx: 000xxx 까지 트랜잭션 정보가 처리된 fsi.. 2022. 2. 22.
[hdfs] webhdfs에 요청을 보냈을 때 Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error 오류 처리 HA 구성 된 HDFS에 webhdfs 로 요청을 보냈을 때 스탠바이(standby) 상태의 노드가 이런 응답을 보낼 때가 있습니다. HA 구성된 HDFS는 두 개의 HDFS가 각 active, standby 상태로 운영됩니다. 그런데 standby 상태의 노드에 조회 요청을 하면 오류가 발생합니다. # 상태 확인 $ hdfs haadmin -getAllServiceState host1:8020 active host2:8020 standby # 데이터 조회 오류 $ curl --negotiate -u: -sS -L -X GET -k "https://host2:50470/webhdfs/v1/?op=GETFILESTATUS&user.name=hdfs" {"RemoteException":{"exception".. 2021. 7. 8.
[hadoop] 보안 하둡에서 비보안 하둡으로 데이터 조회 커버로스 설정된 보안 하둡에서 비보안 하둡으로 데이터를 조회하거나, 복사 명령을 내릴 때 비보안 하둡은 인증을 처리할 필요가 없기 때문에 인증을 처리하지 않도록 설정해야 합니다. ipc.client.fallback-to-simple-auth-allowed 설정을 이용하여 인증을 처리 하지 않도록 설정합니다. hadoop fs -ls -Dipc.client.fallback-to-simple-auth-allowed=true \ hdfs://hadoop-url/ 2021. 6. 16.
[hadoop] HDFS의 쿼터 설정 및 설정 상태 확인 HDFS의 관리를 위해서 디렉토리별로 사용제한을 둘 수 있습니다. 파일 개수와 용량 제한을 걸 수 있습니다. 기본 상태는 무제한으로 되어 있기 습니다. HDFS에 설정된 쿼터의 상태는 count 명령을 이용해서 확인할 수 있습니다. -q, -u 옵션을 이용하여 확인할 수 있으며, -v 옵션을 추가하면 헤더 정보를 확인할 수 있습니다. 2021. 5. 20.
[hadoop] 커버로스 하둡에서 HDFS 접근을 위한 델리게이션 토큰 생성 방법 커버로스 인증이 적용된 하둡에서 HDFS에 접근하기 위해서는 커버로스 인증을 통한 방식도 있지만, 항상 커버로스 인증을 받게 되면 KDC에 부하가 걸리기 때문에 델리게이션 토큰을 생성하고 이 토큰을 이용하는 방법도 있습니다. HDFS 델리게이션 토큰을 생성하는 방법은 다음과 같습니다. s3를 이용할 때도 토큰파일을 이용하면 작업을 처리할 수 있습니다. 2021. 4. 19.
[hdfs] ACL설정의 setfacl, getfacl 명령 hdfs에서 파일의 소유자를 설정하는 명령은 chown 입니다. 이 명령을 이용해서 파일의 소유자와 그룹을 설정할 수 있습니다. 만약 특정 유저, 그룹에게 파일이나 디렉토리의 소유 권한을 주고 싶다면 setfacl 명령을 이용할 수 있습니다. setfacl은 같은 그룹이 아닌 사용자에게 파일의 권한을 줄 때 사용할 수 있습니다. hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html 2021. 4. 6.
[hadoop] 하둡 설정에서 job.xml:an attempt to override final parameter: fs.defaultFS 경고 하둡에서 파일 시스템을 변경하거나, 어떤 설정값을 변경하고자 할 때 다음과 같은 경고가 뜨는 경우가 있다. // 경고 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 이면 .. 2021. 3. 31.
[hadoop] 하둡에서 스내피 압축 코덱 오류 수정 Error: java.lang.RuntimeException: native snappy library not available: SnappyCompressor has not been loaded 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.. 2021. 3. 28.
[hadoop] distcp 중 java.io.IOException: Error writing request body to server 오류 해결 방법 하둡 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$.. 2021. 3. 4.
[HDFS] Stale Stroage가 발생했을 때 처리 방법 HDFS를 운영중 네임노드가 일시적으로 중단되었을 때 데이터노드가 블록 리포트를 네임노드에 전달하고 응답을 받지 못하면 StaleStorage가 발생합니다. 이 오류는 일시적인 오류이기 때문에 일반적으로 모르고 넘어갈 수 있습니다. 데이터노드의 블록 리포트는 기본적으로 6시간(dfs.blockreport.intervalMsec)에 한번씩 생성하기 때문에 이 오류는 네임노드가 정상이 되어도 바로 사라지지 않습니다. 이럴 때는 FS 명령을 이용해서 오류를 바로 처리할 수 있습니다. 2020. 12. 28.
[spark] __spark_libs__.zip does not exist 오류 해결 방법 스파크쉘으르 이용하여 작업을 실행하면 작업에 필요한 라이브러리를 묶어서 hdfs에 올리고, 이 라이브러리를 사용해서 워커노드에서 작업을 처리합니다. 따라서 hdfs연결 설정이 올바르지 않으면 해당 오류가 발생합니다. java.io.FileNotFoundException: File file:/tmp/spark-126d2844-5b37-461b-98a4-3f3de5ece91b/__spark_libs__3045590511279655158.zip does not exist at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:611)해결방법 /etc/spark/spark-env.sh에서 configura.. 2020. 9. 14.
[hadoop] [스크랩] Line에서 하둡 클러스터를 운영하면서 발생한 장애 상황 대응 방법 Line에서 하둡 클러스터를 운영하면서 발생한 장애 상황을 정리한 것입니다. 데이터 엔지니어링 관련 소프트웨어 장애 대응 사례 에서 상세한 내용을 확인할 수 있습니다. 짧게 요약하면 다음과 같습니다. hadoop.registry.rm.enabled=false로 설정 HDFS의 휴지통 설정을 켜놓으면 삭제 데이터가 많을 때는 HDFS에 부담이 될 수 있으므로 삭제 간격을 잘 조절 Zeepline의 버그에 의한 오류가 발생할 수 있으니 버전업, 버그 리포트를 잘 확인 하이브 테이블의 파티션이 많으면 스파크 드라이버가 힘들 수 있으니 파티션을 잘 설정 Apache Hadoop YARN 리소스 매니저 failover 발생 문제와 해결 방안 현상 하둡 클러스터에서 동작하는 애플리케이션의 수가 늘어나면서 리소스 매.. 2020. 6. 4.
[EMR] EMR 장기간 운영시 HDFS의 edits 파일 확인 및 삭제 EMR을 장기간 운영하면 HDFS edits 파일이 로컬에 계속 쌓이게 됩니다. EMR은 기본적으로 세컨더리 네임노드를 실행하지 않기 때문에 HDFS를 빈번하게 사용하면 무시할 수 없는 속도로 파일이 생성됩니다. 운영중에 세컨더리네임노드를 실행하면 edits 파일을 복사해서 정리하기 때문에 10G의 edits 파일을 로컬에 복사하여 20G가 되게 되고 로컬 디스크에 용량이 충분하지 않다면 정리를 할 수 없습니다. 네임노드를 재 실행할 때 복구를 하지 않고, 신규로 생성할 것이라면 로컬의 edits 파일을 삭제 하면 됩니다. 삭제 명령은 다음과 같습니다. # 수정일자 확인후 6일전 파일은 삭제 sudo find /mnt/namenode/current/ -type f -name "edits_0*" -mtim.. 2020. 5. 22.
[hdfs] HDFS WebHDFS REST API 사용법 HDFS는 REST API를 이용하여 파일을 조회하고, 생성, 수정, 삭제하는 기능을 제공합니다. 이 기능을 이용하여 원격지에서 HDFS의 내용에 접근하는 것이 가능합니다. REST API 설정 REST API를 사용하기 위해서는 hdfs-site.xml에 다음의 설정이 되어 있어야 합니다. -- webhdfs 사용여부 설정 dfs.webhdfs.enabled=true; -- webhdfs 포트 설정 dfs.namenode.http-address=0.0.0.0:50070; REST API 사용 방법 위에서 설정한 http 포트로 curl 명령을 이용하여 ls명령을 날리는 예제는 다음과 같습니다. -- /user/hadoop 위치를 조회 $ curl -s http://$(hostname -f):50070/.. 2020. 1. 9.
[hadoop-hdfs] HDFS 포맷 하는 방법 HDFS를 포맷하는 방법에 대해서 알아보겠습니다. HDFS를 포맷하면 데이터가 모두 사라집니다. 반드시 백업을 해두고 진행하는 것이 좋습니다. 작업 순서 작업 순서는 AWS EMR의 HDFS를 기준으로 작성되었습니다. 각 제조사의 하둡마다 순서가 바뀔수 있지만 전체적인 맥락은 변경되지 않습니다. 서버 종료 네임노드, 데이타노드 종료를 종료합니다. 모든 노드의 네임노드 프로세스와 데이타노드 프로세스를 종료합니다. 네임노드 포맷 포맷 hdfs namenode -format 명령으로 네임노드를 포맷합니다. 네임노드를 포맷하면 dfs.namenode.name.dir경로의 fsimage와 edits 파일이 초기화 됩니다. 네임노드를 포맷하면 클러스터 ID가 신규로 생성됩니다. 이 정보는 dfs.namednoe.n.. 2019. 12. 26.
[hadoop-hdfs] HDFS Archival Storage, SSD & Memory HDFS는 각 데이터 노드의 저장장치의 특성에 맞게 데이터를 저장하는 특성을 제공한다고 합니다. Heterogeneous Storage (HDFS-2832)의 내용을 참고 하면 될 것 같습니다. 네이버의 PINPOINT, eBay등에서 이 작업을 적용하여 비용에 이득을 얻었다고 합니다. 아래 문서에 상세한 결과가 나와 있으므로 참고 바랍니다. $ hdfs storagepolicies -listPolicies Block Storage Policies: BlockStoragePolicy{COLD:2, storageTypes=[ARCHIVE], creationFallbacks=[], replicationFallbacks=[]} BlockStoragePolicy{WARM:5, storageTypes=[DISK,.. 2019. 8. 7.
[hadoop-hdfs] HDFS의 사용 가능한 용량 확인 HDFS의 용량을 확인하는 방법을 알아보겠습니다. hdfs dfsadmin -report 명령을 이용하면 현재 HDFS의 용량과 전체 노드의 용량 상태를 확인할 수 있습니다. 아래는 Non DFS Used의 용량이 많아서 실제 저장에 이용할 수 있는 용량이 많이 줄었기 때문에 이를 확인해서 처리하는 작업이 필요한 상황입니다. $ hdfs dfsadmin -report # 클러스터 전체의 상황 # 사용할 수 있게 설정된 용량은 5.88T # 현재 사용 가능한 용량은 4.27T = 5.88T - (Non DFS Used * 39) # 비어 있는 용량은 3.22T # 사용중인 용량은 1.05T Configured Capacity: 6466620506112 (5.88 TB) Present Capacity: 46.. 2019. 7. 23.
[EMR-HDFS] EMR의 HDFS 운영중 Non DFS Used 용량이 늘어나서 실제 이용할 데이터가 줄어드는 문제 증상 EMR을 이용하여 데이터 처리 중 갑자기 각 데이터 노드의 Non DFS Used 용량이 늘어나서 실제 데이터를 저장할 용량이 부족해졌습니다. # hdfs dfsadmin -report로 확인 Decommission Status : Normal Configured Capacity: 165810782208 (154.42 GB) DFS Used: 32090261515 (29.89 GB) Non DFS Used: 45128228853 (42.03 GB) # Non DFS Used 용량의 증가 DFS Remaining: 88592291840 (82.51 GB) DFS Used%: 19.35% DFS Remaining%: 53.43%원인 데이터 노드를 확인하니 /mnt/yarn 아래 partion*.tmp,.. 2019. 7. 22.
[oozie] 우지의 HDFS EL 함수 알아보기 우지에는 워크플로우를 작성할 때 도움을 제공하는 기본 EL 상수와 함수가 있습니다. 우지 EL 함수 종류 Basic EL ConstantsKB, MB, GB 등 사이즈 계산을 위한 상수 Basic EL Functionsconcat, trim 등 문자열 관련 기본 함수와 wf:actionData(String actionName) 같은 워크플로우 관련 함수 Workflow EL Functionswf:id() 등 워크플로우의 정보 확인을 위한 함수 Hadoop EL Constants맵리듀스 관련 상수 정보 Hadoop EL Functions하둡 카운터 정보 Hadoop Jobs EL Function하둡 잡의 정보 HDFS EL FunctionsHDFS 파일의 존재여부, 사이즈 확인 정보 HCatalog EL .. 2019. 2. 13.
[hdfs] HDFS 디렉토리 최대값 설정 변경 HDFS 조회중 item limit 으로 인해 발생하는 다음의 오류는 hdfs-site.xml 에 설정된 dfs.namenode.fs-limits.max-directory-items 의 값보다 많은 수의 개체가 생성되어서 그렇습니다. ERROR [uber-SubtaskRunner] org.apache.hadoop.hive.ql.Driver: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: org.apache.hadoop.ipc.RemoteException The directory item limit of /user/ is exceeded:.. 2018. 12. 10.