我正在创建一个包含自托管集成运行时的Windows容器映像(由我的MS here提供),以便能够在内部部署的情况下使用ADF。
当我将输出指向.parquet时,我得到了一个数据工厂任务失败,指出集成运行时容器中缺少Java。ErrorCode=JreNotFound,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Java Runtime Environment cannot be found on the Self-hosted Integration Runtime machine. It is required for parsing or writing to Parquet/ORC files. Make sure Java Runtime Environment has been installed on the Self-hosted Integration Runtime machine.,Source=Microsoft.DataTransfer.Common,''Type=System.DllNotFoundException,Message=Unable to load DLL 'jvm.dll': The specified module could not be found.
我采用了修改build.ps1文件的路径,以便在容器映像创建期间安装和配置依赖项。
- 安装Microsoft Visual C++ 2010服务包1(here)
- 安装由Microsoft OpenJDK 17.0.6 LTS提供的JDK-64位MSI(here)
- 手动设置JAVA_HOME环境变量:
setx -m JAVA_HOME "C:\Program Files\Microsoft\jdk-17.0.6.10-hotspot"
(至于我得到的SHIR将在注册表中查找JRE位置,如果没有找到,它将查找JAVA_HOME env var)。
Java看起来工作得很好,因为当我运行java -version
时,它返回了以下输出。
openjdk version "17.0.6" 2023-01-17 LTS
OpenJDK Runtime Environment Microsoft-7209853 (build 17.0.6+10-LTS)
OpenJDK 64-Bit Server VM Microsoft-7209853 (build 17.0.6+10-LTS, mixed mode, sharing)
一切似乎都很好,但我不断得到我上面提到的错误。我试图安装jre 7,jre 8,配置注册表项,但似乎没有任何工作。
1条答案
按热度按时间enxuqcxy1#
我发现了一些链接,可能会帮助或回答你的问题。
https://learn.microsoft.com/en-us/troubleshoot/azure/general/error-run-copy-activity-azure
https://learn.microsoft.com/en-us/answers/questions/532391/azure-pipeline-issue
https://learn.microsoft.com/en-us/answers/questions/582143/pipeline-fail-during-the-sink-of-a-copy-data-to-pa
会不会是登记处的事?
还是这个
64-用于64位ADF集成运行时的1位JRE应安装在以下文件夹中:C:\程序文件\Java
文件夹不是C:\Program Files(x86)\Java\