본문 바로가기

hadoop

(4)
[Spring] Hadoop Kerberos 티켓 갱신 실패 시 해결방법(javax.security.sasl.SaslException: GSS initiate failed) 스프링 프로젝트에서 커버로스 인증을 통한 hdfs에 접근하려면 org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab 을 이용하여 커버로스 티켓을 생성할 수 있다. @Configuration class HadoopConfig { @Bean public org.apache.hadoop.conf.Configuration hadoopConfig() { Configuration conf = new Configuration(); UserGroupInformation.setConfiguration(conf); UserGroupInformation.loginUserFromKeytab(kerberosUser, keytabPath); return conf..
[Spark] SparkContext.addFile 과 --files 의 차이점 (Spark on YARN) Spark 에서 외부데이터를 불러와 처리할 때 코드 상에 SparkContext.addFile 메소드를 호출하거나, spark-submit시 --files 파라미터를 이용하여 외부데이터를 읽어와 처리할 수 있다. 이때 두가지 방법이 서로 동작하는 방식이 달라 YARN에 cluster 모드로 실행시 파일을 읽는 방법이 달라지는데, 이에 대해 정리해보고자 한다. SparkContext.addFile 공식 문서에 따르면 local file, HDFS 뿐 아니라 HTTP, HTTPS, FTP까지 지정하여 사용할 수 있다고 한다. //add file SparkSession spark = SparkSession.builder().getOrCreate(); spark.sparkContext().addFile("htt..
[Hadoop] Active Namenode 구하는 법 distcp 나 hadoop fs 같은 하둡 커맨드를 사용할 때 Active Namenode를 통해서 잡을 수행해야 하는데, Active/StandBy 로 Namenode가 구성되면 HA 구성된 Namenode들 중 Active Namenode를 찾아 잡을 수행시켜야 한다. 이번 포스팅은 커버로스 인증이 적용된 하둡 클러스터에서 Active Namenode를 찾아내는 몇가지 방법에 대해 정리해 보고자 한다. 1. shell을 통한 Active Namenode 구하기 //커버로스 인증이 필요할 경우 키탭을 이용하여 커버로스 티켓을 생성한다. $ kinit -kt ${keytab_path} ${principal} $ curl --negotiate -u : http://${namenode_domain}:500..
[Presto] Nginx + Reverse proxy를 이용한 Cache Layer 구축기 현재 Tabluea + Presto + Kudu 를 이용해 BI 플랫폼을 제공하는 프로젝트를 진행중이다. 이때 Tabluea를 통해 매일 일간 지표에 대한 대시보드를 제공하고 있는데, 매번 사용자가 Tabluea에 접속할때마다 Presto 쿼리가 수행되어 대시보드 화면이 늦고, Presto & Kudu의 리소스가 낭비가 되는 문제가 있었다. 이를 해결하기 위해 Presto 앞에 Cache Layer를 하나 두고, 동일한 쿼리를 수행하려고 하면 캐싱된 값을 리턴 할 수 있도록 만들어 보고자 했다. 1. Presto-jdbc의 통신방식 Presto-jdbc를 보다보니, JDBC Driver와 Presto coordinator간에 http로 통신하는 것을 확인하였다. 즉 일반적인 http 캐싱 방식으로 처리하..