写点什么

MRS +Apache Zeppelin,让数据分析更便捷

  • 2022 年 7 月 22 日
  • 本文字数:2890 字

    阅读完需:约 9 分钟

MRS +Apache Zeppelin,让数据分析更便捷

本文分享自华为云社区《MRS大数据平台结合Apache Zeppelin让数据分析更便捷》,作者: dullman。


Apache Zeppelin:一款大数据分析和可视化工具,可以让数据分析师在一个基于 Web 的 notebook 中,采用不同语言对不同数据源中的数据进行交互式分析,并对结果进行可视化图表的展示。


云服务 MRS:华为云提供的一站式大数据平台,包含 Hudi、ClickHouse、Spark、Flink、Kafka、Hive、HBase 等丰富的大数据组件,完全兼容开源生态。本文介绍如何搭建 Zeppelin 并连接 Hive、HBase 进行简单的数据开发。

为什么写这篇文章?


  1. Zeppelin 相关的文章虽然很多,但是都没有与实际大数据平台结合的实践案例指导。

  2. Zeppelin 的搭建存在不少坑,因此记录下部署中的各个问题,为后人填坑。

  3. 选择轻量化、免运维、低成本的大数据云服务是业界趋势,如果搭建 Zeppelin 再同步自建一套 Hadoop 生态成本太高!因此我们通过结合华为云 MRS 服务构建数据中台。

环境准备


  • Apache Zeppelin 0.9.0 安装包

  • MRS 3.1.0 普通集群 (包含 Hive、HBase 组件)

  • 云服务器 centos7.6

安装 MRS 客户端


MRS 客户端提供 java、python 开发环境,也提供开通集群中各组件的环境变量:Hadoop、Hive、HBase、flink 等。

参见登录 ECS 安装集群外客户端

安装齐柏林


  • 使用 Xftp 等工具导入主机并采用以下命令安装在/opt/zeppelin 目录。


tar -zxvf zeppelin-0.9.0-bin-all.tgzmv zeppelin-0.9.0-bin-all /opt/zeppelin
复制代码


  • 配置 Zeppelin 环境变量,在 profile 文件中加入变量


vi /etc/profileexport ZEPPELIN_HOME=/opt/zeppelinexport PATH=ZEPPELIN_HOME/bin:ZEPPELINH​OME/bin:PATH
复制代码


  • 导入环境变量


source /etc/profile
复制代码


  • 编辑 zeppelin-env.sh 文件,加入 JAVA_HOME,这里需要替换成自己的环境变量


cd /opt/zeppelin/conf/cp zeppelin-env.sh.template zeppelin-env.shsource /opt/hadoopclient/bigdata_envecho “export JAVA_HOME=/opt/hadoopclient/JDK/jdk-8u201”>>zeppelin-env.sh
复制代码


  • 编辑 zeppelin-site.xml 文件,将 zeppelin.server.port 8080 替换成 18081(可自定义,也可以不改);将 zeppelin.anonymous.allowed 参数的 true 修改为 false


cd /opt/zeppelin/confcp zeppelin-site.xml.template zeppelin-site.xmlvi zeppelin-site.xml
复制代码


<property>    <name>zeppelin.server.port</name>    <value>18081</value>    <description>Server port.</description></property><property>    <name>zeppelin.anonymous.allowed</name>    <value>falase</value>    <description>Anonymous user allowed by default</description></property>
复制代码


  • 编辑.ini 文件,新增用户开发用户


cp shiro.ini.template shiro.inivi shiro.ini
复制代码


在[users]下新增用户 developuser,密码 Huawei@123,权限管理员


developuser=Huawei@123, admin
复制代码



  • 运行 Zeppelin(并检查启动参数)


cd /opt/zeppelinbin/zeppelin-daemon.sh start
复制代码



ps ef | grep zeppelin
复制代码



  • 关闭防火墙,允许端口 18081(此为测试环境,生产环境建议采取更安全措施) systtemctl stop firewalld

  • 完成以上配置,并启动成功后,在浏览器中输入地址 zeppelin_ip:18081(zeppelin_ip 为安装 zeppelin 的 HD 客户端 IP),即可看到如下界面。



  • 使用 developuser 登录,就可以基于 note 进行大数据的交互式开发了!


齐柏林飞艇连接 Hive


1、将 Zeppelin 中 jdbc 依赖的 jar 包替换成 MRS 客户端中 Hive/Beeline/lib 中的 jar 包,保证 hive Interpreter 依赖的 Jar 包存在


