- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个不同的应用程序来处理来自 Data Lake Storage Gen1 的数据。
第一个应用程序上传文件:如果同一天多次上传,现有文件将被覆盖(始终是使用 YYYY-MM-dd 格式保存的每天一个文件)
第二个应用程序从文件中读取数据。
是否有一个选项可以锁定此操作:执行写入操作时,不应进行读取,同样,当发生读取时,写入应等待读取操作完成。
我没有找到任何使用 AdlsClient 的选项。
谢谢。
最佳答案
据我所知,ADL gen1 是与 Hadoop 分布式文件系统 (HDFS) 兼容的 Apache Hadoop 文件系统。于是查了一些HDFS的文档,恐怕无法直接控制读写互斥。请参阅以下文档:
1.link1:https://www.raviprak.com/research/hadoop/leaseManagement.html
writers must obtain an exclusive lock for a file before they’d be allowed to write / append / truncate data in those files. Notably, this exclusive lock does NOT prevent other clients from reading the file, (so a client could be writing a file, and at the same time another could be reading the same file).
2.link2:https://blog.cloudera.com/understanding-hdfs-recovery-processes-part-1/
客户端在写入 HDFS 文件之前,必须获得租约,租约本质上是一个锁。这确保了单作者语义。如果客户希望继续写信,则必须在预定时间内续签租约。如果租约没有明确续签或者持有租约的客户去世,那么租约就会到期。发生这种情况时,HDFS 将关闭该文件并代表客户端释放租约,以便其他客户端可以写入该文件。这个过程称为租约恢复。
<小时/>我在这里提供一个解决方法供您引用:在写入和读取之前添加 Redis 数据库!
无论何时进行读或写操作,首先请判断Redis数据库中是否存在特定的key。如果没有,则将一组键值写入Redis。然后进行业务逻辑处理。最后不要忘记删除该 key 。
虽然这可能有点麻烦或影响性能,但我认为它可以满足您的需求。 BTW,考虑到业务逻辑可能会失败或崩溃导致 key 永远不会被释放,您可以添加 TTL创建 key 时进行设置以避免这种情况。
关于azure - DataLake 锁定同一文件的读写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58301154/
我刚刚开始在 .NET 中使用 Azure Data Lake。我发现有 2 个库可用: Microsoft.Azure.Management.DataLake.Store 提供数据湖存储Micros
我想做一些简单的事情!!! 将 blob 从第二代 dataLake (SourceDataLake) 中的容器 (SourceContainer) 复制到第二个 DatLake (TargetDat
我有 2 个不同的应用程序来处理来自 Data Lake Storage Gen1 的数据。 第一个应用程序上传文件:如果同一天多次上传,现有文件将被覆盖(始终是使用 YYYY-MM-dd 格式保存的
我们正在尝试评估是否适合我们的解决方案。我们想要处理大数据,因此我们想要围绕 Hadoop 堆栈构建解决方案。我们想知道 Azure 在这些情况下如何提供帮助。我们正在构建的解决方案是 SAAS。但我
我们的突触管道出现堵塞,我们希望通过工作流程在 Lake 数据库上创建接收器。但无法选择创建的lake数据库,只显示默认的。我查看了一些论坛,但没有找到太多,他们说它正在 Microsot 开发中。请
我有一个简单的管道,带有复制数据。我正在尝试将数据从 sql 提取到数据湖。我创建了两个数据集,一个用于 sql,另一个用于 datalake。 当我们运行管道并且列具有字符串数据类型时,数据集中定义
我正在向 Azure Datalake 写入一个简单的文件,以了解如何将其用于其他方式,但我遇到了问题,当我尝试写入时,收到以下错误消息 21/5/2018 9:03:27 AM] Executed
我有一个基本流,并且有多个针对不同连续日期的增量流。我想合并它们以获得最终的流。我如何在 Azure Datalake 中完成此操作。例如,假设这些是流。我需要合并这些流以获得最终的流。合并将用新值替
我想使用剩余操作在 Azure datalake gen2 中执行操作。我有一个具有客户端 key 的服务主体,并且拥有存储帐户的所有者访问权限。我很困惑如何构建操作请求。我找不到任何合适的例子来证明
我正在尝试使用 Python SDK 迭代 Azure datalake Gen1 中的所有文件夹。我正在使用分配有所有者角色的服务主体。但是,当我尝试访问某些文件夹时,出现权限被拒绝错误。我不确定我
是否有任何在线工具可以让我们直接在Azure云中查看/编辑文本文件,而无需下载到本地计算机并使用UltraEdit或EMeditor等文本编辑器? 谢谢暗部 最佳答案 是的; Kudu 有一个出色的
string dfsUri = "https://" + accountName + ".dfs.core.windows.net"; DataLakeServiceClient dataLakeSe
我有一个存储帐户datalake Gen2。我需要将我的存储帐户日志连接到日志分析工作区。 但是没有诊断设置菜单,所以我不知道该怎么做。 我认为 datalake Gen1 支持这一点,但是 data
我的要求是将 Datalake 文件夹中的文件名与 .CSV 文件中的文件名进行比较,如果文件名匹配,那么我想复制这些文件,如果文件名不匹配,那么我想存储这些文件名在数据湖中的 .CSV 文件中。 请
我试图了解为什么我的 ACL 权限在 Databricks 中无法正常工作。 场景:我有 2 个用户。一个对文件系统具有完全权限的人。其他无任何权限。 我尝试使用两种不同的方法在 databricks
我们在 Azure Data Lake Gen 2 的分区文件夹下有 CSV 文件,因此单个大表将有多个 CSV 文件。我们希望通过创建外部表在 Azure 数据资源管理器中使用这些文件。所以我使用下
如何使用 C# 在 Azure 数据湖上创建空文件。在其中一个线程 Create File From Azure Data Lake Store .NET SDK它提到使用- FileSystemOp
我们在 Azure Data Lake Gen 2 的分区文件夹下有 CSV 文件,因此单个大表将有多个 CSV 文件。我们希望通过创建外部表在 Azure 数据资源管理器中使用这些文件。所以我使用下
如何使用 C# 在 Azure 数据湖上创建空文件。在其中一个线程 Create File From Azure Data Lake Store .NET SDK它提到使用- FileSystemOp
我正在尝试将文件从共享文件夹上传到 Azure Datalake gen 1 文件夹。 现在,我只是测试连接,并列出根目录下的文件夹: adlCreds = lib.auth(tenant_id =
我是一名优秀的程序员,十分优秀!