# conda 가상환경 실행
# 가상환경이 없는경우 conda create -n test pip python=3.7 명령어 실행
conda activate test
# airflow 설치
pip install apache-airflow
# db init
airflow db init
# webserver 실행
airflow webserver -p 8080
airflow 웹서버 접속
웹서버를 실행하게 되면 아래와 같이 airflow 웹서버거 실행되며 localhost:8080을 url에 입력하여 접속합니다.
접속하면 아래 그림과 같이 로그인 창이 뜹니다. 이제 다시 커멘드창으로 이동하여 계정을 생성하겠습니다.
airflow 계정 생성
웹서버를 창은 그대로 두고 새로운 창을 열어 아래 명령어을 입력하게 되면 admin권한을 가지는 admin계정이 생성됩니다.
java.net.BindException: Can't assign requested address: Service 'sparkDriver' failed after 16 retries (on a random free port)! Consider explicitly setting the appropriate binding address for the service 'sparkDriver' (for example spark.driver.bindAddress for SparkDriver) to the correct binding address.
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:555)
at java.base/sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:337)
at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294)
at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134)
at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:562)
at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506)
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491)
at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973)
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:260)
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:833)
해결
우선 로컬 pc의 호스트 네임을 확인합니다.
확인 후 etc 아래에 있는 hosts 파일에 127.0.0.1 hostname을 추가 합니다.
wq!를 통해 저정 후 터미널에 pyspark를 실행하면 정상적으로 작동하는 것을 볼 수 있습니다.
추가
혹시 위와 같은 방법으로도 해결이 안된다면 jdk 등의 버전 호환을 확인해보시길 바랍니다.