cp -f /opt/Bigdata/client/Hive/Beeline/lib/*.jar /opt/zeppelin/interpreter/jdbc/
复制代码


2、修改 Zeppelin 配置,添加 Client Hive Url


查询 CLIENT_HIVE_URL


source /opt/hadoopclient/bigdata_envecho $CLIENT_HIVE_URI
复制代码


编辑 interpreter.json,位置/usr/zeppelin/conf/interpreter.json,修改 JDBC default.url,default.driver.


"jdbc": {   "id": "jdbc",   "name": "jdbc",   "group": "jdbc",   "properties": {     "default.url": {       "name": "default.url",       "value": "jdbc:hive2://192.168.1.188:24002,192.168.1.234:24002,192.168.1.241:24002/;serviceDiscoveryMode\u003dzooKeeper;zooKeeperNamespace\u003dhiveserver2",       "type": "string",       "description": "The URL for JDBC."     },     "default.user": {       "name": "default.user",       "value": "gpadmin",       "type": "string",       "description": "The JDBC user name"     },     "default.password": {       "name": "default.password",       "value": "",       "type": "password",       "description": "The JDBC user password"     },     "default.driver": {       "name": "default.driver",       "value": "org.apache.hive.jdbc.HiveDriver",       "type": "string",       "description": "JDBC Driver Name"     }
复制代码


3、重启柏林飞艇


bin/zeppelin-daemon.sh restart
复制代码


4、创建 Notebook,选择 default interpreter 为 jdbc



5、在 notebook 上使用 Hive SQL 进行查询


查询数据库%jdbcshow databases;
复制代码



创建Hive表%jdbccreate external table stu (s_id string,s_name string) row format delimited fields terminated by ‘\t’;
复制代码


Zeppelin 连接 HBase


1、将 Zeppelin 中 hbase 依赖的 jar 包替换成 MRS 客户端中 HBase 中的 jar 包,保持 jar 的一致


  • 先将/opt/zeppelin/interpreter/hbase/目录下原本的 Jar 包移走


cd /opt/zeppelin/interpreter/hbasemkdir hbase_old_jarmv hbase*.jar hbase_old_jarmv hadoop*.jar hbase_old_jarmv zookeeper-3.4.6.jar hbase_old_jar
复制代码


  • 再将/opt/hadoopclient/HBase/hbase/lib/下的 jar 包拷贝至/opt/zeppelin/interpreter/hbase/。


cp -f /opt/hadoopclient/HBase/hbase/lib/*.jar /usr/zeppelin/interpreter/hbase/
复制代码


2、修改 Zeppelin 配置


编辑 zeppelin-env.sh,加入 hbase 环境变量


export HBASE_HOME=/opt/hadoopclient/HBase/hbase
复制代码


编辑 interpreter.json,位置/opt/zeppelin/conf/interpreter.json,修改 hbase.home


  "hbase.home": {        "name": "hbase.home",        "value": "/opt/hadoopclient/HBase/hbase",        "type": "string"      }
复制代码


3、重启 zeppelin


bin/zeppelin-daemon.sh restart
复制代码



4、配置 Interpreter


从 web 界面右上角菜单中 Interpreter 中进入,配置 Interpreter



选择 Hbase,修改如下配置,并保存配置。


hbase.home : /opt/client/HBase/hbase
复制代码



5、创建 note 进行数据开发


页面选择 Notebook →create new note



自定义 Note 名称,例如 hbaseNote,并指定 Interpreter 为 HBase。



编辑 Note,点击右侧“执行”按钮(三角标志)


%hbasecreate ‘test6’, ‘cf’put ‘test6’, ‘row1’, ‘cf:a’, ‘value1’
复制代码


若在创建 Interpreter 未指定 default Interpreter,需要在 note 最前面加上 %hbase 进行指定。



6、在 FusionInsight 客户端下查看刚刚通过 Zeppelin 创建的 hbase 表 test6 和数据


其他 Hadoop 生态组件在云服务 MRS 上的实践参考


使用商业智能软件Superset分析MRS数据之最佳实践

基于云服务MRS构建海豚调度2调度系统

开源工作流引擎Azkaban在MRS中的实践

分布式调度平台Airflow在华为云MRS中的实践


点击关注,第一时间了解华为云新鲜技术~

发布于: 6 小时前阅读数: 22
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
MRS +Apache Zeppelin,让数据分析更便捷_大数据_华为云开发者联盟_InfoQ写作社区