Apache Doris (二十九):Doris 数据导入(七)Spark Load 2- Doris创建Spark Resource

目录

1. 创建Spark Resource

2. 分配资源权限


进入正文之前,欢迎订阅专题、对博文点赞、评论、收藏,关注IT贫道,获取高质量博客内容!

宝子们订阅、点赞、收藏不迷路!抓紧订阅专题!


1. 创建Spark Resource

Spark 作为一种外部计算资源在 Doris 中用来完成ETL工作,因此我们引入 resource management 来管理 Doris 使用的这些外部资源。在Doris中提交Spark Load任务之前需要创建执行ETL任务的Spark Resource ,创建Spark Resource的语法如下:

-- create spark resource
CREATE EXTERNAL RESOURCE resource_name
PROPERTIES
(
type = spark,
spark_conf_key = spark_conf_value,
working_dir = path,
broker = broker_name,
broker.property_key = property_value
)

-- drop spark resource
DROP RESOURCE resource_name

-- show resources
SHOW RESOURCES
SHOW PROC "/resources"
  • resource_name为 Doris 中配置的 Spark 资源的名字。
  • PROPERTIES 是 Spark 资源相关参数,具体Properties参数如下:
    • type:资源类型,必填,目前仅支持 spark。
    • spark.master: 必填,目前支持 yarn,spark://host:port。
    • spark.submit.deployMode: Spark 程序的部署模式,必填,支持 cluster,client 两种。
    • spark.hadoop.yarn.resourcemanager.address: master 为 yarn 时必填。
    • spark.hadoop.fs.defaultFS: master为yarn时必填。
  • working_dir: ETL 使用的目录。spark作为ETL资源使用时必填。例如:hdfs://host:port/tmp/doris。当提交 spark load 任务时,会将归档好的依赖文件上传至远端仓库,默认仓库路径挂在 working_dir/{cluster_id} 目录下。
  • broker: broker 名字。spark 作为 ETL 资源使用时必填。需要使用 ALTER SYSTEM ADD BROKER 命令提前完成配置,可以通过show broker命令来查询。
  • broker.property_key: broker 读取 ETL 生成的中间文件时需要指定的认证信息等。

这里我们创建Spark Resource,Spark Resource 可以指定成Spark Standalone client模式、cluster模式,也可以指定成Yarn Client、Yarncluster模式,下面以Yarn Cluster 模式对Spark Resource进行演示。

-- spark standalone client 模式,注意:目前测试standalone client和cluster有问题,不能获取执行任务对应的appid导致后续不能向doris加载数据
CREATE EXTERNAL RESOURCE "spark0"
PROPERTIES
(
"type" = "spark",
"spark.master" = "spark://node1:7077",
"spark.submit.deployMode" = "client",
"working_dir" = "hdfs://node1:8020/tmp/doris-standalone",
"broker" = "broker_name"
);



-- yarn cluster 模式
CREATE EXTERNAL RESOURCE "spark1"
PROPERTIES
(
"type" = "spark",
"spark.master" = "yarn",
"spark.submit.deployMode" = "cluster",
"spark.executor.memory" = "1g",
"spark.hadoop.yarn.resourcemanager.address" = "node1:8032",
"spark.hadoop.fs.defaultFS" = "hdfs://node1:8020",
"working_dir" = "hdfs://node1:8020/tmp/doris-yarn",
"broker" = "broker_name"
);

注意:

  1. 以上standalone和yarn 都支持client和cluster模式部署,只需要将deployMode修改成对应模式即可。
  2. 经过后期测试Spark Standalone 模式执行Spark Load任务时有问题,所以后续基于yarn进行Spark Load任务提交,使用spark1 resource演示。
  3. 以上使用到HDFS路径时,不支持HDFS HA 写法,需要手动指定Active NameNode节点信息。
  4. Resource资源不属于任意一个库,通过MySQL客户端可以直接创建。

当Spark Resource创建完成之后,可以通过以下命令查看和删除Resources:

#查看Resources

mysql> show resources;

+--------+--------------+-------------------------+---------------------------------------+

| Name   | ResourceType | Item                    | Value                                 |

+--------+--------------+-------------------------+---------------------------------------+

| spark0 | spark        | spark.master            | spark://node1:8088                    |

| spark0 | spark        | spark.submit.deployMode | client                                |

| spark0 | spark        | working_dir             | hdfs://mycluster/tmp/doris-standalone |

| spark0 | spark        | broker                  | broker_name                           |

+--------+--------------+-------------------------+---------------------------------------+



#删除Resources

mysql> drop resource spark0;

Query OK, 0 rows affected (0.03 sec)

重新创建以上spark0,spark1 resource资源,方便后续Spark Load使用。

2. 分配资源权限

普通账户只能看到自己有 USAGE_PRIV 使用权限的资源,root和admin 账户可以看到所有的资源。资源权限通过 GRANT REVOKE 来管理,目前仅支持 USAGE_PRIV 使用权限。可以将 USAGE_PRIV 权限赋予某个用户,操作如下:

-- 授予spark0资源的使用权限给用户user0
GRANT USAGE_PRIV ON RESOURCE "spark0" TO "user0"@"%";

-- 授予所有资源的使用权限给用户user0
GRANT USAGE_PRIV ON RESOURCE * TO "user0"@"%";


-- 撤销用户user0的spark0资源使用权限
REVOKE USAGE_PRIV ON RESOURCE "spark0" FROM "user0"@"%";

这里我们使用的用户为root,所以不必再进行资源权限赋权。


  • 个人主页:https://blog.csdn.net/qq_32020645?type=blog  主页包含各种IT体系技术
  • 订阅:拥抱独家专题,你的订阅将点燃我的创作热情!
  • 点赞:赞同优秀创作,你的点赞是对我创作最大的认可!
  • ⭐️ 收藏:收藏原创博文,让我们一起打造IT界的荣耀与辉煌!
  • ✏️评论:留下心声墨迹,你的评论将是我努力改进的方向!

你可能感兴趣的:(Apache,Doris,doris,实时数仓,olap,数据仓库,分布式数据库)