前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0580-5.16.1-通过CDSW API获取所有用户的Project详细信息

0580-5.16.1-通过CDSW API获取所有用户的Project详细信息

作者头像
Fayson
发布2019-04-28 18:04:08
1.3K0
发布2019-04-28 18:04:08
举报
文章被收录于专栏:Hadoop实操

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

Fayson的github: https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1

文档编写目的

在正常使用CDSW的情况下,我们也需要对CDSW服务的监控状况进行监控,CDSW默认的工程存储路径是在服务器的/var/lib/cdsw/current/projects/projects/0的目录下,由于所有的工程存储均是以编号来标识,无法确定每个工程对应的用户,不便于维护管理。本篇文章Fayson主要介绍通过CDSW API的方式获取到用户与工程名和编号的对应关系。

  • 测试环境

1.RedHat7.4

2.CDSW版本为1.4.2

3.CM和CDH版本为5.16.1

2

涉及API接口

在这篇文章中Fayson主要介绍通过API接口获取CDSW所有的业务用户以及每个用户创建的Project列表,本篇文章涉及到的API接口如下:

  • 获取CDSW的所有用户列表API
代码语言:javascript
复制
请求地址:http://{cdsw_domain}/api/v1/site/users?limit=30&offset=0&order_by=last_seen_at&order_sort=desc
请求类型:GET
返回值:[{
    "id": 2,
    "username": "fayson",
    "username_hash": "7456d089ce96f523773a3c581065f55c5f28eb8ea5d39c46ab4cb719f163116c",
    "type": "user",
    "email": "fayson@qq.com",
    "name": "fayson",
    "api_key": "uboqugrcjx6qqftj0wfazhxye5f7vd3l",
    "custom_payment": false,
    "admin": false,
    "last_login_at": "2019-02-18T13:28:14.395Z",
    "joined_on": "2019-02-18T13:28:14.395Z",
    "onboarding_complete": false,
    "onboarding_step": 0,
    "last_seen_at": "2019-03-11T10:28:20.065Z",
    "last_logout_at_tz": "2019-03-11T10:29:05.282Z",
    "followers": 0,
    "public_projects": 0,
    "organization_projects": 0,
    "private_projects": 2,
    "running_dashboards": 0,
    "usage_credits": 5,
    "outstanding_balance": 0,
    "last_context_id": 2,
    "banned": false,
    "deactivated": false,
    "memory_hours": 0.0424611877777778,
    "cpu_hours": 0.0212305938888889,
    "gpu_hours": 0,
    "avg_session_duration": 0,
    "jobs_run": 0,
    "sessions_run": 2,
    "cc_onfile": false,
    "html_url": "http://cdsw.fayson.com/fayson",
    "url": "http://cdsw.fayson.com/api/v1/users/fayson"
  }]
  • 获取指定用户下所有的Project列表
代码语言:javascript
复制
请求地址:http://{cdsw_domain}/api/v1/users/{user}/projects
请求类型:GET
返回值:[{
    "id": 5,
    "name": "testpython",
    "slug": "fayson1/testpython",
    "slug_raw": "testpython",
    "owner": {
        "id": 3,
        "username": "fayson1",
        "name": "fayson1",
        "email": "fayson1@qq.com",
        "type": "user",
        "html_url": "http://cdsw.fayson.com/fayson1",
        "url": "http://cdsw.fayson.com/api/v1/users/fayson1"
    },
    "creator": {
        "id": 3,
        "username": "fayson1",
        "name": "fayson1",
        "url": "http://cdsw.fayson.com/api/v1/users/fayson1",
        "html_url": "http://cdsw.fayson.com/fayson1"
    },
    "description": "",
    "stars": 0,
    "starred": null,
    "forks": 0,
    "forked": false,
    "running_dashboards": 0,
    "history": [{
        "day": "2019-03-11 00:00:00Z",
        "count": 2
    }],
    "public": false,
    "project_visibility": "private",
    "created_at": "2019-03-11T15:06:43.876Z",
    "updated_at": "2019-03-11T15:17:05.263Z",
    "user_updated_at": "2019-03-11T15:27:45.400Z",
    "html_url": "http://cdsw.fayson.com/fayson1/testpython",
    "url": "http://cdsw.fayson.com/api/v1/projects/fayson1/testpython"
}]

3

获取用户工程列表

本章节测试主要使用curl命令方式调用API接口,获取所用CDSW业务用户创建的Project详细信息。

1.使用管理员账号执行如下命令获取所有的cdsw业务用户

代码语言:javascript
复制
[root@ip-172-31-13-38 ~]# curl -u 'admin:123456' -X GET http://cdsw.fayson.com/api/v1/site/users

通过如上API接口可以获取到所有用户的详细信息,如上图有几个关键的信息,用户的username以及api_key信息,在接下来的接口请求中会用到。

2.使用如下命令,获取指定用户的Project列表

代码语言:javascript
复制
[root@ip-172-31-13-38 ~]# curl -X GET http://cdsw.fayson.com/api/v1/users/fayson1/projects --user "uxwejvsrw4ur1taqr2a2q8ozl1mluf11:"

通过上述接口可以获取到每个CDSW用户的Project列表,包含了Project的详细信息(ID,name等)。

4

总结

1.使用管理员账号通过API接口首先获取到CDSW集群中所有的用户信息,主要是获取用户的username以及api_key信息。

2.通过username和api_key参数结合获取用户Project列表的API接口,获取到指定用户的所有Project信息,信息中包含了每个工程的ID就可以与磁盘上的工程目录对应起来,监控每个用户工程磁盘使用情况。

3.在使用获取Project API接口时需要注意两个参数{user}和--user,{user}需要替换为每个业务用户的username,--user参数指定的为业务用户的api_key,注意最后面需要添加“:”。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档