본문 바로가기

빅데이터405

[atlas] 아파치 아틀라스(apache atlas) 빌드 및 실행 아파치 아틀라스는 데이터 카탈로그 플랫폼으로 사내의 데이터를 모아서 보여주는 역할을 합니다. 데이터가 작을 때는 사용자가 데이터의 위치를 기억하고 사용하는 것이 가능하지만, 데이터가 커지고 데이터를 수집하는 주체가 늘어나면 모든 데이터르 기억하고 이용하는 것이 불가능해지며, 여기 저기 데이터가 난립하게 됩니다. 이럴 때 필요한 것이 데이터 카탈로그(Data Catalog)입니다. 사내 hive, hbase, hdfs, sqoop 등에 저장된 데이터를 한 곳에 모아서 데이터의 계보, 칼럼의 정보등을 보여줍니다.이를 제공하는 것이 아틀라스입니다. 아틀라스 빌드 아틀라스는 인텔리j를 이용하여 편리하게 빌드할 수 있습니다. 아틀라스 소스 코드를 다운로드 git 등에서 소스코드를 다운로드 합니다. 저는 atlas.. 2021. 8. 21.
[hbase] 커버로스 적용된 hbase에서 발생하는 No common protection layer between client and server 오류 커버로스 적용 된 HBase 에서 다음과 같은 오류가 발생하는 경우가 있습니다. 이 오류는 hbase-site.xml의 hbase.rpc.protection 설정이 다를때 발생할 수 있습니다. hbase는 authentication으로 설정되고, 사용자는 privacy 설정오르 접근 할 때 발생할 수 있습니다. 즉 서버의 hbase.rpc.protection 설정과 클라이언트의 hbase.rpc.protection 설정을 동일하게 해주면 됩니다. hbase.rpc.protection authentication 채널이 암호화되고 인증, 무결성 및 개인 정보 보호 기능이 활성화됩니다 integrity 채널이 암호화되지 않고 인증 및 무결성 기능만 활성화됩니다. privacy 채널이 암호화되지 않고 패킷만 인.. 2021. 8. 19.
[ranger] 아파치 레인저 빌드 및 실행 하기 아파치 레인저는 하둡 에코 시스템의 각종 컴포넌트의 오딧을 처리하고, 권한 관리를 위한 역할을 처리합니다. 레인저를 빌드하고, 실행하는 방법을 알아보겠습니다. 레인저 빌드 intellij에서 레인저를 빌드하는 방법은 다음과 같습니다. 레인저 소스를 다운로드 한다. File > New > Project From Existing Source 로 소스를 임포트 소스 코드를 모두 로드 할 때 까지 대기 한다. 메이븐 탭의 Skip Tests Mode 를 켜고, package를 진행한다. ranger > Lifecycle > package 를 클릭. 라이브러리 다운로드로 인해서 중간에 오류가 발생할 수 있어서, 라이브러리 다운로드 상태를 잘 보아야 한다. 모든 빌드가 종료되면 target 폴더에 tar.gz 파일.. 2021. 8. 19.
[hbase] org.hbase.async.RemoteException: Call queue is full on hbase,16020,1623386114491, too many items queued ? 오류 발생시 설정 hbase를 운영하면서 call queue is full on 오류가 발생하는 경우가 있습니다. 이 오류가 발생하면 리전서버의 핸들러 개수를 늘리거나, callqueue factor를 조절하여 문제를 해결할 수 있습니다. hbase-site.xml 설정 hbase.regionserver.handler.count 리전서버의 데이터 처리를 위해 생성하는 스레드 수 스레드는 CPU의 2배로 설정하는 것이 적당 함 hbase.ipc.server.callqueue.handler.factor callqueue를 사용하는 핸들러들이 몇개의 큐를 사용할 지 선언 0은 모든 핸들러가 큐를 공유 1은 핸들러에 큐가 따로 있음 0.5는 2개의 핸들러가 큐를 공유( 1개 큐 / 2개 핸들러) 2021. 8. 17.
[hbase2] HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_USER: bad substitution 오류 hbase 2.3.5를 설정하면서 실행에는 문제가 없지만 다음과 같은 경고가 출력되었습니다. ++ /opt/hadoop/bin/hadoop org.apache.hadoop.hbase.util.GetJavaProperty java.library.path /opt/hadoop-3.2.1/bin/../libexec/hadoop-functions.sh: line 2366: HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_USER: bad substitution /opt/hadoop-3.2.1/bin/../libexec/hadoop-functions.sh: line 2461: HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_.. 2021. 8. 11.
[avro] python avro api 에서 The datum XX is not an example of the schema 오류 python을 이용한 avro 기본 api 에서 The datum XX is not an example of the schema 오류가 발생하는 경우가 있습니다. Traceback (most recent call last): File "test.py", line 77, in bytes_data = quickstart_schema.encode(sample_data) File "test.py", line 41, in encode self._writer.write(data, encoder) File "/home/deploy/.local/lib/python2.7/site-packages/avro/io.py", line 979, in write raise AvroTypeException(self.writers_s.. 2021. 7. 13.
[hue] hue 파일 브라우저에서 'ascii' codec can't encode characters in position 10-11: ordinal not in range(128) 오류 휴의 파일 브라우저를 처음 실행할 때 500번 오류와 함께 'ascii' 오류가 발생하는 경우가 있습니다. 이는 휴의 파일 브라우저가 REST api 로 HDFS에 데이터 조회 명령을 보냈을 때 doas 로 조회한 사용자의 홈 디렉토리가 생성되어 있지 않을 경우 발생합니다. HDFS에 디렉토리를 생성해 주면 됩니다. # 발생 오류 [09/Jul/2021 20:20:20 +0000] resource DEBUG GET None http://hadoop-host:50070/webhdfs/v1//user/admin?op=GETFILESTATUS&user.name=hue&doas=admin returned in 12ms 0 0 [09/Jul/2021 20:20:20 +0000] middleware INFO Pro.. 2021. 7. 12.
[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.
[avro] 파이썬을 이용한 avro 예제 파이썬을 이용한 avro를 이용하기 전에 pip를 이용해서 먼저 설치해야 합니다. pip3 install avro 파이썬을 이용한 avro 예제는 다음과 같이 구현합니다. 오류 처리 파이썬2에서는 다음과 같은 오류가 발생할 수 있습니다. 파이썬 3로 실행하면 다음 오류는 해결됩니다. Traceback (most recent call last): File "a.py", line 8, in writer.append({"name": "Alyssa", "favorite_number": 256}) File "/home/deploy/.local/lib/python2.7/site-packages/avro/datafile.py", line 227, in append self.datum_writer.write(datum.. 2021. 7. 7.
[hbase] hbase를 이용한 데이터 export 중 No registered coprocessor service found for name AuthenticationService in region hbase:meta,,1 오류 커버로스(kerberos) 설정된 hbase에 export 명령을 실행할 때는 hbase-site.xml에 토큰을 이용한 인증 설정이 있어야 hbase가 처리할 수 있습니다. 다음 오류가 발생하면 hbase-site.xml에 설정을 추가하고 hbase를 재부팅합니다. Caused by: org.apache.hadoop.hbase.exceptions.UnknownProtocolException: org.apache.hadoop.hbase.exceptions.UnknownProtocolException: No registered coprocessor service found for name AuthenticationService in region hbase:meta,,1 at org.apache.hadoop.. 2021. 7. 2.
[hbase] desc 명령으로 hbase 테이블 생성하는 방법 hbase에는 생성된 테이블 create 문을 확인할 수 있는 일반 RDB나 hive의 show create table 같은 명령이 없습니다. hbase는 desc 명령을 이용해서 테이블의 정보를 확인하고, 이 정보를 이용해서 테이블을 생성해야 합니다. 2021. 7. 1.
[ES] ES 설치 중 cluster_uuid가 _na_로 나타날 때 엘라스틱서치를 구성하고 실행한 후, 클러스터 정보를 확인할 때 cluster_uuid가 _na_로 표현되는 경우가 있습니다. { "name" : "es-cluster", "cluster_name" : "es", "cluster_uuid" : "_na_", "version" : { "number" : "7.11.1", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "ff17057114c2199c9c1bbecc727003a907c0db7a", "build_date" : "2021-02-15T13:44:09.394032Z", "build_snapshot" : false, "lucene_version" : "8.7.0", "minimum_wi.. 2021. 6. 29.
[빅데이터] LDAP 설치 및 기본 설정 우분투에서 LDAP을 설치 하고, 기본 설정을 처리하는 방법을 알아보겠습니다. slapd는 stand-alone ldap로 ldap 서버이고, ldap-utils는 ldap 쿼리 명령 실행을 위한 도구입니다. $ sudo apt-get -y install slapd ldap-utils LDAP 설치 중 다음과 같은 암호 설정화면이 나오는데, 이는 관리자용 암호 이기 때문에 잘 기억해 두어야 합니다. 암호를 입력하고 나면 설치가 완료 됩니다. 설치가 완료되면 다음 명령어를 입력하여 ldap 설정을 진행합니다. sudo dpkg-reconfigure slapd 설정을 진행하기 위해서 No 를 선택합니다. 도메인 네임(DN)을 입력하는 창이 나오면 적절한 이름을 입력합니다. (ex: example.com) 그.. 2021. 6. 22.
[spark] spark3와 hive3 메타스토어 연동 스파크3와 하이브3 메타스토어를 연동하는 방법은 다음과 같습니다. 스파크-하이브 라이브러리 추가 spark-hive_2.12-3.1.2.jar를 다운로드하고 ${SPARK_HOME}/jars 에 추가 jline 2.14.6 라이브러리 추가 기존 라이브러리 버전이 낮아서 다음 오류가 발생 스파크3 버전에 따라 오류가 발생하지 않으면 추가 하지 않아도 됨 ${SPARK_HOME}/conf 에 hive-site.xml 에 hive 라이브러리 추가 export SPARK_DIST_CLASSPATH=$(hadoop classpath):/opt/hive/lib/* ${SPARK_HOME}/conf 에 hive-site.xml 추가 hive-site.xml 파일을 추가하고, hive.metastore.uris 설정을.. 2021. 6. 21.
[spark] spark2와 hive2 메타스토어 연동 스파크2와 하이브메타 스토어를 연동하는 방법은 다음과 같습니다. 스파크-하이브 라이브러리 추가 spark-hive_2.11-2.4.6.jar 를 다운로드하고 ${SPARK_HOME}/jars 에 추가 스파크2용 하이브1 라이브러리 빌드를 추가 hive-cli-1.2.1.spark2.jar 를 다운로드하고 ${SPARK_HOME}/jars 에 추가 hive-beeline-1.2.1.spark2.jar hive-exec-1.2.1.spark2.jar hive-jdbc-1.2.1.spark2.jar hive-metastore-1.2.1.spark2.jar libthrift-0.9.3.jar libfb303-0.9.3.jar ${SPARK_HOME}/conf 에 hive-site.xml 추가 hive-site... 2021. 6. 21.
[spark] spark2와 hive2 메타스토어 연결 오류 수정. java.lang.NoSuchFieldError: HIVE_STATS_JDBC_TIMEOUT spark2.x 와 hive 2.x 버전의 메타스토어를 연결하면 오류가 발생합니다. 지라에는 스파크 2.2 버전에서는 해결이 됐다고 나오지만 저는 2.4.6 버전에서도 오류가 발생했습니다. 관련 지라는 다음과 같습니다. https://issues.apache.org/jira/browse/SPARK-18112 [SPARK-18112] Spark2.x does not support read data from Hive 2.x metastore - ASF JIRA Hive2.0 has been released in February 2016, after that Hive2.0.1 and Hive2.1.0 have also been released for a long time, but till now spark o.. 2021. 6. 21.
[hive3] hadoop3와 hive3 연동에서 guava 오류 처리 하둡3와 하이브3의 연동에서 하이브3에서 사용하는 guava 라이브러리 버전(27.0-jre)과 하둡3에서 사용하는 guava 라이브러리(19.0)의 버전이 달라서 문제가 발생합니다. 또한 hive-exec-3.x.x.jar의 라이브러리 안에는 guava 라이브러리가 포함되어 있기 때문에, 이 라이브러리를 제거하고 다시 빌드해야만 오류를 해결할 수 있습니다. 하이브 소스를 다운 받아서 ql 라이브러리의 pom.xml 파일을 수정하고 빌드하면 문제를 해결할 수 있습니다. pom.xml 파일의 include를 수정하고 빌드합니다. include를 수정하고 빌드한후, 하둡의 guava 라이브러리와 하이브의 guava 라이브러리 버전을 맞춰주면 됩니다. 2021. 6. 17.
[scala] http get으로 데이터 호출하여 문자열 작성 scala에서 http get으로 데이터를 호출하여 문자열을 작성하는 간단한 예제 입니다. 2021. 6. 17.
[tez] TEZ ui 설정 Tez는 Yarn 애플리케이션 히스토리 서버의 정보를 이용해서 TEZ UI를 제공하고, 이 서비스를 이용해서 작업 정보를 확인할 수 있습니다. TEZ-UI 다운로드 - 파일 다운로드 tez ui는 TEZ에서 제공하는 war 파일을 웹서버를 이용해서 실행하는 형태로 진행합니다. 0.9.2 버전은 war 파일을 기본적으로 제공하고, 0.10.0 버전은 war 파일을 따로 다운로드 받아야 합니다. 메이븐 리파지토리에서 파일을 다운로드 할 수 있습니다. 버전에 맞게 선택하여 다운로드 하시기 바랍니다. https://repo1.maven.org/maven2/org/apache/tez/tez-ui/ Central Repository: org/apache/tez/tez-ui repo1.maven.org Tomcat .. 2021. 6. 16.
[hbase] hbase의 ExportSnapshot 중 java.lang.IllegalAccessError: tried to access method org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider.getProxyInternal 오류 처리 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.. 2021. 6. 16.
[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.
[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.
[hadoop] HDFS의 쿼터 설정 및 설정 상태 확인 HDFS의 관리를 위해서 디렉토리별로 사용제한을 둘 수 있습니다. 파일 개수와 용량 제한을 걸 수 있습니다. 기본 상태는 무제한으로 되어 있기 습니다. HDFS에 설정된 쿼터의 상태는 count 명령을 이용해서 확인할 수 있습니다. -q, -u 옵션을 이용하여 확인할 수 있으며, -v 옵션을 추가하면 헤더 정보를 확인할 수 있습니다. 2021. 5. 20.
[hadoop] 우분투에서 snappy 라이브러리를 설치하고, hadoop에서 인식 체크 우분투 18.04 버전에는 기본적으로 snappy 라이브러리가 없기 때문에 다음과 같은 방법으로 설치하고, 하둡에서 인식하는지 체크할 수 있습니다. 2021. 5. 6.
[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.