hdfs 如何精细化为用户赋权
本文基于 Hadoop-3.3.5
hdfs 权限模型
具体可以参阅 HDFS Permissions Guide
hdfs 实现了一套 POSIX 模型。权限分为可读权限(r)、可写权限(w)和可执行权限(x)。
对于文件,需要可读权限才能读取文件,并且需要可写权限才可以往文件中写或者追加内容,hdfs 不存在可执行文件的概念。
对于目录,需要可读权限才能列出目录的内容,可写权限可以创建或删除文件或目录,并且需要可执行权限才能访问目录子内容。
每个文件和目录都与所有者和一个组关联。 该文件或目录为所有者(owner),组成员的其他用户(group)以及所有其他用户(other)具有单独的权限。
drwx(owner)r-x(group)r-x(other) - hdfs hdfs 0 2023-03-27 00:00 /user
HDFS 还为 POSIX ACL(访问控制列表)提供了可选的支持,以增强对特定命名用户或命名组的详细规则的文件权限。这也是以最小粒度分配文件权限的基础。
hdfs 用户hdfs 其实并不提供用户功能,一般的,hdfs 使用的是 ...
Apache Livy 如何将 SparkSQL 结果作为 json 返回的方法分享
本文基于 Apache Livy-0.8.0-incubating-SNAPSHOT,Apache Spark-3.3.1,Apache Hadoop-3.3.4读者需要自行编译相关版本
Apache Livy
livy 的默认端口为 8998
Apache Livy 是一项服务,可通过 REST 接口与 Spark 集群轻松交互。 它支持通过简单的 REST 接口或 RPC 客户端库轻松提交 Spark 作业或 Spark 代码片段、同步或异步结果检索以及 Spark 上下文管理。Apache Livy 还简化了 Spark 与应用程序服务器之间的交互,从而使 Spark 能够用于交互式 Web/移动应用程序。
livy 的相关配置和使用还请读者自行阅读。
Apache SparkApache Spark 是一种多语言引擎,用于在单节点机器或集群上执行数据工程、数据科学和机器学习。
spark sql 的相关使用和配置还请读者自行阅读。
livy 结果返回格式说明
所有操作均可通过接口测试工具 PostMan 进行
我们主要会想要获取每个 statement 的执行 ...
Java 无痕埋点实现思路分享-javaagent篇
本篇文章基于我的开源 slot 工程。本文基于 jdk8 编写
埋点系统对比一般的,埋点系统可分为两大类:侵入式埋点和无侵入式埋点。
侵入式埋点一般通过 SDK 来提供埋点能力。
侵入式埋点优点
埋点粒度可以随意控制,想在哪埋点就在哪埋点
使用简单,开发人员根据需要在指定的业务代码处调用 API 即可
侵入式埋点缺点
需要对业务代码进行改造,可能会需要重新进行回归测试和重新发版
对业务人员不友好,所有的埋点操作都需要通过研发人员进行操作,对于业务的响应有滞后
无侵入埋点一般通过 agent 来实现。
无侵入埋点优点
无需对原有的业务代码进行改造
对业务人员较友好,业务人员可以配置需要埋点的内容
无侵入埋点缺点
埋点粒度无法控制,只能依托于埋点 agent 的实现粒度。
埋点的时效性只能依托于埋点 agent 实现,如果是通过 javaagent 来实现,那么需要重启应用来刷新埋点配置,如果是 attach 来实现则无需重启应用。
javaagent
在这片文章中对于 javaagent 只做简单介绍,无痕埋点的思路是本篇文章的重点。
如果读者想深入了解 ja ...
Hexo+Butterfly+GitHubPages 搭建个人博客
你可能会问本站是怎么来的?既然你诚心诚意的发文了,那我就大发慈悲的告诉你!
前置准备安装 git前去 gitbash 官网 根据自己的系统下载 gitbash。
如果你从未安装过 gitbash,那么在安装过程中只要一路默认即可,需要注意的是软件的安装路径;如果你安装过 gitbash,那么就按自己的喜好进行安装即可。
当你已经安装好 gitbash 后,我们还需要一些必要的配置,请到工作目录右键选择 Git bash here 来启动 gitbash,并在终端执行如下命令:
# 设置 Git 用户名:git config --global user.name "your github username"# 确认您正确设置了 Git 用户名:git config --global user.name# 设置 Git Email:git config --global user.email "your github email"# 确认在 Git 中正确设置了电子邮件地址:git config --global user.email
配置 G ...