본문 바로가기

빅데이터405

[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.
[argocd] ERRO[0000] Choose a context name from: 오류 처리 argocd 에 클러스터를 추가할 때 다음과 같은 오류가 발생하면서 클러스터가 추가 되지 않는 오류가 발생하는 경우가 있습니다. 이때는 추가하고자 하는 클러스터의 이름을 설정하고, 추가 여부를 묻는 질문에 y를 입력하면 클러스터를 추가할 수 있습니다. $ argocd cluster add --kubeconfig kubeconfig.yaml ERRO[0000] Choose a context name from: CURRENT NAME CLUSTER SERVER * k8s-server@admin k8s https://k8s-server:6443 # 클러스터 추가 명령: 명령 실행 후 [y/n] 여부를 물어 오면 y 입력이 필요 함 $ argocd cluster add --kubeconfig kubeconfig.. 2022. 11. 29.
[k8s] Ready,SchedulingDisabled 상태 수정 k8s에서 노드의 상태가 이상할 때 노드의 파드를 제거하는 drain 명령을 이용하면 노드가 SchedulingDisabled 상태로 변경됩니다. 이 후 노드의 상태를 다시 복원하고 싶을 때는 uncordon 을 이용합니다. # 이상한 상태의 노드 제거 $ kubectl drain [노드명] # 노드 상태 확인 $ kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master-1 Ready control-plane,master 189d v1.21.11 k8s-master-2 Ready control-plane,master 189d v1.21.11 k8s-master-3 Ready control-plane,master 189d v1.21.11 k8s-worker-.. 2022. 11. 29.
[k8s] harbor 와 연결하기 위해서 사용자 인증 추가 하는 방법 k8s에서 harbor와 연결할 때 사용자 인증이 필요합니다. harbor의 사용자 인증을 k8s의 secret에 추가하고, k8s의 yaml 정보에 imagePullSecret 정보로 추가해야 합니다. 먼저 harbor의 CLI secret을 확인합니다. CLI secret은 시간에 따라 변경되기 때문에 시간이 지나면 새로 받아야 합니다. 이 정보를 이용해서 k8s의 secret을 생성합니다. docker-password에 cli_secret 정보를 추가해야 합니다. kubectl create secret docker-registry k8s-private-registry \ --docker-server=harbor.io \ --docker-username=user_name \ --docker-passw.. 2022. 11. 16.
[yarn] 커버로스 적용된 nodemanager에서 Linux Container Executor reached unrecoverable exception 오류 노드매니저가 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.. 2022. 11. 16.
[yarn] InvalidResourceRequestException: Invalid resource request, requested memory < 0, or requested memory > max configured, requestedMemory=-1, maxMemory=102400 에러 하둡에서 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.. 2022. 11. 9.
[airflow 운영] 에어플로우 로그 정리 에어플로우 DAG 이 실행되면 로컬에 log가 쌓이게 됩니다. 분/시간 단위로 로그가 쌓이게 되면 시간이 지나면 문제가 발생하게 됩니다. 에어플로우를 운영할 때는 로컬에 쌓이게 된는 DAG 로그를 정리하는 것도 중요합니다. 따라서 주기적으로 에어플로우 로그를 삭제할 수 있는 스크립트를 크론잡에 설정하거나, 주기적으로 실행하여야 합니다. 2022. 10. 25.
[zookeeper] ruok is not executed because it is not in the whitelist. 오류 처리 주키퍼의 동작을 확인하는 ruok 명령을 이용하라 때 다음과 같은 응답이 오는 경우가 있습니다. 이는 주키퍼가 기본적으로 해당 명령에 응답하지 않도록 되어 있어서 설정에서 해당 명령을 이용할 수 있도록 변경해주어야 합니다. ruok is not executed because it is not in the whitelist. zoo.cfg 설정 변경 zoo.cfg 파일에 다음 설정을 추가하고 실행합니다. 4lw.commands.whitelist=stat, ruok, conf, isro 2022. 9. 20.
[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.
[flink] flink 실행 중 Caused by: org.apache.flink.configuration.IllegalConfigurationException: Either required fine-grained memory 오류 플링크를 이용한 작업 중 다음과 같은 오류가 발생하는 경우가 있습니다. org.apache.flink.configuration.IllegalConfigurationException: JobManager memory configuration failed: Either required fine-grained memory (jobmanager.memory.heap.size), or Total Flink Memory size (Key: 'jobmanager.memory.flink.size' , default: null (fallback keys: [])), or Total Process Memory size (Key: 'jobmanager.memory.process.size' , default: null (fa.. 2022. 8. 19.
[hive] 하이브 3.1.3 버전에서 java.lang.ClassCastException: org.apache.hadoop.hive.metastore.api.StringColumnStatsData cannot be cast to org.apache.hadoop.hive.metastore.columnstats.cache.StringColumnStatsDataInspector 오류 Hive 3.1.3 테이블에 데이터를 쓰고, 칼럼 stat 을 계산할 때 다음과 같은 오류가 발생하였습니다. 2022-08-16T16:25:52,536 ERROR [pool-9-thread-44] metastore.RetryingHMSHandler: java.lang.ClassCastException: org.apache.hadoop.hive.metastore.api.StringColumnStatsData cannot be cast to org.apache.hadoop.hive.metastore.columnstats.cache.StringColumnStatsDataInspector at org.apache.hadoop.hive.metastore.columnstats.merge.StringColumnSta.. 2022. 8. 19.
[hbase] hbase 2.4.13 실행 중 java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.hdfs.protocol.HdfsFileStatus, but class was expected 오류 HBase 2.4.13 을 hadoop 3와 연동하는 중에 해당 오류가 발생하였습니다. java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.hdfs.protocol.HdfsFileStatus, but class was expected 2022-08-12 11:17:02,520 WARN [RS-EventLoopGroup-1-2] concurrent.DefaultPromise: An exception was thrown by org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper$4.operationComplete() java.lang.IllegalArgume.. 2022. 8. 19.
[oozie] 우지 워크플로우 작업이 PREP 상태에서 대기 하는 경우 우지 워크플로우 작업을 돌렸을 때 PREP 상태로 계속 대기하는 경우가 있습니다. 로거 설정이 INFO 상태로 우지를 실행하면 이 경우 로그가 출력되지 않아서 원인을 확인하기 힘든데 보통 리소스 매니저 설정이 제대로 되어 있지 않은 경우 문제가 발생합니다. 워크플로우의 resource-manager 설정을 확인 리소므 매니저가 정상적으로 동작하는지 확인 노드 개수, 동작 상태 등 yarn접근을 위한 port 가 정상적인지 확인. hadoop2는 8050 hadoop3는 8032가 기본 포트 2022. 8. 18.
[hive] hive standalone metastore 에서 Drop Partition 처리시 Caused by: java.lang.UnsupportedOperationException 오류가 발생하는 경우 하이브 스탠드얼론 메타스토어(apache-hive-metastore-3.1.2-bin) 에서 파티션 DROP 시점에 다음과 같은 오류가 발생하였습니다. Caused by: java.lang.UnsupportedOperationException at org.apache.hadoop.hive.metastore.DefaultPartitionExpressionProxy.convertExprToFilter(DefaultPartitionExpressionProxy.java:34) at org.apache.hadoop.hive.metastore.PartFilterExprUtil.makeExpressionTree(PartFilterExprUtil.java:50) at org.apache.hadoop.hive.metas.. 2022. 8. 2.
[airflow] 에어플로우 설정 환경 변수로 설정 에어플로우는 airflow.cfg 에 설정을 할 수도 있지만 실행전에 export 로 환경변수로 설정하면 해당 정보를 실행 시점에 읽어서 변수에 반영합니다. 주의할 점은 버전에 따라 문서의 환경변수가 적용되지 않을 수도 있습니다. 저는 2.2.5 버전의 에어플로우를 사용하는데 문서에는 AIRFLOW__DATABASE__SQL_ALCHEMY_CONN 로 되어 있지만, AIRFLOW__CORE__SQL_ALCHEMY_CONN 으로 설정해야 설정이 적용되었습니다. 이는 airflow.cfg 설정파일을 확인해 보면 [core] 아래 sql_alchemy_conn 이 있는 것을 확인할 수 있습니다. 에어플로우는 설정 파일에 적용된 순서에 따라 파싱을 진행하기 때문에 airflow.cfg 파일을 확인하면 설정명을 .. 2022. 7. 21.
[redis] Error accepting a client connection: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca 오류 redis에 TLS 설정을 적용하는데 서버에서 다음과 같은 오류가 계속 발생하였습니다. Error accepting a client connection: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca 원인 원인은 redis 서버에 적용된 인증서가 올바르지 않아서 CA 인증서에 오류가 있어서 였습니다. 저는 crt 타입의 인증서를 이용하여 CA 인증서가 빠져 있었습니다. 그래서 redis 서버가 실행되고, TLS가 적용은 되었는데 CA 인증을 받지 못하여 오류가 발생하였습니다. pem 타입의 인증서를 신규로 발급받고, CA 인증서까지 적용하여 문제를 해결할 수 있었습니다. 해결방법 CA 인증서를 확인합니다. 다음 명령어로 확인했을 때.. 2022. 7. 21.
[helm] helom chart 사용중 Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress 오류 처리 helm chart 사용중 다음과 같은 오류가 발생하는 경우가 있습니다. Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress 확인 이 경우 helm history 명령으로 이전에 작업한 내역을 확인하면 작업이 완료되지 않고, 진행중인 것을 확인할 수 있습니다. $ helm history kbp-airflow --namespace kbp-cbt REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION 6 Tue Apr 5 18:29:05 2022 superseded airflow-8.5.2 2.1.2 Upgrade complete 7 Wed Apr 6 09:43:58 20.. 2022. 7. 18.
[redis] redis 에 TLS 적용후 airflow 브로커 연결 redis에 tls를 적용하기 위해서는 빌드 시점에 TLS 옵션을 적용해야 합니다. 인증서에 설정된 CA 정보에 따라서 서버 인증서와 CA 인증서를 구분해서 적용해야 할 수도 있습니다. airflow의 브로커 에어플로우의 브로커로 redis를 사용하고, 여기에 tls 를 적용하기 위해서는 에어플로우 설정을 다음과 같이 사용합니다. 참고로 브로커 URL에 사용하는 키의 암호를 제거해 주면 더 편하게 사용할 수 있습니다. 2022. 7. 18.
[hive] hiveserver2 SSL 적용 및 비라인을 이용한 연결 방법 하이브 서버2에 SSL을 적용하는 방법은 하이브서버2와 하입브서버2의 웹서버에 SSL을 적용할 수 있습니다. 주의할 점은 SSL을 적용하면 http를 이용한 접근만 가능합니다. binary 포트는 사용할 수 없습니다. http로 접근할 때 http path도 정확하게 지정해야 합니다. 하이브 서버2 연결 비라인을 이용해서 SSL 적용된 하이브 서버2에 접근할 때는 다음과 같이 접근합니다. 하이브 서버2 관련 설정 https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-hive.server2.use.SSL Configuration Properties - Apache Hive - Apach.. 2022. 7. 15.
[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.
[hue] hue 빌드 시 파이썬 pip 호출에 프록시를 이용해야 하는 경우 Hue 4.10.0 버전을 빌드 할 때 make 명령을 실행하면 내부적으로 pip를 호출하여 필요한 파일을 설치하는데 프록시 설정으로 인해서 Connection Time Out이 발생하면서 빌드에 실패하는 경우가 있습니다. 이때는 make 명령을 사용하기전에 pip 프록시가 사용하는 프록시 설정을 알려준 후 사용하면 됩니다. export PYTHON_VER=python2.7 sudo http_proxy=http://http-proxy:8080 https_proxy=http://http-proxy:8080 PREFIX=/opt make install 2022. 4. 23.
[flink] flink를 yarn session 모드로 동작할 때 작업이 ACCEPTED 상태로 대기 할 때 해결 방법 flink를 YARN에서 동작할 때 작업이 ACCEPTED 상태로 대기하면서 다음과 같은 로그가 출력되는 경우가 있습니다. 2022-04-21 16:40:32,601 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Deployment took more than 60 seconds. Please check if the requested resources are available in the YARN cluster 2022-04-21 16:40:32,853 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Deployment took more than 60 seconds. Please check if the req.. 2022. 4. 21.
[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.
[HBase] java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures 오류 처리 하둡 2.10.1 버전에 HBase 1.7.1 버전을 설치할 때 다음과 같은 오류가 발생하였습니다. 2022-04-20 10:37:11,640 FATAL [bigdata-hadoop-master-1:16000.activeMasterManager] master.HMaster: Failed to become active master java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures, but the underlying filesystem does not support doing so. Please check the config va.. 2022. 4. 20.
[airflow] Xcom을 이용하여 DAG 간 데이터 전달 에어플로우에서 DAG 간 데이터를 전달하는 방법으로 xcom을 이용할 수 있습니다. context의 task_instance 객체를 이용해서 키-밸류 형태로 데이터를 전달할 수 있습니다. 다음은 데이터를 전달하여 branch를 처리하는 방법 예제입니다. 2022. 4. 3.
[spark] pyspark 의 파이썬 패스 설정 pyspark 를 실행하는 서버와 실제 작업을 실행하는 YARN 클러스터의 파이썬 패스가 다를 경우 실행하는 파이썬 패스(PYSPARK_PYTHON)를 드라이버, 워커, 실행서버 별로 설정을 해야 합니다. 파이썬 패스 설정 2022. 3. 7.
[ruby] Can't convert Range in to Integer (Ruby on Rails) 오류 처리 방법 루비는 버전에 따라 range값을 int 로 변경할 때 오류가 발생합니다. 1.9 버전은 간단하게 변경할 수 있지만, 1.8 버전에서는 오류가 발생합니다. 버전에 따라 다르게 처리해야 합니다. 2022. 2. 25.