温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github:
https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1.文档编写目的
CDH集群中可以使用Hue访问Hive、Impala、HBase、Solr等,在Hue3.8版本后也提供了Notebook组件(支持R、Scala及python语言),但在CDH中Hue默认是没有启用Spark的Notebook,使用Notebook运行Spark代码则依赖Livy服务。在前面Fayson也介绍了《
Livy,基于Apache Spark的开源REST服务,加入Cloudera Labs
》、《
如何编译Livy并在非Kerberos环境的CDH集群中安装
》、《
如何通过Livy的RESTful API接口向非Kerberos环境的CDH集群提交作业
》、《
如何在Kerberos环境的CDH集群部署Livy
》、《
如何通过Livy的RESTful API接口向Kerberos环境的CDH集群提交作业
》、《
如何打包Livy和Zeppelin的Parcel包
》和《
如何在CM中使用Parcel包部署Livy及验证
》,本篇文章Fayson主要介绍如何在Hue中添加Notebook组件并集成Spark。
- 测试版本
1.CM和CDH版本为5.14.2
- 前置条件
1.Hue服务已安装且正常运行
2.Livy服务已安装且正常运行
2.Hue添加Notebook
1.使用管理员登录CM控制台,进入Hue服务界面
2.点击“配置”,在搜索栏输入“hue_safety_valve.ini”
3.在hue_safety_value.ini中添加如下配置启用Notebook功能
[desktop] app_blacklist= [spark] livy_server_host=cdh02.fayson.com livy_server_port=8998 livy_server_session_kind=yarn [notebook] show_notebooks=true enable_external_statements=true enable_batch_execute=true
(可左右滑动)
保存配置并重启Hue服务。
3.Hue中使用验证
1.使用hiveadmin用户登录Hue
2.点击“Query”->“Editor”->“Notebook”菜单,打开一个新的Notebook
3.新打开的Notebook页面如下
该Notebook支持的所有类型
4.创建一个PySpark交互式会话并运行示例代码
from __future__ import print_function import sys from random import random from operator import add partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2 n = 100000 * partitions def f(_): x = random() * 2 - 1 y = random() * 2 - 1 return 1 if x ** 2 + y ** 2 < 1 else 0 count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add) print("Pi is roughly %f" % (4.0 * count / n))
(可左右滑动)
查看当前Notebook启动的Session
5.通过菜单切换运行环境,可以是R、PySpark、Scala、Impala、Hive等
6.运行Spark Notebook成功可以看到Livy中已成功创建了Spark Session会话
Yarn界面
4.总结
1.CDH版本中的Hue默认是没有启用Notebook组件,需要在hue_safety_value.ini文件中添加配置。
2.创建Spark Notebook则需要依赖Livy服务,需要在集群中部署Livy服务并在Hue中配置Livy环境。
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操