此外需要在hdfs core-site.xml 配置如下代理:

 
<property>
<name>hadoop.proxyuser.livy.groups</name>
<value>*</value>
<description>Allow the superuser livy to impersonate any members of the group group1 and group2</description>
</property>
<property>
<name>hadoop.proxyuser.livy.hosts</name>
<value>*</value>
<description>The superuser can connect only from host1 and host2 to impersonate a user</description>
</property>

如果不配置的话,会有

ERROR: org.apache.hadoop.security.authorize.AuthorizationException: User: livy is not allowed to impersonate xxx

该警告会影响任务的提交.

配置完成后,别忘了重启hdfs,livy,yarn等

    String  user = "livy";
HashMap<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
headers.put("Accept", "application/json");
headers.put("X-Requested-By", user);
//创建一个交互式会话

// String kindJson = “{“kind”: “spark”, “proxyUser”:“livy”}”;

// HttpUtils.postAccess(LIVY_HOST + “/sessions”, headers, kindJson);

    //执行code
String code = "{\"code\":\"sc.parallelize(1 to 2).count()\"}";
HttpUtils.postAccess(LIVY_HOST + "/sessions/0/statements", headers, code);