카테고리 없음

spark에서 hadoop file system 경로를 읽어오지 못할 때 해결

min_developer 2021. 3. 24. 18:14

hadoop HDFS Name node를 변경에 따라 spark가 실행되는 노드들의 fs.defaultFS(core-site.xml)를 변경하였다.

하지만 spark cluster 환경과 shell 환경에서 fs.getUri를 하면 default 값인 hdfs:/// 로 경로가 잡혔다.

HADOOP_HOME, HADOOP_CONF_DIR 환경 변수가 제대로 잡히지 않아 발생한 문제였다.

HADOOP_CONF_DIR가 없으니 conf 설정(core-site.xml)을 읽어오지 못한 문제...

다음과 같이 설정해주니 문제가 해결되었다.

vi ~/.bashrc

JAVA_HOME= '경로에 맞춰서 설정'
HADOOP_HOME='경로에 맞춰서 설정'
SPARK_HOME='경로에 맞춰서 설정'
HADOOP_CONF_DIR='경로에 맞춰서 설정하는데 /etc/hadoop 까지 해줘야 한다'

export HADOOP_CONF_DIR=$HADOOP_CONF_DIR
export JAVA_HOME=$JAVA_HOME
export PATH=$PATH:$SPARK_HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_CONF_DIR/bin

source ~/.bashrc

 

추가적으로 scala 파일마다 HDFS 경로를 다르게 지정해주고 싶다면, spark-submit  또는 sparkSession Confing에서 설정해주면 된다.

끝!