一次调用cloudera的的API和JSON想到的

JSON的null字段
在我的项目中修改了YARN的资源池,到cloudera中就报错,查询还不报错,但是修改的时候,就报错,大致意思就是信息有异常,“包含了尖括号。
因为通过API+json交互,我就怀疑是不是因为我提交的json格式有错,因为只要把从这边添加的用户删除了,cloudera那边就好用了。
那么关键是怎么比对差异呢?我又添加了一个用户hdfs,然后从json中提取hbase(原有的用户)以及hdfs,在Beyond Compare中进行比对,终于发现了不同,原来还有几个隐含项需要在JSON中声明:scheduleName以及schedulingPolicy。
 
与之类似的,在json中为空;但是我们在生成和json对应的eneitty的时候对于整型默认是int类型,这个就问题了,因为int是结构,不能为空;因此需要把int统统都转换为Integer,这样就可以赋值为空了,同时在通过entity向VO赋值的时候要做空判断;
另外,页面对于空值一般的表达方式为“-”,对于要绑定到页面的实体,类型最好是String,这就意味着VO和entity要进行分离,不同共享一个实体类;同时在通过VO向entity赋值的时候,需要做空判断,对于空字符串的,entity的该字段要设置为null。
YARN神坑
  这个坑是我自己踩得。
  今天提交spark任务到yarn总是处于ACCEPT状态,屡次尝试都是如此。后来才发现原来是因为将MA设置为“Max Running Apps”设置为0了;这意味着:没有应用可以被分配;原因和上面提到的类似,json转字符串设置为int,必须有值,默认是0;看来需要转换为Integer
原文地址:https://www.cnblogs.com/xiashiwendao/p/8047585.html