[python] FastAPI에서 Hadoop과 연동하기

FastAPI는 빠르고 간편한 API 개발을 위한 Python 프레임워크입니다. 이번에는 FastAPI를 사용하여 Hadoop과 연동하는 방법에 대해 알아보겠습니다. Hadoop은 대용량 데이터의 저장과 분석을 위한 분산 시스템으로, FastAPI와 함께 사용하면 매우 강력한 데이터 처리 기능을 제공할 수 있습니다.

1. Hadoop 설치 및 설정

Hadoop을 사용하기 위해서는 먼저 Hadoop을 설치하고 설정해야 합니다. Hadoop의 설치와 설정 방법은 별도의 문서에 자세히 설명되어 있으니 참고하시기 바랍니다.

2. Hadoop과의 연동을 위한 라이브러리 설치

FastAPI에서 Hadoop과 통신하기 위해서는 hdfs 라이브러리를 설치해야 합니다. 다음 명령을 사용하여 라이브러리를 설치할 수 있습니다.

pip install hdfs

3. FastAPI에서 Hadoop과의 연동 설정

FastAPI에서 Hadoop과 통신하기 위해서는 Hadoop의 호스트 및 포트 정보가 필요합니다. 이 정보를 사용하여 Hadoop 클러스터에 접속할 수 있으며, 필요한 파일을 읽거나 쓸 수 있습니다.

다음은 FastAPI에서 Hadoop과 연동하는 예제 코드입니다.

from fastapi import FastAPI
from hdfs import InsecureClient

app = FastAPI()
client = InsecureClient('http://hadoop-host:port', user='hadoop-user')

@app.get("/hadoop-file")
def read_hadoop_file(file_path: str):
    with client.read(file_path) as file:
        contents = file.read()
    return {"contents": contents}

@app.post("/hadoop-file")
def write_hadoop_file(file_path: str, contents: str):
    with client.write(file_path, overwrite=True) as file:
        file.write(contents)
    return {"message": "File written successfully"}

위 코드에서는 client 객체를 사용하여 Hadoop 서버에 접속하고, read_hadoop_filewrite_hadoop_file 함수에서 해당 경로의 파일을 읽거나 쓸 수 있습니다.

4. 테스트해보기

위 예제 코드를 실행한 후, FastAPI 서버에 접속하여 /hadoop-file 엔드포인트를 테스트해보세요. 파일을 읽거나 쓰기 위해서는 적절한 권한이 필요하므로 주의해야 합니다.

참고 자료