본문 바로가기

전체 글1111

[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.
[maven] 메이븐 빌드 중 Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.7.2:protoc (compile-protoc) 오류가 발생 메이븐을 이용하여 오픈 소스를 빌드하는 중 protoc 설치되어 있지 않아서 다음과 같은 오류가 발생할 수 있습니다. 이때는 brew를 이용하여 protoc를 설치 하면 됩니다. Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.7.2:protoc (compile-protoc) protoc 설치 protoc를 설치할 때는 protobuf를 설치하면 됩니다. brew install protobuf 그런데 protoc를 설치하고도 다음과 같은 오류가 발생하면서 특정 버전이 필요할 때가 있습니다. protoc version is 'libprotoc 3.4.0', expected version is '2.5.0' protoc 2.5.0 버전 설치 .. 2021. 6. 4.
[hive] hive의 spark 엔진에서 Execution Error, return code 30041 오류 하이브에서 spark 엔진으로 작업할 때 Execution Error, return code 30041 오류가 발생하면 이는 스파크 엔진의 익스큐터가 실행 될 때 메모리가 부족해서 발생하거나 코어 개수가 부족할 때 발생합니다. 설정을 이용해 스파크 설정을 추가합니다. 2021. 6. 1.
[hive] hive on spark 작업 중 create Spark client due to invalid resource request: Required executor memory (9671), overhead (1706 MB), and PySpark memory (0 MB) is above the max threshold 오류 하이브에서 작업 엔진을 이용하는 중에 스파크 익스큐터의 메모리가 부족하면 이런 오류가 발생할 수 있습니다. 하이브 설정에서 스파크 익스큐터의 메모리를 설정하면 됩니다. 이 경우 스파크 익스큐터의 메모리가 9671로 설정되어 있어서 부족하여 오류가 발생합니다. 따라서 스파크 드라이버와 익스큐터의 메모리를 줄여주면 됩니다. 또는 yarn 설정에서 컨테이너에 메모리를 설정할 수 있는 메모리를 늘려주면 됩니다. Launching Job 1 out of 1 In order to change the average load for a reducer (in bytes): set hive.exec.reducers.bytes.per.reducer= In order to limit the maximum number of r.. 2021. 5. 30.
[hive] hive3의 mr 엔진에서 java.lang.IncompatibleClassChangeError 오류 처리 하이브3에서 mr 엔진을 이용할 때 java.lang.IncompatibleClassChangeError 오류가 발생할 수 있습니다. 라이브러리가 맞지 않아서 발생하는 문제입니다. jersey-json-1.19.jar 라이브러리를 하이브 홈으로 복사합니다. jersey-json 라이브러리를 확인 {HADOOP_HOME}/share/hadoop/common/lib/jersey-json-1.19.jar {HIVE_HOME}/lib 로 복사 hive (default)> show databases; FAILED: Hive Internal Error: java.lang.IncompatibleClassChangeError(com.sun.jersey.json.impl.provider.entity.JSONRootEle.. 2021. 5. 27.
[hive] hive3에서 TEZ 연동시 java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument 오류 처리 하둡3, 하이브3에서 TEZ를 연동할 때 라이브러리가 맞지않아서 NoSuchMethodError 가 발생합니다. 하둡3는 guava가 27버전이고, 하이브3는 guava가 19버전이라서 발생합니다. 따라서 라이브러리를 맞춰주면 문제가 해결됩니다. hadoop 3.2.1 guava-27.0 hive 3.1.2 guava-19.0 해결방법 {HIVE_HOME}/lib/guava-19.0.jar 삭제 {HADOOP_HOME}/share/hadoop/common/lib/guava-27.0-jre.jar 를 {HIVE_HOME}/lib/ 에 복사 2021. 5. 27.
[python] 우분투에 파이썬 3.7 설치 우분투(ubuntu)에 파이썬 특정 버전을 설치 하는 방법입니다. 우분투는 apt를 이용해 파이썬을 설치할 수 있습니다. 하지만 특정 버전을 설치 하기 위해서는 파이썬 홈페이지에서 binary 파일을 다운받아서 빌드하면 됩니다. 2021. 5. 27.
[ansible] shell 모듈과 nohup을 이용한 하둡, 하이브 daemon 프로세스 실행 앤서블을 이용해서 하둡, 하이브 데몬을 실행할 때 nohup을 이용하지 않으면 프로세스가 정상적으로 실행되지 않습니다. 앤서블이 서버에 연결 후 프로세스를 실행하고, 연결 종료 후 프로세스가 함께 종료됩니다. 따라서 nohup을 이용하지 않으면 프로세스가 실행되지 않고, 종료됩니다. 기본적으로 shell 모듈은 서비스를 실행하기 위해 디자인된 모듈이 아니기 때문입니다. 서비스를 실행할 때는 service 모듈을 이용하는 것이 좋습니다. 이 예제는 shell 모듈을 이용해야 하는 경우에 사용합니다. 2021. 5. 26.
[hadoop] HDFS의 쿼터 설정 및 설정 상태 확인 HDFS의 관리를 위해서 디렉토리별로 사용제한을 둘 수 있습니다. 파일 개수와 용량 제한을 걸 수 있습니다. 기본 상태는 무제한으로 되어 있기 습니다. HDFS에 설정된 쿼터의 상태는 count 명령을 이용해서 확인할 수 있습니다. -q, -u 옵션을 이용하여 확인할 수 있으며, -v 옵션을 추가하면 헤더 정보를 확인할 수 있습니다. 2021. 5. 20.
[hadoop] 우분투에서 snappy 라이브러리를 설치하고, hadoop에서 인식 체크 우분투 18.04 버전에는 기본적으로 snappy 라이브러리가 없기 때문에 다음과 같은 방법으로 설치하고, 하둡에서 인식하는지 체크할 수 있습니다. 2021. 5. 6.
[GCP-Dataproc] Dataproc을 생성할 때 Insufficient 'CPUS' quota 오류 해결 방법 GCP에서 Dataproc을 생성할 때 사용할 있는 Quota를 넘어 섰다고 하면서 작업이 진행되지 않을 때가 있습니다. 이는 선택한 프로젝트의 인스턴스 생성 할당량을 넘어 선 경우 입니다. 기존에 생성한 인스턴스를 삭제하거나, 할당량을 늘려주면 됩니다. 할당량은 IAM 및 관리자 > 할당량에서 수정할 수 있습니다. 2021. 4. 20.
[AWS-EMR] EMR 생성중 The requested instance type c4.2xlarge is not supported in the requested availability zone. 오류 AWS EMR을 생성하는 중 요청한 인스턴스 타입이 지원하지 않는 다는 오류가 발생하느 경우가 있습니다. 이럴때는 EC2 > Instance Types 에서 사용하고자 하는 인스턴스 타입을 선택하고 Networking 항목에서 생성할 수 있는 네트워크 대역을 확인하여 해당 대역을 선택하면 생성할 수 있습니다. 여기서 생성 가능한 영역을 확인하고 EMR을 생성할 때 고급 옵션에서 단계2 하드웨어 > Networking > EC2 서브넷 에서 사용할 수 있는 네트워크 영역을 선택하면 됩니다. 2021. 4. 20.
[hadoop] 커버로스 하둡에서 HDFS 접근을 위한 델리게이션 토큰 생성 방법 커버로스 인증이 적용된 하둡에서 HDFS에 접근하기 위해서는 커버로스 인증을 통한 방식도 있지만, 항상 커버로스 인증을 받게 되면 KDC에 부하가 걸리기 때문에 델리게이션 토큰을 생성하고 이 토큰을 이용하는 방법도 있습니다. HDFS 델리게이션 토큰을 생성하는 방법은 다음과 같습니다. s3를 이용할 때도 토큰파일을 이용하면 작업을 처리할 수 있습니다. 2021. 4. 19.
[hadoop] 맵리듀스 작업 중 Sent signal OUTPUT_THREAD_DUMP 오류 확인 # 예제임 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.. 2021. 4. 19.
[grafana] 우분투(ubuntu)에 그라파나(grafana) 설치 우분투에 그라파나를 설치 하는 방법은 다음과 같습니다. 설치 및 실행후 3000번 포트로 접속하면 됩니다. 기본 포트는 3000번 입니다. 최신 버전 다운로드는 다음 위치에서 최신 버전을 확인하면 됩니다. https://grafana.com/grafana/download/9.2.10 Download Grafana | Grafana Labs Overview of how to download and install different versions of Grafana on different operating systems. grafana.com 2021. 4. 12.
[mariadb] mariadb the server time zone value 'kst' is unrecognized or represents more than one time zone 오류 마리아 DB 를 설치하고, 접속할 때 이런 오류가 발생하는 경우가 있습니다. 이는 타임존이 설정되지 않아서 발생하능 오류입니다. mariadb the server time zone value 'kst' is unrecognized or represents more than one time zone 이때는 마리아 DB 설정에 타임존을 추가합니다. /etc/my.cnf 설정에 다음의 값을 추가합니다. [mysqld] default-time-zone='+9:00' 2021. 4. 12.
[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] hadoop에서 openstack-swift 파일 시스템을 연동하기 위한 hadoop-openstack-swifta 하둡에서 오픈 스택의 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.. 2021. 3. 29.
[bash] ssh로 원격 서버에 명령어 실행시 환경 변수를 읽지 않는 문제 해결 ssh 로 원격 서버에 접속하여 명령을 실행할 수 있습니다. echo 같은 기본 명령어는 잘 실행되지만 하지만 .bashrc의 설정에 따라서 원격 서버의 .bashrc에 설정된 PATH 정보를 확인하지 않고 실행될 수 있습니다. 이럴때는 해당 내용을 수정하여 주면 됩니다. 설정 위치는 다음과 같습니다. /etc/bash.bashrc ~/.bashrc 2021. 3. 29.
[ubuntu] apt-get 프록시(proxy) 설정 우분투의 apt-get의 프록시 설정은 /etc/apt/apt.conf 파일에 프록시 정보를 설정합니다. 파일이 없으면 직접 만들면 됩니다. 2021. 3. 28.
[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.
[bash] crontab을 echo로 일괄로 설정하는 방법 크론탭을 설정할 때 여러개의 노드에 한번에 설정해야 하는 경우가 있습니다. 이럴 때는 크론탭이 설정되는 파일에 바로 입력해 주면 됩니다. CentOS기준으로 해당 파일의 위치는 /var/spool/cront/유저명 파일에 내용이 저장됩니다. 해당 위치에 정보를 설정하면 됩니다. 2021. 3. 26.
[spark] spark에서 snappy 라이브러리를 찾지 못할때 수정 방법 : java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy 스파크에서 snappy 압축 방식으로 파일을 쓸 때 라이브러를 가져오지 못할 때 다음과 같은 오류가 발생합니다 Caused by: java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy()Z at org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy(Native Method) at org.apache.hadoop.io.compress.SnappyCodec.checkNativeCodeLoaded(SnappyCodec.java:63) at org.apache.hadoop.io.compress.SnappyCodec.getCompressorType(S.. 2021. 3. 18.
[pyspark] pyspark 실행시 python: command not found 오류 pyspark 쉘을 실행하는 시점에 python 커맨드를 찾지 못한다는 오류가 발생하면 원인은 두 가지로 생각할 수 있습니다. 파이썬을 설치 하지 않음 파이썬을 설치 한다. 파이썬을 설치 했지만 python 명령이 아니라 python3나 python3.7 등의 버전명으로 명령어가 생성 PYSPARK_PYTHON 환경변수를 설정 2021. 3. 18.
[기타] JD-GUI에서 No suitable Java version found on your system! 오류가 발생할 때 자바 디컴파일러 JD-GUI에서 다음오류가 발생해서 해결 방법을 검색하다가 Git에서 찾아서 공유합니다. No suitable Java version found on your system! This program requires Java 1.8+ Make sure you install the required Java version. github.com/java-decompiler/jd-gui/issues/332 BigSur ERROR launching 'JD-GUI' · Issue #332 · java-decompiler/jd-gui ERROR launching 'JD-GUI' No suitable Java version found on your system! This program requires Ja.. 2021. 3. 11.
[hadoop] distcp 중 Failed to renew token: Kind: SWEBHDFS delegation 오류 해결 방법 하둡 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... 2021. 3. 7.
[hadoop] yarn 커패시티 스케줄러의 큐 매핑 하둡 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 2021. 3. 4.
[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.
[kerberos] Clock skew too great 오류 확인 커버러스 티켓 사용중 발생하는 다음의 오류는 클라이언트 서버와 타켓 서버의 시간 동기화가 이루어 지지 않을 때 발생합니다. date 명령으로 서버의 시간을 확인해 보면 시간이 다른 것을 알 수 있습니다. 시간 동기화를 해주면 문제를 해결할 수 있습니다. Caused by: KrbException: Clock skew too great (37) - PROCESS_TGS at sun.security.krb5.KrbTgsRep.(KrbTgsRep.java:73) 2021. 2. 18.