我们知道,在hdp中使用Zeppelin的时候,我们往往很难使用Zeppelin插件默认的一些配置,需要我们自定义才能满足需求。现在就我工作中的一些项目经验,列举一些例子,希望对小伙伴有所帮助^_^。
注意:以下的操作都是基于Zeppelin的web页面
1.使用spark语言写程序【本地模式】
(1)先要自定义一个spark插件,点击右上角 admin 的按钮,选择Interpreter选项
(2)进入页面之后,点击Create按钮,随便写一个Interpreter Name 比如myspark, 然后在Interpreter group选项中选择spark
(3)填写spark.cores.max , spark.executor.memory选项,其他的酌情修改,例如 spark.cores.max : 3 , spark.executor.memory : 1g
参数填写:
master local[*]
spark.cores.max 6
spark.executor.memory 1g
(4)填写完毕之后点击下方的Save按钮
(5)点击Create new note,然后选择spark2或者spark,如果之前选的不是,可以点击右方的“小齿轮”按钮切换。
(6)使用方法:
%myspark
sc
2.使用spark语言写程序【yarn cluster模式】
(1)先要自定义一个spark插件,点击右上角 admin 的按钮,选择Interpreter选项
(2)进入页面之后,点击Create按钮,随便写一个Interpreter Name 比如myspark, 然后在Interpreter group选项中选择spark
参数填写:
SPARK_HOME /usr/hdp/current/spark2-client 【新增】
deploy-mode cluster 【新增】
master yarn 【使用yarn提交】
spark.cores.max 6
spark.executor.memory 1g
(3)填写完毕之后点击下方的Save按钮
(4)点击Create new note,然后选择spark2或者spark,如果之前选的不是,可以点击右方的“小齿轮”按钮切换。
(5)使用方法:
%myspark
sc
3.使用jdbc语言写程序
(1)先要自定义一个jdbc插件,点击右上角 admin 的按钮,选择Interpreter选项
(2)进入页面之后,点击Create按钮,随便写一个Interpreter Name比如mysql, 然后在Interpreter group选项中选择jdbc
(3)修改以下几个属性【按照自己的需求】
例如:
default.driver : com.mysql.jdbc.Driver 【官网上面写的是org.mysql.jdbc.Driver是错的】
default.password : qwe123
default.url :jdbc:mysql://192.168.2.207:3306/
default.user :root
(4)添加依赖Dependencies,如果有网络的话直接按pom文件的格式写,如果没有网络需要将mysql的驱动包上传到你的zepplin的目录
中,然后用本地路径去引用
例如:我的mysql的驱动包是mysql-connector-java-6.0.6.jar,上传到zeppelin目录的/usr/hdp/current/zeppelin-server/lib目录
中,然后在artifact里面填写本地路径是:/usr/hdp/current/zeppelin-server/lib/mysql-connector-java-6.0.6.jar
【注意:目前hdp的版本放在/usr/hdp/2.6.3.0-235/zeppelin/lib/mysql-connector-java-6.0.6.jar】
(5)点击下方的Save按钮,然后返回到主页面创建note,之后选择自己定义的那个Interpreter Name,我这里是mysql。
(6)使用方法:
%mysql
show databases;
以下需要注意,至少作者在hdp-2.6.3中踩到了雷~
(1)使用python语言编写程序不需要自定义的插件,直接选择已经有的python即可。
(2)使用livy语言访问会有权限问题,所以需要给登陆zeppelin的用户赋予操作/user这个目录的权限。另外livy interpreter里面直接写
livy.spark.master有问题,需要先编辑Livy的配置文件spark-blacklist.conf,注释掉spark.master。
(3)在zepplin里面使用sparkSql会报错lang3 inviad,可以在Interpreters里面显示的指明使用哪个lang的jar版本,我这里配置的是:
在Dependencies里面添加一个
/usr/hdp/current/spark2-client/jars/commons-lang3-3.5.jar
最后,欢迎热爱技术的小伙伴加入我们的聊天群qq: 852278138 ,大家一起交流^_^