簡體   English   中英

無法從 wheel 安裝 Apache Beam SDK:在暫存文件中找不到 Beam SDK wheel,繼續從源 tarball 安裝 SDK

[英]Could not install Apache Beam SDK from a wheel: could not find a Beam SDK wheel among staged files, proceeding to install SDK from source tarball

我在沒有 inte.net 訪問權限的谷歌雲環境中工作。 我正在嘗試啟動一個數據流作業,將它傳遞給 sdk,如下所示:

python wordcount.py --no_use_public_ip --sdk_location "<basepath>/dist/package-import-0.0.2.tar.gz"

我用這個 setup.py 生成了 package-import-0.0.2.tar.gz

    import setuptools

    setuptools.setup(
        name='package-import',
        version='0.0.2',
        install_requires=[
            'apache-beam==2.43.0',
            'cachetools==4.2.4',
            'certifi==2022.12.7',
            'charset-normalizer==2.1.1',
            'cloudpickle==2.2.0',
            'crcmod==1.7',
            'dill==0.3.1.1',
            'docopt==0.6.2',
            'fastavro==1.7.0',
            'fasteners==0.18',
            'google-api-core==2.11.0',
            'google-apitools==0.5.31',
            'google-auth==2.15.0',
            'google-auth-httplib2==0.1.0',
            'google-cloud-bigquery==3.4.1',
            'google-cloud-bigquery-storage==2.13.2',
            'google-cloud-bigtable==1.7.3',
            'google-cloud-core==2.3.2',
            'google-cloud-datastore==1.15.5',
            'google-cloud-dlp==3.10.0',
            'google-cloud-language==1.3.2',
            'google-cloud-pubsub==2.13.11',
            'google-cloud-pubsublite==1.6.0',
            'google-cloud-recommendations-ai==0.7.1',
            'google-cloud-spanner==3.26.0',
            'google-cloud-videointelligence==1.16.3',
            'google-cloud-vision==1.0.2',
            'google-crc32c==1.5.0',
            'google-resumable-media==2.4.0',
            'googleapis-common-protos==1.57.1',
            'grpc-google-iam-v1==0.12.4',
            'grpcio==1.51.1',
            'grpcio-status==1.51.1',
            'hdfs==2.7.0',
            'httplib2==0.20.4',
            'idna==3.4',
            'numpy==1.22.4',
            'oauth2client==4.1.3',
            'objsize==0.5.2',
            'orjson==3.8.3',
            'overrides==6.5.0',
            'packaging==22.0',
            'proto-plus==1.22.1',
            'protobuf==3.20.3',
            'pyarrow==9.0.0',
            'pyasn1==0.4.8',
            'pyasn1-modules==0.2.8',
            'pydot==1.4.2',
            'pymongo==3.13.0',
            'pyparsing==3.0.9',
            'python-dateutil==2.8.2',
            'pytz==2022.7',
            'regex==2022.10.31',
            'requests==2.28.1',
            'rsa==4.9',
            'six==1.16.0',
            'sqlparse==0.4.3',
            'typing-extensions==4.4.0',
            'urllib3==1.26.13',
            'zstandard==0.19.0'
            ],
        packages=setuptools.find_packages(),
        )

但在數據流日志工作者中我有這個錯誤:無法從輪子安裝 Apache Beam SDK:在暫存文件中找不到 Beam SDK 輪子,繼續從源 tarball 安裝 SDK。 然后他嘗試下載它,但由於他沒有 inte.net,他不能

我最大的問題是谷歌雲環境無法訪問 inte.net,因此數據流無法下載它需要的內容。 您知道將它傳遞給 sdk_location 的方法嗎?

如果您無法從您的環境訪問 inte.net,我想到了一個基於Docker圖像的解決方案。

- 工人

Dataflow Python在創建worker的時候可以在執行階段使用一個Docker鏡像

在此圖像Docker ,您可以在容器中安裝所有需要的包並將其發布到 Container Registry,例如:

FROM apache/beam_python3.8_sdk:2.44.0

# Pre-built python dependencies  
RUN pip install lxml
# Pre-built other dependencies  
RUN apt-get update \
  && apt-get dist-upgrade \
  && apt-get install -y --no-install-recommends ffmpeg
      
# Set the entrypoint to the Apache Beam SDK launcher.
ENTRYPOINT ["/opt/apache/beam/boot"]

Dataflow作業中,您必須指定 2 個程序 arguments 才能使用圖像:

  • 實驗
  • sdk_container_image
python -m apache_beam.examples.wordcount \
  --input=INPUT_FILE \
  --output=OUTPUT_FILE \
  --project=PROJECT_ID \
  --region=REGION \
  --temp_location=TEMP_LOCATION \
  --runner=DataflowRunner \
  --disk_size_gb=DISK_SIZE_GB \
  --experiments=use_runner_v2 \
  --sdk_container_image=$IMAGE_URI

- 來自您的谷歌環境的跑步者

您執行作業的 Google 環境還需要安裝軟件包,以便能夠實例化作業。

您需要找到一種方法在機器和您的環境中安裝這些包。 如果您可以使用用於Dataflow worker 和執行階段的相同Docker圖像,那就完美了。

我使用允許我訪問 inte.net 的內部代理解決了問題。 在命令中添加了這個 --no_use_public_ip 並且我設置了 no_proxy="metadata.google.internal,www.googleapis.com,dataflow.googleapis.com,bigquery.googleapis.com" 謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM