Python 패키지 설치를 위한 라이브러리 세트 작성

라이브러리 세트는 라이브러리를 이용하는 Spark 애플리케이션에서 작성하고 참조할 수 있는 라이브러리의 콜렉션입니다. 라이브러리 세트는 인스턴스가 작성될 때 인스턴스와 연관된 인스턴스 홈 스토리지에 저장됩니다.

현재, conda 또는 pip install을(를) 통해서만 Python 패키지를 설치할 수 있습니다.

Analytics Engine은 사용자 정의 패키지로 라이브러리 세트를 작성하기 위해 실행하는 customize_instance_app.py라는 Spark 애플리케이션을 번들화하며 Spark 애플리케이션에서 사용 가능합니다.

전제조건: 라이브러리 세트를 작성하려면 Spark 애플리케이션을 제출할 수 있는 권한이 있어야 합니다. 사용자 권한을 참조하십시오.

라이브러리 세트를 작성하려면 다음을 수행하십시오.

  1. 다음과 같이 JSON 파일을 준비하십시오.

    {
      "library_set": {
        "action": "add",
        "name": "my_library_set",
        "libraries": {
          "conda": {
            "python": {
              "packages": ["numpy"]
              }
          }
      }
      }
    }
    

    JSON 속성의 설명은 다음과 같습니다.

    • "library_set": 라이브러리 세트를 정의하는 최상위 레벨 JSON 오브젝트입니다.
    • "action": 라이브러리 세트에 대해 수행할 조치를 지정합니다. 라이브러리 세트를 작성하기 위해 "add"을(를) 사용합니다. 현재 지원되는 유일한 옵션은 "add"입니다.
    • "name": 라이브러리 세트가 식별되는 이름을 지정합니다. 작성된 라이브러리 세트는 사용자가 instance home(으)로 지정한 IBM Cloud Object Storage 인스턴스에서 이 이름의 파일에 저장됩니다. 중요: 둘 이상의 라이브러리 세트를 작성하는 경우 각 세트에 고유한 이름을 사용해야 합니다. 그렇지 않으면 서로를 겹쳐쓰게 됩니다.
    • "libraries": 라이브러리 세트를 정의합니다. 이 섹션에서 하나 이상의 라이브러리를 지정할 수 있습니다. 이 요소에는 라이브러리 패키지 관리자당 하나의 하위 JSON 오브젝트가 있습니다. 현재, "conda""pip" 패키지 관리자만 지원됩니다. "pip" 또는 "conda"을(를) 사용하여 Python 패키지를 설치하십시오.
    • "conda": 라이브러리 패키지 관리자입니다.
    • "python": 라이브러리 언어입니다. 현재는 Python만 지원됩니다.
    • "packages": 설치할 패키지 목록입니다. 패키지의 특정 버전을 설치하려면 package_name==version 형식을 사용하여 버전을 전달하십시오.
  2. IAM 토큰을 가져오십시오.

  3. 다음 REST API 호출에서 JSON 파일을 "arguments"(으)로 전달하십시오. REST API 호출로 전달할 때 필요에 따라 따옴표를 이스케이프하는지 확인하십시오.

    curl -X POST https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/<instance_id>/spark_applications --header "Authorization: Bearer <IAM token>" -H "content-type: application/json" -d @createLibraryset.json
    

    createLibraryset.json의 예:

    {
      "application_details": {
        "application": "/opt/ibm/customization-scripts/customize_instance_app.py",
        "arguments": ["{\"library_set\":{\"action\":\"add\",\"name\":\"my_library_set\",\"libraries\":{\"conda\":{\"python\":{\"packages\":[\"numpy\"]}}}}}"]
        }
    }
    

    중요: 애플리케이션 인수로 전달되는 문자열에서 모든 큰따옴표 문자를 이스케이프해야 합니다.

    애플리케이션이 승인되면 다음과 같은 응답이 수신됩니다.

    {
      "id": "87e63712-a823-4aa1-9f6e-7291d4e5a113",
      "state": "accepted"
    }
    

    상태가 FINISHED로 바뀌면 라이브러리 세트 작성이 완료됩니다.

  4. 애플리케이션 상태 REST API를 호출하여 애플리케이션의 상태를 추적하십시오. 애플리케이션의 상태 가져오기를 참조하십시오.