前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CDH 6.3.1整合Zeppelin 0.8.2

CDH 6.3.1整合Zeppelin 0.8.2

作者头像
用户1148526
发布2020-03-18 18:18:04
2.1K0
发布2020-03-18 18:18:04
举报
文章被收录于专栏:Hadoop数据仓库Hadoop数据仓库

Zeppelin是一个基于Web的笔记本,可以直接在浏览器中编写代码,对数据进行查询分析并生成报表或图表,做出数据驱动的、交互、协作的文档,并且可以共享笔记。Zeppelin提供了内置的Apache Spark集成,提供的功能有:

  • 自动引入SparkContext 和 SQLContext
  • 从本地文件系统或maven库载入运行时依赖的jar包。
  • 可取消Spark作业和展示作业进度。

在数据可视化方面,Zeppelin已经包含一些基本的图表,如柱状图、饼图、线形图、散点图等。可视化并不只限于Spark查询,任何支持的后端语言输出都可以被图形化表示。

Zeppelin中最核心的概念是解释器,它是一个插件式的体系结构,允许任何语言或后端数据处理程序以插件的形式添加到Zeppelin中。解释器允许用户使用一个指定的语言或数据处理器。每一个解释器都属于换一个解释器组,同一个解释器组中的解释器可以相互引用,例如SparkSql解释器可以引用Spark解释器以获取Spark上下文,因为它们属于同一个解释器组。当前的Zeppelin已经支持很多解释器,如cassandra、file、hbase、kylin、phoenix、elasticsearch、flink、hive、jdbc、psql等等。插件式架构允许用户在Zeppelin中使用自己熟悉的程序语言处理数据。例如,通过使用%spark解释器,可以在Zeppelin中使用Scala语言代码。

一、安装Zeppelin

CDH中没有集成Zeppelin服务,因此需要手工安装。下面是在CDH 6.3.1中安装Zeppelin 0.8.2的主要步骤。

1. 下载Zeppelin安装包 Zeppelin提供源码和二进制两种安装包,源码需要用户自己进行编译,二进制包解压后即可直接运行。为简单起见选择安装二进制包。

下载地址: http://www.apache.org/dyn/closer.cgi/zeppelin/zeppelin-0.8.2/zeppelin-0.8.2-bin-all.tgz 安装指南: http://zeppelin.apache.org/docs/0.8.2/quickstart/install.html https://datacouch.io/install-apache-zeppelin-on-cdh/

2. 解压缩Zeppelin安装包

代码语言:javascript
复制
mkdir /opt/zeppelin
tar -xvf zeppelin-0.8.2-bin-all.tgz -C /opt/zeppelin

3. 配置Zeppelin 在Zeppelin配置文件目录中,创建名为zeppelin-env.sh的环境文件,在其中配置Hadoop配置目录、hive的配置文件的classpath目录、Zeppelin服务器的IP地址和端口号。

代码语言:javascript
复制
cd /opt/zeppelin/zeppelin-0.8.2-bin-all/conf
vi zeppelin-env.sh

export HADOOP_CONF_DIR=/etc/hadoop/conf
export ZEPPELIN_INTP_CLASSPATH_OVERRIDES=/etc/hive/conf
export ZEPPELIN_ADDR=172.16.1.126
export ZEPPELIN_PORT=9091

4. 修改权限 将Zeppelin安装目录的权限设置为777。

代码语言:javascript
复制
chmod -R 777 /opt/zeppelin

5. 启动Zeppelin

代码语言:javascript
复制
cd /opt/zeppelin/zeppelin-0.8.2-bin-all
./bin/zeppelin-daemon.sh start

至此已经完成Zeppelin在CDH上的安装,从浏览器可以打开Zeppelin:http://172.16.1.126:9091

二、配置Zeppelin的用户名密码

缺省Zeppelin使用匿名用户访问,不需要用户名密码,但可以通过简单的配置为Zeppelin增加鉴权功能。shiro.ini文件用来多用户登录和权限管理,可以编辑此文件,根据自己的需要设置登录zeppelin的用户名和密码。

代码语言:javascript
复制
cd /opt/zeppelin/zeppelin-0.8.2-bin-all/conf
cp shiro.ini.template shiro.ini
vi shiro.ini
...
[users]
# List of users with their password allowed to access Zeppelin.
# To use a different strategy (LDAP / Database / ...) check the shiro doc at http://shiro.apache.org/configuration.html#Configuration-INISections
# To enable admin user, uncomment the following line and set an appropriate password.
#admin = password1, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2
...

