问题一:
我想请问一下,在机器学习PAI字符串最近邻预测组件 StringNearestNeighborPredictBatchOp 运行起来速度很慢是为啥?我有50万条数据,线程数设置为了30,但是跑了17个小时还没有跑完
问题二:测试的时候我喜欢使用本地环境useLocalEnv,但是环境是有kerberos认证的,所以此时调用读取hive数据的代码话就会报kerberos认证方面的错误,正确的读取方法是怎样的呢?(注:将相关读取代码使用flink run -py xxx.py提交到yarn上运行就不会报相关错误)
我想请问一下,在机器学习PAI字符串最近邻预测组件 运行起来速度很慢是为啥?[阿里云机器学习PAI]
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
问题一:
运行速度慢的原因可能有多个。首先,确认你的机器学习 PAI 集群的配置是否足够满足处理大规模数据的需求。检查资源分配是否合理,例如 CPU、内存和磁盘空间等。
其次,确保你的代码逻辑和参数设置正确,没有造成性能瓶颈。StringNearestNeighborPredictBatchOp 组件的性能受到多种因素影响,包括数据规模、线程数、特征维度以及相似度计算方法等。确定这些参数设置是否合适,并根据需要进行调整。
最后,考虑数据预处理的优化。对于字符串最近邻预测任务,你可以尝试使用一些技术来加速计算,如索引、降维(例如使用词嵌入)、采样或分片处理等。
如果以上步骤仍未解决问题,请联系机器学习 PAI 的技术支持团队,提供详细的错误信息和日志,他们将能够进一步帮助你排查和解决性能问题。
问题二:
在本地环境中使用 Kerberos 认证读取 Hive 数据时,你可以通过以下步骤来正确配置和处理 Kerberos 认证:
安装和配置 Kerberos:确保你的本地环境已经正确安装了 Kerberos,并进行了相关配置,包括 krb5.conf 文件和 keytab 文件等。
配置 Hadoop 和 Hive:在本地环境中,确保你的 Hadoop 和 Hive 的配置文件(如 core-site.xml、hdfs-site.xml、hive-site.xml)中设置了正确的 Kerberos 认证参数,例如 principal 和 keytab 等。
配置 Python 环境:在 Python 中,你需要使用适当的库来进行 Kerberos 认证。常见的库包括 pykerberos、requests-kerberos 或 python-gssapi。根据你选择的库,安装相应的依赖项,并根据库的文档进行配置和使用。
调整代码逻辑:在读取 Hive 数据的代码中,确保你使用了正确的认证方法,并提供了合适的 Kerberos 认证凭证。具体实现方式会根据所选的库而有所不同,可以参考相应库的文档或示例代码。
如果你在本地环境中使用 “flink run -py xxx.py” 提交到 YARN 上运行时不报错,则说明你的环境已经正确配置了 Kerberos 认证。但请确保在提交到 YARN 时,相关的 Hive 配置也正确传递给了 Flink 任务。
针对问题一的回答:计算量比较大,50w*50w的计算量,看看能不能弄更多的计算资源
针对问题二的回答: hive kerberos 的话用这个构造函数 HiveCatalog(
String catalogName, String defaultDatabase, String hiveVersion, String hiveConfDir,
String kerberosPrincipal, String kerberosKeytab)
https://github.com/alibaba/Alink/blob/edb543ee05260a1dd314b11384d918fa1622d9c1/core/src/main/java/com/alibaba/alink/common/io/catalog/HiveBaseUtils.java#L275
配置目录结构参考这个—此回答来自钉群”Alink开源–用户群“