본문 바로가기

전체 글1111

[hive] hive 와 db 연결에서 Public Key Retrieval is not allowed 오류가 발생하는 경우 처리 mysql 8.x나 5.x에서 데이터베이스 접속 암호를 암호화 처리 하는 경우 다음과 같은 오류가 발생할 수 있습니다. 이럴 때는 데이터베이스 커넥션 스트링에 옵션을 추가하여 문제를 해결할 수 있습니다. 오류 : Public Key Retrieval is not allowed $ /opt/hive/bin/schematool -dbType mysql -initSchema Metastore connection URL: jdbc:mysql://xxx.xx:3306/db_name?useSSL=false Metastore Connection Driver : com.mysql.cj.jdbc.Driver Metastore connection User: sha256_user org.apache.hadoop.hive.m.. 2021. 10. 6.
[hue] 데이터베이스 마이그레이션 중 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient.so.20 오류 휴 데이터베이스를 마이그레이션 하는 중에 다음의 오류가 발생하는 경우가 있습니다. 이때는 mysql 라이브러리를 설치 해주면 됩니다. 방법1: pymysql 라이브러리 설치 첫 번째 방법은 파이썬용 pymysql 라이브러리를 설치 하는 것입니다. 설치 방법은 다음과 같습니다. pip install pymysql 방법2: mysql lib 설치 첫 번째 방법을 이용하여 라이브러리를 설치 하는 중 오류가 발생할 수 있습니다. 이때는 mysql 라이브러리를 설치 하면 됩니다. TypeError: 'encoding' is an invalid keyword argument for this function 2021. 10. 6.
[alluxio] 알루시오 설치 및 실행 알루시오(alluxio)는 인메모리 분산 스토리지 시스템 입니다. 알루시오는 여러 종류의 저장 시스템을 하나의 시스템인 것 처럼 이용할 수 있게 해줍니다. 예를 들어 하이브에서 테이블을 만들때 다음과 같이 로케이션을 주고 테이블을 생성하고, 알루시오는 해당 위치에 HDFS, S3, GS, Azure, HBase 등을 마운트해서 사용할 수 있습니다. CREATE TABLE u_user ( userid INT, age INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' LOCATION 'alluxio://master:port/table_data'; 즉, 알루시오는 논리적인 저장장소의 위치를 제공하고, 실제 데이터가 저장된 물리적인 저장 위치는 다양하게 연동할 수 있게 .. 2021. 9. 28.
[presto] 프레스토(presto) 설치 및 실행 프레스토 설치 방법을 알아보겠습니다. 프레스토를 다운로드 하고 압축을 해제합니다. 프레스토의 설정 3가지를 {프레스토홈}/etc 에 설정합니다. jvm.config config.properties node.properties 커넥터를 설정합니다. {프레스토홈}/etc/catalog 에 하이브 연동을 위한 카탈로그를 설정합니다. hive.properties 하이브에 하둡 관련 설정을 전달하기 위한 설정 파일을 생성합니다. hive.properties 파일에 hdfs-site.xml, core-site.xml 파일 위치를 지정합니다. 설정 파일 카탈로그 설정 파일 실행 확인 카탈로그까지 설정 후 프레스토 CLI를 실행하고 데이터를 확인할 수 있습니다. 2021. 8. 23.
[amundsen] 도커를 이용한 아문센(amundsen) 실행 방법 아문센은 데이터 카탈로그 플랫폼의 하나로 사내 데이터 확인을 위한 플랫폼 입니다. 사내 여러곳에 저장되어 있는 데이터 위치를 모아서 보여주고, 추천해 주는 시스템입니다. https://www.amundsen.io/amundsen/installation/ Quick Start - Amundsen  Installation Bootstrap a default version of Amundsen using Docker The following instructions are for setting up a version of Amundsen using Docker. Make sure you have at least 3GB available to docker. Install docker and docker-comp.. 2021. 8. 22.
[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.
[ubuntu] 크론탭 설정 중 crontab rename: Operation not permitted 우분투에서 크론탭을 설정하는 중에 Operation not permitted 오류가 발생하는 경우가 있습니다. 이는 crontab 파일의 수정을 위한 권한이 부족할 때 발생합니다. 다음과 같이 /var/spool/cron/crontabs 파일의 수정권한이 부족하기 때문에 발생하는 오류로 해당 위치의 권한을 수정해야 합니다. # 오류 $ crontab -e crontab: installing new crontab crontab: crontabs/deploy: rename: Operation not permitted crontab: edits left in /tmp/crontab.BDmSwI/crontab # /var/spool/cron/crontabs 파일 수정 권한 부족 $ ll total 20 drwx.. 2021. 7. 27.
[ubuntu] systemctl 명령으로 서비스 등록 우분투에서는 systemctl 명령으로 프로세스를 서비스로 등록할 수 있습니다. 기본적으로 서비스명.service 파일을 만들고 systemd 데몬을 리로드 한 후 실행명령을 사용하면 실행할 수 있습니다. 기본 명령어 예제 서비스 파일의 예제는 다음과 같습니다. mysql 의 서비스 등록 예제와 zookeeper 를 서비스로 등록하는 예제입니다. 2021. 7. 19.
[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.
[nodejs] nodejs 14.x 버전 설치 중 GPG error: https://deb.nodesource.com/node_14.x bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1655A0AB68576280 오류 처리 deb https://deb.nodesource.com/node_14.x bionic main deb-src https://deb.nodesource.com/node_14.x bionic main nodejs 14.x 버전 설치 중 다음과 같은 오류가 발생했습니다. 이 오류는 apt 명령에서 nodesource.com의 접근하는 키게 문제가 있어서 발생합니다. Err:1 https://deb.nodesource.com/node_14.x bionic InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1655A0AB68576280 Hit:5 http://10.182.2.. 2021. 7. 4.
[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.
[mariadb] DB: Index column size too large. The maximum column size is 767 bytes. 오류 수정 방법 마리아DB에서 테이블을 만들 때 다음과 같은 오류가 발생하는 경우가 있습니다. DB: Index column size too large. The maximum column size is 767 bytes. 기본 DB의 인덱스 크기가 767 byte 까지만 가능한데, DB의 언어 설정이 utf8인경우 1글자당 3byte, utf8mb4일 경우 4byte 가 필요하기 때문에 varchar(255) 인경우 4byte * 255 = 1020 byte 가 되어 오류가 발생합니다. https://www.popit.kr/mysql-index-column-size-too-large-error/ mysql에서 Index column size too large. 에러 메시지에 대한 처리 | Popit MySQL에 테이블을.. 2021. 7. 1.
[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] hive3와 tez 0.9.2의 guava 라이브러리 버전 변경 tez 0.9.2의 guava 라이브러리 버전은 11.0.2이고, TEZ의 라이브러리 버전은 19.0이기 때문에 그냥 사용하면 문제가 발생합니다. 하둡3의 guava 버전은 27.0-jre 이기 때문에 3개를 맞춰서 사용하기 위해서는 tez 도 버전을 변경해야 합니다. tez 의 pom.xml 의 guava 라이브러리 버전을 변경하고, 소스코드를 수정한 후 빌드를 다시 하면 됩니다. pom.xml 을 변경한 소스코드를 변경해야 합니다. Futures.addCallback 의 코드가 변경되어 파라미터가 추가 되었기 때문에 코드를 변경해 주어야 합니다. 2021. 6. 17.
[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.