将admin这行的注释删掉。等号两边分别为用户名和密码,逗号后面设置的是权限,这里都设置为admin。保存配置后重启zeppelin:

代码语言:javascript
复制
/opt/zeppelin/zeppelin-0.8.2-bin-all/bin/zeppelin-daemon.sh start

然后重新登录zeppelin,首页会变成了欢迎页面,要想使用Zeppelin需要先登录,如图1所示。

图1

三、使用Zeppelin查询CDH的hive表

完成前面的步骤后,就可以新建note,执行SparkSQL查询hive表,不在需要任何额外配置,如图2所示。

图2

需要说明的一点是,我们安装的Zeppelin 0.8.2与CDH 6.3.1的Spark有版本兼容性问题。因此这里使用的spark是Zeppelin自带的,spark master为缺省的本地,如图3所示。

图3

四、定义Hive解释器

虽然不能直接使用CDH集群中的Spark直接查询hive表,但是可以自定义一个JDBC的hive解释器,将Zeppelin作为客户端连接到Hive服务器。只要将Hive的执行引擎配置为Spark,就可以间接使用CDH的Spark查询hive。顺便说一句,当CDH 6.3.1中同时启动了Hive和Spark服务,Hive的执行引擎就会自动配置为Spark。

在Interpreters页面点击“+Create”新建一个解释器,Interpreter Name输入hive,Interpreter group选择jdbc,必须修改的属性只有default.driver和default.url两项,如图4所示。

图4

然后是添加依赖包,如图5所示。

图5

我这里需要添加以下jar包,才能正常执行hive查询:

代码语言:javascript
复制
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hive/lib/hive-jdbc-2.1.1-cdh6.3.1.jar
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hadoop/hadoop-common-3.0.0-cdh6.3.1.jar
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hive/lib/hive-service-2.1.1-cdh6.3.1.jar
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hive/lib/hive-service-rpc-2.1.1-cdh6.3.1.jar
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hive/lib/hive-common-2.1.1-cdh6.3.1.jar
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hive/lib/hive-serde-2.1.1-cdh6.3.1.jar

所有修改完成后,点击save保存配置。下面就可以新建note执行hive查询了,如图6所示。

图6

五、定义MySQL解释器

数据可视化的需求很普遍,如果常用的如MySQL这样的关系数据库也能使用Zeppelin查询,并将结果图形化显示,那么就可以用一套统一的数据可视化方案处理大多数常用查询。Zeppelin本身不带MySQL翻译器,但它支持JDBC解释器组,通常只要有相应的JDBC驱动JAR包,就可以轻松创建一个新的解释器。

在Interpreters页面点击“+Create”新建一个解释器,Interpreter Name输入mysql,Interpreter group选择jdbc,然后配置相关属性。最简单情况下只需要设置default.driver、default.user、default.password、default.url四个属性值,分别表示驱动程序、连接MySQL的用户名、密码和URL,如图7所示。

图7

然后在依赖关系的artifact中输入MySQL连接器JAR包,格式为“mysql:驱动名称:版本号”,如图8所示。

图8

点击save保存配置。此时在interpreter页面中会看到mysql解释器。下面创建一个note,使用MySQL作为解释器,查询information_schema.tables表,如图9所示。

图9

如果解释器出现类似以下错误:

代码语言:javascript
复制
Cannot fetch dependencies for mysql:mysql-connector-java:5.1.38

可能是因为Zeppelin的repository中心库无法连接,有两种解决办法。一是在artifact中填写本地jar包路径,如:

代码语言:javascript
复制
/usr/share/java/mysql-connector-java.jar

第二个办法是在zeppelin-env.sh文件中设置ZEPPELIN_INTERPRETER_DEP_MVNREPO环境变量,添加一个可访问的repository地址,如:

代码语言:javascript
复制
export ZEPPELIN_INTERPRETER_DEP_MVNREPO=http://insecure.repo1.maven.org/maven2/

关于这一问题的说明参见:https://stackoverflow.com/questions/59964426/zepplin-mysql-interpreter-error-cannot-fetch-dependencies-for-mysqlmysql-conne

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装Zeppelin
  • 二、配置Zeppelin的用户名密码
  • 三、使用Zeppelin查询CDH的hive表
  • 四、定义Hive解释器
  • 五、定义MySQL解释器
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档