cdh5.7.1 +kerberos + livy server v0.2.0 安装测试步骤

Livy 是一个开源的 REST接口,负责和Apache Spark进行交互。 支持执行片段代码和程序在一个Spark context 里面,可以运行在locally 或者 Apache Hadoop Yarn 模式。
交付式 Scala、Python和R shell
批量提交 Scala、java、Python
多用户可以共享一个server(模拟支持)
可以在任何地方使用REST 提交job
自己的的源码不需要任何修改

1、安装手册

  livy.conf 添加如下内容: 
livy.repl.enableHiveContext = true
livy.impersonation.enabled = true
livy.server.session.timeout = 1h
livy-env.sh 添加如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_60
export SPARK_HOME=/opt/cloudera/parcels/CDH-5.9.0-1.cdh5.9.0.p0.23/lib/spark
export SPARK_CONF_DIR=/etc/spark/conf
export HADOOP_CONF_DIR=/etc/hive/conf

/etc/profile 添加如下内容:

export JAVA_HOME=/usr/java/latest
export LIVY_HOME=/opt/livy
export PATH=$LIVY_HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/sbin:$PATH

2、 kerberos 设置

  spark livy server 目前执行kerberos 认证,目前只能一个用户启动一个livy server,下面是生存用户的keytab:
addprinc -randkey   spark_test
xst -norandkey -k spark_test.keytab spark_test

3、 启动 livy server

拷贝到spark-test 用户,并启动livy server:

[root@cdndc-213044119 bin]# kinit -kt /root/spark_test.keytab spark_test
[root@cdndc-213044119 bin]# pwd
/opt/livy/bin
[root@cdndc-213044119 bin]# ./livy-server 
16/12/19 15:43:00 INFO LivyServer: Using spark-submit version 1.6.0
16/12/19 15:43:01 WARN RequestLogHandler: !RequestLog
16/12/19 15:43:01 INFO WebServer: Starting server on http://cdndc-213044119.wdds.com:8998

4、初级测试:

进入python 命令行,进行如下测试:Spark Example

sudo pip install requests
import json, pprint, requests, textwrap
host = 'http://localhost:8998'
data = {'kind': 'spark'}
headers = {'Content-Type': 'application/json'}
r = requests.post(host + '/sessions', data=json.dumps(data), headers=headers)
r.json()

session_url = host + r.headers['location']
r = requests.get(session_url, headers=headers)
r.json()

statements_url = session_url + '/statements'
data = {'code': '1 + 1'}
r = requests.post(statements_url, data=json.dumps(data), headers=headers)
r.json()

{u'output': None, u'state': u'running', u'id': 0}

statement_url = host + r.headers['location']
r = requests.get(statement_url, headers=headers)
pprint.pprint(r.json())

{u'id': 0,
  u'output': {u'data': {u'text/plain': u'res0: Int = 2'},
              u'execution_count': 0,
              u'status': u'ok'},
  u'state': u'available'}

data = {
  'code': textwrap.dedent("""\
 val NUM_SAMPLES = 100000;
 val count = sc.parallelize(1 to NUM_SAMPLES).map { i =>
 val x = Math.random();
 val y = Math.random();
 if (x*x + y*y < 1) 1 else 0
 }.reduce(_ + _);
 println(\"Pi is roughly \" + 4.0 * count / NUM_SAMPLES)
 """)
}

r = requests.post(statements_url, data=json.dumps(data), headers=headers)
pprint.pprint(r.json())

session_url = 'http://localhost:8998/sessions/0'
requests.delete(session_url, headers=headers)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值