본문 바로가기

전체1128

[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.
[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.