본문 바로가기

빅데이터413

[hue] hue 빌드 시 파이썬 pip 호출에 프록시를 이용해야 하는 경우 Hue 4.10.0 버전을 빌드 할 때 make 명령을 실행하면 내부적으로 pip를 호출하여 필요한 파일을 설치하는데 프록시 설정으로 인해서 Connection Time Out이 발생하면서 빌드에 실패하는 경우가 있습니다. 이때는 make 명령을 사용하기전에 pip 프록시가 사용하는 프록시 설정을 알려준 후 사용하면 됩니다. export PYTHON_VER=python2.7 sudo http_proxy=http://http-proxy:8080 https_proxy=http://http-proxy:8080 PREFIX=/opt make install 2022. 4. 23.
[flink] flink를 yarn session 모드로 동작할 때 작업이 ACCEPTED 상태로 대기 할 때 해결 방법 flink를 YARN에서 동작할 때 작업이 ACCEPTED 상태로 대기하면서 다음과 같은 로그가 출력되는 경우가 있습니다. 2022-04-21 16:40:32,601 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Deployment took more than 60 seconds. Please check if the requested resources are available in the YARN cluster 2022-04-21 16:40:32,853 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Deployment took more than 60 seconds. Please check if the req.. 2022. 4. 21.
[hdfs] Unable to start failover controller. Parent znode does not exist. 오류 수정 HA 하둡을 설정할 때 ZKFC를 실행할 때 이런 오류가 발생하는 경우가 있습니다. 2022-04-13 05:22:29,204 ERROR org.apache.hadoop.ha.ZKFailoverController (main): Unable to start failover controller. Parent znode does not exist. Run with -formatZK flag to initialize ZooKeeper. 이때는 zkfc를 포맷하면 됩니다. 다음 명령을 실행합니다. hdfs zkfc -formatZK 2022. 4. 20.
[hdfs] Journal Storage Directory /hadoop/hdfs/journal/... not formatted 오류 HA 하둡을 설정할 때 다음과 같은 오류가 발생하는 경우가 있습니다. 192.168.0.2:8485: Journal Storage Directory /hadoop/hdfs/journal/edit/test-hadoop not formatted ; journal id: test-hadoop at org.apache.hadoop.hdfs.qjournal.server.Journal.checkFormatted(Journal.java:516) at org.apache.hadoop.hdfs.qjournal.server.Journal.getEditLogManifest(Journal.java:707) at org.apache.hadoop.hdfs.qjournal.server.JournalNodeRpcServer.getE.. 2022. 4. 20.
[HBase] java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures 오류 처리 하둡 2.10.1 버전에 HBase 1.7.1 버전을 설치할 때 다음과 같은 오류가 발생하였습니다. 2022-04-20 10:37:11,640 FATAL [bigdata-hadoop-master-1:16000.activeMasterManager] master.HMaster: Failed to become active master java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures, but the underlying filesystem does not support doing so. Please check the config va.. 2022. 4. 20.
[airflow] Xcom을 이용하여 DAG 간 데이터 전달 에어플로우에서 DAG 간 데이터를 전달하는 방법으로 xcom을 이용할 수 있습니다. context의 task_instance 객체를 이용해서 키-밸류 형태로 데이터를 전달할 수 있습니다. 다음은 데이터를 전달하여 branch를 처리하는 방법 예제입니다. 2022. 4. 3.
[spark] pyspark 의 파이썬 패스 설정 pyspark 를 실행하는 서버와 실제 작업을 실행하는 YARN 클러스터의 파이썬 패스가 다를 경우 실행하는 파이썬 패스(PYSPARK_PYTHON)를 드라이버, 워커, 실행서버 별로 설정을 해야 합니다. 파이썬 패스 설정 2022. 3. 7.
[ruby] Can't convert Range in to Integer (Ruby on Rails) 오류 처리 방법 루비는 버전에 따라 range값을 int 로 변경할 때 오류가 발생합니다. 1.9 버전은 간단하게 변경할 수 있지만, 1.8 버전에서는 오류가 발생합니다. 버전에 따라 다르게 처리해야 합니다. 2022. 2. 25.
[airflow] DAG에서 사용하는 멀티 프로세스에서 발생하는 AssertionError: daemonic processes are not allowed to have children 에어플로우 DAG에서 멀티 프로세스를 이용하는 경우 파이썬 프로세스에서 또 프로세스를 생성할 수 없다는 오류가 발생합니다. File "/usr/local/lib/python3.8/multiprocessing/process.py", line 118, in start assert not _current_process._config.get('daemon'), \ AssertionError: daemonic processes are not allowed to have children 해결방법 이 경우 멀티프로세스를 스레드 풀로 변경하면 됩니다. 다음과 같이 사용할 수 있습니다. 2022. 2. 24.
[hdfs] HDFS 메타 데이터 백업 및 복구 HDFS 메타 데이터를 백업하고 복구하는 방법을 알아보겠습니다. 메타 데이터 백업 데이터 백업은 세이프 모드에서 진행합니다. 메타 데이터 복구 복구를 위해서는 기존의 VERSION 파일은 있어야 하고, fsimage 에 맞는 체크섬을 생성하고 md5 파일을 생성해 주어야 합니다. 2022. 2. 22.
[hdfs] 네임노드의 fsimage 파일 구조 하둡 네임노드는 HDFS의 최신 데이터(fsimage)를 메모리에 보관하고 있습니다. 그리고 설정에 따라, 6시간에 1번, 100만 트랜잭션 당 1번씩 fsimage 를 파일로 보관합니다. 또한 중간 데이터인 edits 를 추가로 보관합니다. fsimage 저장 주기는 6시간에 1번 or 100만 트랜잭션당 1번 HDFS 파일 구조 파일 저장 구조는 위와 같습니다. VERSION: 현재 실행 중인 HDFS의 ID, 타입 등 정보 edits_0000xxx-0000xxx: 트랜잭션 정보. edits_트랜잭션시작번호-트랜잭션종료번호 까지의 정보를 저장 eidts_inprogress_000xx: 최신 트랜잭션 정보. 압축되지 않은 정보 fsimage_000xxx: 000xxx 까지 트랜잭션 정보가 처리된 fsi.. 2022. 2. 22.
[k8s] 쿠버네티스 시크릿(Secret) 생성 커맨드와 Yaml k8s는 암호 같은 중요 정보를 보관하는 데이터베이스 같은 기능인 시크릿을 제공합니다. 시크릿은 CLI를 이용해서 생성하거나, yaml 을 이용하여 생성할 수 있습니다. https://kubernetes.io/ko/docs/concepts/configuration/secret/ 시크릿(Secret) 시크릿은 암호, 토큰 또는 키와 같은 소량의 중요한 데이터를 포함하는 오브젝트이다. 이를 사용하지 않으면 중요한 정보가 파드 명세나 컨테이너 이미지에 포함될 수 있다. 시크릿을 사용한다 kubernetes.io 시크릿 생성 CLI 시크릿 생성 yaml 시크릿 사용 secretKeyRef를 이용하여 yaml 에서 이용할 수 있음 2022. 2. 7.
[oozie] 우지 5.2.1 빌드 및 실행 우지 5.2.1 빌드 방법은 다음과 같습니다. 빌드 실행 우지를 실행하면 기본적으로는 더비 디비를 이용합니다. mysql 을 이용하기 위해서는 설정을 추가합니다. oozied.sh run oozied.sh start 설정 참고 사이트 https://oozie.apache.org/docs/5.2.1/DG_QuickStart.html#Building_Oozie Oozie – ::Go back to Oozie Documentation Index:: Oozie Quick Start These instructions install and run Oozie using an embedded Jetty server and an embedded Derby database. For detailed install and c.. 2022. 2. 2.
[oozie] 우지로 pyspark 실행 예제 우지를 이용하여 pyspark 를 실행 할 때는 다음과 같이 실행합니다. pi.py는 워크플로우 경로에 lib 폴더를 만들고 그 아래 있어야 합니다. oozie job -run -config job.porperties 2022. 2. 2.
[spark] java.lang.NoSuchMethodError: net.jpountz.lz4.LZ4BlockInputStream.<init>(Ljava/io/InputStream;Z)V 오류 수정 스파크 작업을 실행하는 중에 기본 압축 코덱의 라이브러리가 없을 때 다음 오류가 발생합니다. Job aborted due to stage failure: Task 2 in stage 0.0 failed 4 times, most recent failure: Lost task 2.3 in stage 0.0 (TID 10, hadoop-worker-1.com, executor 2): java.lang.NoSuchMethodError: net.jpountz.lz4.LZ4BlockInputStream.(Ljava/io/InputStream;Z)V at org.apache.spark.io.LZ4CompressionCodec.compressedInputStream(CompressionCodec.scala:122) a.. 2022. 1. 30.
[oozie] workflow, coordinator, bundle 예제 우지 워크플로우, 코디네이터, 번들 예제입니다. 실행을 위한 명령어는 다음과 같습니다. oozie job -run -Doozie.wf.application.path=hdfs:///workflow_example oozie job -run -Doozie.coord.application.path=hdfs:///workflow_example oozie job -run -Doozie.bundle.application.path=hdfs:///workflow_example 2022. 1. 30.
[oozie] 우지에서 스파크 액션에서 Missing py4j and/or pyspark zip files. 오류 처리 우지 스파크 액션에서 pyspark를 실행할 때 Missing py4j and/or pyspark zip files. Please add them to the lib folder or to the Spark sharelib 오류가 발생하는 경우가 있습니다. 해결 방법 우지의 sharelib 에 파이썬 라이브러리가 없어서 발생하기 때문에 우지의 spark sharelib에 스파크 파이썬 라이브러리를 추가하면 됩니다. # 스파크 홈 $ cd ${SPARK_HOME}/python/lib # 조회 $ ls -alh total 636 drwxr-xr-x 2 deploy deploy 4096 May 30 2020 ./ drwxr-xr-x 7 deploy deploy 4096 May 30 2020 ../ -rw-r-.. 2022. 1. 26.
[oozie] 우지 스파크 액션에서 리소스 매니저를 찾지 못하는 경우(Retrying connect to server: 0.0.0.0/0.0.0.0:8032.) 우지 스파크 액션에 리소스 매니저를 찾지 못하는 경우는 스파크의 리소스 매니저 기본 설정값을 추가하면 됩니다. 오류 내용 Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 times(s). spark-defaults.conf 설정 추가 spark-defaults.conf에 다음 내용을 추가합니다. spark.hadoop.yarn.resourcemanager.address host-name:8050 2022. 1. 26.
[oozie] 우지 스파크 잡에서 java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.SparkMain not found 오류 처리 우지 스파크 액션에서 SparkMain not found 오류가 발생할때는 oozie.use.system.libpath 를 true로 설정하면 된다. Failing Oozie Launcher, java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.SparkMain not found java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.SparkMain not found at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2425) at org.. 2022. 1. 25.
[hbase] hbase shell에서 데이터 필터링 hbase shell에서 데이터를 조회할 때 특정 데이터를 필터링 할 수 있습니다. 2021. 12. 29.
[hbase] hbase shell에서 ruby 를 이용하여 샘플 데이터 입력 hbase shell은 ruby 스크립트를 지원합니다. 테스트를 위한 샘플 데이터를 간단하게 입력하고 테스트할 수 있습니다. 2021. 12. 29.
[airflow] 에어플로우 설치(celery executor + redis) 에어플로우는 웹서버, 스케줄러, 익스큐터, 메세지 큐로 구성할 수 있습니다. 웹서버, 스케줄러는 에어플로우를 설치하면 되고, 익스큐터는 로컬 익스큐터, 셀러리 익스큐터는 에어플로우를 설치하면 구성되고, 쿠버네티스 익스큐터는 따로 설정해야 합니다. 그리고 여러개의 익스큐터와 스케줄러의 통신을 위해서 메시지 큐를 설치할 수 있습니다. 또한 익스큐터간 데이터 저장을 위한 DB 도 필요합니다. 따라서 에어플로우 하나를 사용하기 위해서는 다음의 5개 컴포넌트가 필요합니다. (시퀀셜 익스큐터를 이용하는 경우 sqlite를 이용해서 웹서버, 스케줄러, 익스큐터 만 있으면 됩니다.) 여기서는 셀러리 익스큐터를 이용하는 방법을 알아보겠습니다. 웹서버 스케줄러 익스큐터 시퀀셜 익스큐터 셀러리 익스큐터 메세지큐 레디스 Ra.. 2021. 12. 20.
[openstack] 오픈스택 VM 생성 중 unexpected state 'ERROR', wanted target 'ACTIVE'. last error: %!s(<nil>) 오픈스택 VM 생성 중에 이런 오류가 발생해서 VM 생성이 안되는 경우 서버의 오류 메세지를 확인하여 원인을 확인할 수 있습니다. 아래의 "No valid host was found. There are not enough hosts available" 경우 VM을 생성할 수 있는 자원이 부족하여 발생하였습니다. 에러의 원인을 파악하여 문제를 해결후 VM을 다시 생성하면 됩니다. $ openstack server show [VM ID] +-----------------------------+--------------------------------------------------------------------------------------------------------------------------.. 2021. 12. 18.
[hive] hive 2.3 버전 log4j2 취약점 처리 방안 hive 2.3 버전은 log4j 2.6 버전을 이용하기 때문에 CVE-2021-44228 취약점을 제거해야 합니다. 취약점 https://www.popit.kr/log4j-%EB%B3%B4%EC%95%88-%EC%B7%A8%EC%95%BD%EC%A0%90-%EB%8F%99%EC%9E%91%EC%9B%90%EB%A6%AC-%EB%B0%8F-jenkins-%EC%84%9C%EB%B2%84-%ED%99%95%EC%9D%B8-%EB%B0%A9%EB%B2%95/?fbclid=IwAR0CBgT0ZP6eLCLpPKET7KfXX3av4NGQ37io5g2Wkj4yepI07wtsEliP-Eg log4j 보안 취약점 동작원리 및 jenkins 서버 확인 방법 | Popit 최근 log4j의 보안 취약점이 크게 이슈가 되고.. 2021. 12. 13.
[airflow] 에어플로우 DB 초기화 중 Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql 오류 에어플로우 설치중 mysql 5.x 버전을 이용할 때 다음과 같은 오류가 발생하는 경우가 있습니다. File "/home/deploy/.local/lib/python3.6/site-packages/alembic/runtime/migration.py", line 560, in run_migrations step.migration_fn(**kw) File "/home/deploy/.local/lib/python3.6/site-packages/airflow/migrations/versions/0e2a74e0fc9f_add_time_zone_awareness.py", line 44, in upgrade raise Exception("Global variable explicit_defaults_for_timest.. 2021. 11. 30.
[kerberos] 커버로스 키탭 머지 하기 커버로스 키탭은 여러 개의 키를 하나의 키로 합칠 수 있습니다. ktutil 커맨드를 이용하여 처리할 수 있습니다. 2021. 11. 27.
[airflow] PythonOperator에서 TypeError: function() got an unexpected keyword argument 'conf' 오류 에어플로우에서 파이썬 오퍼레이터를 이용할 때 이런 오류가 발생하는 경우가 있습니다. [2021-11-25 09:49:49,343] {taskinstance.py:1150} ERROR - func() got an unexpected keyword argument 'conf' Traceback (most recent call last): File "/home/deploy/.local/lib/python3.6/site-packages/airflow/models/taskinstance.py", line 984, in _run_raw_task result = task_copy.execute(context=context) File "/home/deploy/.local/lib/python3.6/site-package.. 2021. 11. 25.
[kerberos] 커버로스 인증 파일 캐쉬 저장 방법 커버로스 인증시 옵션을 사용하지 않으면 /etc/krb5.conf 아래 default_ccache_name 의 위치에 인증 캐쉬를 저장합니다. 기본 저장위치가 API, KEYRING 같은 경우 애플리케이션이 이를 읽지 못하기 때문에 캐쉬를 파일로 저장하여야 합니다. kinit을 할 때 -c 옵션을 이용하여 인증파일을 캐쉬로 저장할 수 있습니다. 2021. 11. 18.
[airflow] BashOperator에서 jinja2.exceptions.TemplateNotFound: 오류 에어플로우 BashOperator 에서 템플릿을 사용하지 않는데, TelplateNotFound 오류가 발생하는 경우가 있습니다. 이 경우 스크립트 뒤에 공백을 추가하면 됩니다. [2021-11-17 18:14:21,099] {taskinstance.py:1150} ERROR - /home/user/sample.sh Traceback (most recent call last): File "/home/deploy/.local/lib/python3.6/site-packages/airflow/models/taskinstance.py", line 965, in _run_raw_task self.render_templates(context=context) File "/home/deploy/.local/lib/py.. 2021. 11. 18.
[hue] hue 와 LDAP 연동 휴에서 사용자를 LDAP 서버와 연동하여 조회할 수 있습니다. 공식 문서를 참고하면 더 좋습니다. https://docs.gethue.com/administrator/configuration/server/#ldap Server :: Hue SQL Assistant Documentation Server This section is about configuring the Hue server itself. These configuration variables are under the [desktop] section in the conf/hue.ini configuration file. Basics Point to MySQL or Postgres Directly below the [[database]] line.. 2021. 11. 15.