[hue] Secure HDFS와 연동에서 Error 401 Authentication required 오류가 발생하는 경우
·
빅데이터/Hue
Hue와 SecureHDFS를 연동하는 방법을 정리하면서 발생한 다음의 오류를 해결하는 방법도 알아보겠습니다.HTTP ERROR 401Problem accessing /webhdfs/v1. Reason: Authentication requiredPowered by Jetty://  사용 버전hadoop: v2.10.2Hue: 4.11.0Hue와 Secure HDFS 연결 설정hadoop은 커버로스 설정을 처리하고, Hue에서 커버로스 하둡을 연동하기 위해서는 hue.ini 에 다음과 같이 설정합니다.[hadoop][[hdfs_clu..
[hdfs] HA 구성된 HDFS의 journalnode 3대 중 1대의 서버가 장애가 발생했을 때 대응 (Journal Storage Directory /hadoop/hdfs/journal/edit/user-hadoop not formatted ; journal id: user-hadoop)
·
빅데이터/hadoop
장애 상황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..
[hdfs] java.io.IOException: Got error, status=ERROR, status message , ack with firstBadLink as 192.168.0.103:50010 오류
·
빅데이터/hdfs
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..
[hdfs] Datanode 실행 중 You cannot have a rack and a non-rack node at the same level of the network topology. 오류
·
빅데이터/hdfs
데이터 노드 실행 중 다음과 같은 오류가 발생하는 경우 데이터 노드의 네트워크 토폴로지 설정이 네임노드에 갱신되지 않아서 발생 하였습니다. 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..
[hdfs] yarn 작업 중 s3a 연결 오류 처리: com.amazonaws.AmazonClientException: No AWS Credentials provided by BasicAWSCredentialsProvider EnvironmentVariableCredentialsProvider InstanceProfileCredentialsProvider : com.amazonaws.SdkClientException..
·
빅데이터/hdfs
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..
[hive] 하이브 서버2의 Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.fs.FsTracer.get 오류 수정 방법
·
빅데이터/hive
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...
[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 오류 처리
·
빅데이터/hadoop
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..
[hdfs] 하둡 2.10.0 버전에서 데이터 노드를 재시작할 때 발생하는 java.io.IOException: Failed to start sub tasks to add replica in replica map :java.lang.ArithmeticException 오류 해결 방법
·
빅데이터/hdfs
하둡 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..
[hdfs] Access denied for user root. Superuser privilege is required 오류 해결 방법
·
빅데이터/hdfs
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..
[hdfs] Unable to start failover controller. Parent znode does not exist. 오류 수정
·
빅데이터/hadoop
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
[hdfs] Journal Storage Directory /hadoop/hdfs/journal/... not formatted 오류
·
빅데이터/hadoop
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..
[hdfs] HDFS 메타 데이터 백업 및 복구
·
빅데이터/hdfs
HDFS 메타 데이터를 백업하고 복구하는 방법을 알아보겠습니다. 메타 데이터 백업 데이터 백업은 세이프 모드에서 진행합니다. 메타 데이터 복구 복구를 위해서는 기존의 VERSION 파일은 있어야 하고, fsimage 에 맞는 체크섬을 생성하고 md5 파일을 생성해 주어야 합니다.
[hdfs] 네임노드의 fsimage 파일 구조
·
빅데이터/hdfs
하둡 네임노드는 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..
[hdfs] webhdfs에 요청을 보냈을 때 Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error 오류 처리
·
빅데이터/hdfs
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"..
[hadoop] 보안 하둡에서 비보안 하둡으로 데이터 조회
·
빅데이터/hadoop
커버로스 설정된 보안 하둡에서 비보안 하둡으로 데이터를 조회하거나, 복사 명령을 내릴 때 비보안 하둡은 인증을 처리할 필요가 없기 때문에 인증을 처리하지 않도록 설정해야 합니다. ipc.client.fallback-to-simple-auth-allowed 설정을 이용하여 인증을 처리 하지 않도록 설정합니다. hadoop fs -ls -Dipc.client.fallback-to-simple-auth-allowed=true \ hdfs://hadoop-url/
[hadoop] HDFS의 쿼터 설정 및 설정 상태 확인
·
빅데이터/hadoop
HDFS의 관리를 위해서 디렉토리별로 사용제한을 둘 수 있습니다. 파일 개수와 용량 제한을 걸 수 있습니다. 기본 상태는 무제한으로 되어 있기 습니다. HDFS에 설정된 쿼터의 상태는 count 명령을 이용해서 확인할 수 있습니다. -q, -u 옵션을 이용하여 확인할 수 있으며, -v 옵션을 추가하면 헤더 정보를 확인할 수 있습니다.
[hadoop] 커버로스 하둡에서 HDFS 접근을 위한 델리게이션 토큰 생성 방법
·
빅데이터/hadoop
커버로스 인증이 적용된 하둡에서 HDFS에 접근하기 위해서는 커버로스 인증을 통한 방식도 있지만, 항상 커버로스 인증을 받게 되면 KDC에 부하가 걸리기 때문에 델리게이션 토큰을 생성하고 이 토큰을 이용하는 방법도 있습니다. HDFS 델리게이션 토큰을 생성하는 방법은 다음과 같습니다. s3를 이용할 때도 토큰파일을 이용하면 작업을 처리할 수 있습니다.
[hdfs] ACL설정의 setfacl, getfacl 명령
·
빅데이터/hadoop
hdfs에서 파일의 소유자를 설정하는 명령은 chown 입니다. 이 명령을 이용해서 파일의 소유자와 그룹을 설정할 수 있습니다. 만약 특정 유저, 그룹에게 파일이나 디렉토리의 소유 권한을 주고 싶다면 setfacl 명령을 이용할 수 있습니다. setfacl은 같은 그룹이 아닌 사용자에게 파일의 권한을 줄 때 사용할 수 있습니다. hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html
[hadoop] 하둡 설정에서 job.xml:an attempt to override final parameter: fs.defaultFS 경고
·
빅데이터/hadoop
하둡에서 파일 시스템을 변경하거나, 어떤 설정값을 변경하고자 할 때 다음과 같은 경고가 뜨는 경우가 있다. // 경고 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 이면 ..
[hadoop] 하둡에서 스내피 압축 코덱 오류 수정 Error: java.lang.RuntimeException: native snappy library not available: SnappyCompressor has not been loaded
·
빅데이터/hadoop
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..
[hadoop] distcp 중 java.io.IOException: Error writing request body to server 오류 해결 방법
·
빅데이터/hadoop
하둡 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$..
[HDFS] Stale Stroage가 발생했을 때 처리 방법
·
빅데이터/hadoop
HDFS를 운영중 네임노드가 일시적으로 중단되었을 때 데이터노드가 블록 리포트를 네임노드에 전달하고 응답을 받지 못하면 StaleStorage가 발생합니다. 이 오류는 일시적인 오류이기 때문에 일반적으로 모르고 넘어갈 수 있습니다. 데이터노드의 블록 리포트는 기본적으로 6시간(dfs.blockreport.intervalMsec)에 한번씩 생성하기 때문에 이 오류는 네임노드가 정상이 되어도 바로 사라지지 않습니다. 이럴 때는 FS 명령을 이용해서 오류를 바로 처리할 수 있습니다.
[spark] __spark_libs__.zip does not exist 오류 해결 방법
·
빅데이터/spark
스파크쉘으르 이용하여 작업을 실행하면 작업에 필요한 라이브러리를 묶어서 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..
[hadoop] [스크랩] Line에서 하둡 클러스터를 운영하면서 발생한 장애 상황 대응 방법
·
빅데이터/hadoop
Line에서 하둡 클러스터를 운영하면서 발생한 장애 상황을 정리한 것입니다. 데이터 엔지니어링 관련 소프트웨어 장애 대응 사례 에서 상세한 내용을 확인할 수 있습니다. 짧게 요약하면 다음과 같습니다. hadoop.registry.rm.enabled=false로 설정 HDFS의 휴지통 설정을 켜놓으면 삭제 데이터가 많을 때는 HDFS에 부담이 될 수 있으므로 삭제 간격을 잘 조절 Zeepline의 버그에 의한 오류가 발생할 수 있으니 버전업, 버그 리포트를 잘 확인 하이브 테이블의 파티션이 많으면 스파크 드라이버가 힘들 수 있으니 파티션을 잘 설정 Apache Hadoop YARN 리소스 매니저 failover 발생 문제와 해결 방안 현상 하둡 클러스터에서 동작하는 애플리케이션의 수가 늘어나면서 리소스 매..
[EMR] EMR 장기간 운영시 HDFS의 edits 파일 확인 및 삭제
·
AWS/EMR
EMR을 장기간 운영하면 HDFS edits 파일이 로컬에 계속 쌓이게 됩니다. EMR은 기본적으로 세컨더리 네임노드를 실행하지 않기 때문에 HDFS를 빈번하게 사용하면 무시할 수 없는 속도로 파일이 생성됩니다. 운영중에 세컨더리네임노드를 실행하면 edits 파일을 복사해서 정리하기 때문에 10G의 edits 파일을 로컬에 복사하여 20G가 되게 되고 로컬 디스크에 용량이 충분하지 않다면 정리를 할 수 없습니다. 네임노드를 재 실행할 때 복구를 하지 않고, 신규로 생성할 것이라면 로컬의 edits 파일을 삭제 하면 됩니다. 삭제 명령은 다음과 같습니다. # 수정일자 확인후 6일전 파일은 삭제 sudo find /mnt/namenode/current/ -type f -name "edits_0*" -mtim..
[hdfs] HDFS WebHDFS REST API 사용법
·
빅데이터/hdfs
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/..
[hadoop-hdfs] HDFS 포맷 하는 방법
·
빅데이터/hdfs
HDFS를 포맷하는 방법에 대해서 알아보겠습니다. HDFS를 포맷하면 데이터가 모두 사라집니다. 반드시 백업을 해두고 진행하는 것이 좋습니다. 작업 순서 작업 순서는 AWS EMR의 HDFS를 기준으로 작성되었습니다. 각 제조사의 하둡마다 순서가 바뀔수 있지만 전체적인 맥락은 변경되지 않습니다. 서버 종료 네임노드, 데이타노드 종료를 종료합니다. 모든 노드의 네임노드 프로세스와 데이타노드 프로세스를 종료합니다. 네임노드 포맷 포맷 hdfs namenode -format 명령으로 네임노드를 포맷합니다. 네임노드를 포맷하면 dfs.namenode.name.dir경로의 fsimage와 edits 파일이 초기화 됩니다. 네임노드를 포맷하면 클러스터 ID가 신규로 생성됩니다. 이 정보는 dfs.namednoe.n..
[hadoop-hdfs] HDFS Archival Storage, SSD & Memory
·
빅데이터/hdfs
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,..
[hadoop-hdfs] HDFS의 사용 가능한 용량 확인
·
빅데이터/hadoop
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..
[EMR-HDFS] EMR의 HDFS 운영중 Non DFS Used 용량이 늘어나서 실제 이용할 데이터가 줄어드는 문제
·
빅데이터/hdfs
증상 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,..