hbase 1.4.13버전과 Hadoop 2.10.0 버전을 이용하는 환경에서 ExportSnapshot 처리중 다음과 같은 오류가 발생했습니다. Exception in thread "main" java.lang.IllegalAccessError: tried to access method org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider.getProxyInternal()Ljava/lang/Object; from class org.apache.hadoop.yarn.client.RequestHedgingRMFailoverProxyProvider at org.apache.hadoop.yarn.client.RequestHedgingRMFailove..
커버로스 설정된 보안 하둡에서 비보안 하둡으로 데이터를 조회하거나, 복사 명령을 내릴 때 비보안 하둡은 인증을 처리할 필요가 없기 때문에 인증을 처리하지 않도록 설정해야 합니다. ipc.client.fallback-to-simple-auth-allowed 설정을 이용하여 인증을 처리 하지 않도록 설정합니다. hadoop fs -ls -Dipc.client.fallback-to-simple-auth-allowed=true \ hdfs://hadoop-url/
하이브에서 작업 엔진을 이용하는 중에 스파크 익스큐터의 메모리가 부족하면 이런 오류가 발생할 수 있습니다. 하이브 설정에서 스파크 익스큐터의 메모리를 설정하면 됩니다. 이 경우 스파크 익스큐터의 메모리가 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..
하이브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..
하둡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/ 에 복사
# 예제임 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..
우분투에 그라파나를 설치 하는 방법은 다음과 같습니다. 설치 및 실행후 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
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..
스파크에서 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..
하둡 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$..
하이브를 이용해서 데이터를 처리할 때 파일의 개수와 사이즈가 중요합니다. 동일한 쿼리에서도 설정에 따라 속도차이가 많이 날 수 있습니다. SELECT A, count(*) FROM tbl GROUP BY A ORDER BY A; 칼럼 A로 파티셔닝 파티션당 60 여개의 ORC 파일 파일당 10~20KB 이 상황에서 TEZ엔진 기본설정으로 쿼리를 실행하면 2148초가 걸립니다. 파일의 사이즈가 작아서 매퍼가 작게 생성되지만, ORC 파일의 특성상 하나의 파일에 많은 데이터가 들어가게 되고, 이 데이터를 모두 처리하는데 많은 메모리가 소모되기 때문입니다. 이런 경우 TEZ엔진의 그룹핑 사이즈를 조절하여 매퍼의 개수를 늘려서, 하나의 매퍼가 처리하는 데이터를 줄이면 속도가 빨라지는 것을 확인할 수 있습니다. ..
HBase 작업 중 Master is initializing 오류가 발생하는 경우가 있습니다. 마스터가 초기화 중일 때 리전 서버가 연결되지 않았을 때 리전서버가 마스터에 연결되지 않았을 때 /etc/hosts 정보가 설정되지 않았을 HBase는 마스터와 리전서버간에 모든 서버의 정보를 각 노드가 알고 있어야 함. 리버스 DNS가 처리되지 않는 환경이라면 /etc/hosts에 정보가 있어야 함 블록 정보를 아직 처리중 일 때 데이터가 깨졌을 때 HDFS의 데이터를 삭제하고 재부팅 주키퍼의 hbase 정보를 삭제하고 재부팅
hbase는 기본적으로 ACL을 설정하지 않습니다. ACL을 설정하지 않으면 관련 명령어를 실행할 때 ERROR: DISABLED: Security features are not available 오류가 발생합니다. hbase 에서 ACL을 적용하기 위해서는 hbase-site.xml에 다음 설정을 추가합니다. 그리고 hbase를 재부팅 하면 됩니다. hbase에 ACL을 적용하면 접근할 수 있는 테이블만 보이고, 권한이 있는 네임스페이스에 테이블을 생성할 수 있습니다. HBase ACL 명령어 ACL관련 명령어는 다음과 같습니다.
2021-01-19 11:41:00,345 - ERROR [main:QuorumPeerMain@89] - Unexpected exception, exiting abnormally java.io.IOException: Could not configure server because SASL configuration did not allow the ZooKeeper server to authenticate itself properly: javax.security.auth.login.LoginException: Message stream modified (41) at org.apache.zookeeper.server.ServerCnxnFactory.configureSaslLogin(ServerCnxnFactor..
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 명령을 이용해서 오류를 바로 처리할 수 있습니다.
hue에서 too many open sessions. stop a running query before starting a new one 오류가 발생하는 경우 일반적인 경우 사용자가 많아서 설정된 세션 개수를 초과해서 발생합니다. 이런 경우 휴 설정의 max_number_of_sessions 값을 늘려주면 됩니다. 하지만 저의 경우 휴를 설정하면서 휴의 실행, 종료를 반복하다보니 정상적으로 종료되지 못한 세션이 존재하여 발생하였습니다. 이럴 때는 휴의 데이터베이스에서 세션정보를 찾아서 지워주면 됩니다. 아래와 같이 beeswax_session 테이블에 이전에 테스트할 때 생성한 세션의 정보가 살아 있어서 오류가 발생하여 모든 정보를 지우고 세션을 새로 생성하여 문제를 해결하였습니다. mysql> sele..
주키퍼의 슈퍼유저가 되면 모든 노드의 ACL을 설정할 수 있습니다. 슈퍼 유저가 되기 위해서는 다음의 과정을 거쳐야 합니다. DigestAuthenticationProvider를 실행하여 해쉬값을 확인 DigestAuthenticationProvider를 먼저 실행하여 암호에 대한 해쉬값을 확인합니다. export ZK_CLASSPATH=/etc/zookeeper/conf/:/usr/hdp/current/zookeeper-server/lib/*:/usr/hdp/current/zookeeper-server/* java -cp $ZK_CLASSPATH org.apache.zookeeper.server.auth.DigestAuthenticationProvider super:super123 OUTPUT: sup..
- Total
- Today
- Yesterday
- HIVE
- java
- 다이나믹
- hbase
- 백준
- HDFS
- airflow
- mysql
- 하둡
- Tez
- 알고리즘
- ubuntu
- 정올
- 하이브
- Python
- build
- emr
- SQL
- nodejs
- oozie
- error
- AWS
- yarn
- S3
- 오류
- SPARK
- bash
- 파이썬
- Linux
- Hadoop
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |