하둡클러스터에 접근해서 파일을 확인하고 복사할때 하둡 클라이언트 바이너리를 설치해야한다. 보통 메이저버전만 맞추면 일반적으로 돌아가는 편인데 다음 경로에서 다운로드를 받아 압축을 푼다. https://hadoop.apache.org/releases.html 압축풀기화 설정복사 위 경로에서 다운로드를 받았다면, 다음과 같이 압축해제된 경로를 HADOOP_HOME 으로 경로를 잡아주고, core-site.xml, hdfs-site.xml 설정파일을 복사하면된다. (ambari에서 client 설정을 다운로드 받아서 복사하거나 하둡클러스터 서버에서 해당 설정을 가져와도 된다.) # 하둡 2.10.2 버전 다운로드 및 해제 (/home1/user/ 에서 다운받았다고 가정) $ wget https://dlcdn...
docker 를 통해 실행하려고 하는데, "no space left on device" 라는 오류가 발생했다. 말 그대로 용량이 부족하다는 말이다. 이를 해결하기위해서는 용량이 얼마나 남았는지 확인하고 불필요한 파일을 제거해야한다. $ docker run --entrypoint /keytab/c3s_init.sh --rm\ > -v /local/keytab:/keytab\ > -e HADOOP_USER_NAME=admin\ > xxx.yyy.zzz/myImage:latest\ > hadoop fs -ls hdfs://myhost/data/tmp/2022-01-01 Unable to find image 'xxx.yyy.zzz/myImage:latest' locally latest: Pulling from ..
하둡클러스터에 kerberos 인증이 있다면, kinit 명령을 통해서 인증을 거친후 hadoop 명령어를 사용할 수 있다. 하지만, BashOperator 에서 매번 kinit 명령을 넣어서 DAG 를 구성하는건 꽤 번거로운일이다. 왜냐하면, 사용자가 암호를 생략하려면 keytab 파일을 사용해야 하는데 경로를 매번 기억해서 쓰는것도 번거롭다. 다행히 airflow 에서는 커버로스 인증을 주기적으로 하는 옵션이 존재한다. airflow kerberos 사용하기 우선 airflow.cfg 설정에 커버로스 관련 인증 설정이 필요하다. 당연히 인증을 위한 keytab 파일도 존재해야한다. [core] ... security = kerberos .... [kerberos] ccache = /tmp/airflo..
상황 Flink 를 직접 빌드하려고 했는데, 다음과 같은 오류가 나면서 빌드에 실패했다. 데스크탑에서 하면 문제가 없어서 좀 삽질했는데, jdk8 버전을 사용하여 빌드한다면 버전을 확인해 보자. $ mvn clean package -DskipTests ...생략... [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 24:50 min [INFO] Finished at: 2022-08-30T15:54:3..
주키퍼의 znode 를 웹에서 볼 수 있도록 지원하는 zoonavigator 라는 오픈소스가 존재한다. 도커를 이용하는 방식과 snap 을 이용해 설치하는 방식이 있는데, 이상하게 특정서버에서 설치가 안되는 현상이 발생되었다. 에러메시지는 다음과 같다. 신기한건 여러대의 서버에 설치를 시도할때, 일부 서버에서만 이런 현상이 발생되었다는점이다. $ sudo yum -y install epel-release $ sudo yum -y install snapd $ sudo systemctl enable --now snapd.socket $ sudo ln -s /var/lib/snapd/snap /snap $ sudo snap install zoonavigator error: system does not full..
Airflow 에서 "hive_cli_default" Connection 을 설정할때, Extra 옵션에 {"use_beeline": true} 를 추가하면, beeline 을 통해 쿼리를 실행한다. 근데, 기본적으로 -hiveconf 옵션에 airflow.ctx.* 패턴의 값이 추가되면서 아래와 같은 오류가 발생될 때가 존재한다. java.lang.IllegalArgumentException: Cannot modify airflow.ctx.dag_id at runtime. It is not in list of params that are allowed to be modified at runtime 이 오류를 재현하는 방법은 beeline 을 실행할때 -hiveconf airflow.ctx.dag_id=..
airflow 에서 셀러리기반으로 운영할때 DAG 요청을 담는 메시지큐로 rabbitmq 를 주로 사용한다. 그런데 테스트를 위해 모든 노드를 죽였는데 rabbitmq 가 기동을 못하는 상황이 발생되었다. 로그를 확인해보면 다음과 같은 메시지가 error 메시지로 존재했었다. Feature flag 'quorum_queue': migration function crashed Jul 12 18:24:03 my-server001 rabbitmq-server[48802]: * suggestion: start the node Jul 12 18:24:03 my-server001 rabbitmq-server[48802]: rabbit@my-server002: Jul 12 18:24:03 my-server001 ra..
커버로스 인증은 성공했는데, 하둡에서 명령을 실행했을때 다음과 같이 "javax.security.sasl.SaslException: GSS initiate failed" 오류가 날때가 있다. 이 문제를 해결하려면 $JAVA_HOME 하위의 security 파일에 krb5.conf 설정을 복사하면 해결된다. $ kinit product Password for product@MY-DOMAIN.BAR.COM: $ hadoop fs -ls / 2022-05-10 18:55:12,732 WARN security.UserGroupInformation: Not attempting to re-login since the last re-login was attempted less than 60 seconds before..