Fork me on Gitee

Zeppelin安装及配置Hive、Spark和Flink解释器

1. Zeppelin下载及安装

1.1 安装环境

  • Cent os 7.5
  • Hadoop 3.2
  • Hive-3.1.2
  • Scala
  • Spark-3.0.0-bin-hadoop3.2
  • Flink 1.13.2
  • Zeppelin 0.9.0

1.2 Zeppelin下载

Zeppelin 安装包下载地址
http://zeppelin.apache.org/download.html

1.3 上传并解压

# 解压zeppelin安装包
tar -zxvf zeppelin-0.9.0-bin-all.tgz -C /data/soft/

注意:如果是正式生产环境,建议部署到/usr/local/目录下。本文以学习为主,部署在/data/Soft目录下。

1.4 修改zeppelin配置文件

  1. 自定义zeppelin访问端口
    修改 zeppelin-site.xml文件。由于zeppelin默认的端口号为8080(与Spark默认端口冲突),因此有必要修改zeppelin的默认端口。此处修改为8000。
  <property>
    <name>zeppelin.server.addr</name>
    <value>192.168.21.102</value>
    <description>Server binding address</description>
  </property>
  <property>
    <name>zeppelin.server.port</name>
    <value>8000</value>
    <description>Server port.</description>
  </property>
  1. 配置zeppelin-env.sh
export JAVA_HOME=/usr/local/jdk1.8
export HADOOP_CONF_DIR=/data/soft/hadoop-3.2.0/etc/hadoop
export SPARK_MASTER_IP=192.168.21.102
export SPARK_LOCAL_IP=192.168.21.102

1.5 启动

ZEPPELIN_HOME目录下,进入bin目录下,执行启动命名

./zeppelin-daemon.sh start

如果显示结果如下图,则表示启动成功。

1.6 访问zeppelin Web页面。

zeppelin启动完成后,可使用浏览器访问http://ip:端口,即可看到zeppelin的web界面。

ip和端口与zeppelin-site.xml中配置保持一致。

此处显示的登录用户为admin,而并非默认的annoymous,是因为博主已配置shiro相关内容。默认不配置shiro,无须登录,显示账户为annoymous.

1.7 zeppelin 权限配置

zeppelin默认运行匿名用户访问,即没有用户权限相关要求。如果想实现权限控制,则需要修改shiro配置文件。(有些博主基于0.8.0可能还需要配置修改zeppelin-site.xml中相关内容,在此一并都贴出来)。
修改 zeppelin-site.xml

<property>
  <name>zeppelin.anonymous.allowed</name>
  <value>false</value>
  <description>Anonymous user allowed by default</description>
</property>

拷贝conf目录下的shiro.ini.template,改为shiro.ini,修改shiro.ini中的内容

cp shiro.ini.template shiro.ini

使用vim工具修改的内容如下

[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 = admin, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2

注意:逗号前面是用户名,逗号后面是登录密码

2. 配置Hive解释器

2.1 前提条件(启动HiverServer2)

要在zeppelin中使用Hive,必须启动hiverserver2服务 以后台方式启动hiveserver2

nohup hive --service hiveserver2 &

2.2 修改配置文件

复制hive-site.xml到zeppline中

cp /data/soft/hive-3.1.2/conf/hive-site.xml /data/soft/zeppelin-0.9.0-bin-all/conf

2.3 配置Hive解释器

新建一个继承jdbc的解释器,命名为hive,如下图所示

属性名称 属性值
default.url jdbc:hive2://192.168.21.102:10000
default.driver org.apache.hive.jdbc.HiveDriver

属性配置完成够,将以下依赖添加到hive解释器依赖库中。

Artifate Exclude
org.apache.hive:hive-jdbc:3.1.2
org.apache.hadoop:hadoop-common:3.2.0
mysql:mysql-connector-java:5.1.38

测试Hive解释器

新建笔记

在笔记中输入以下测试笔记

%hive
show databases;

3. 配置Spark解释器

Zeppelin默认的spark解释器包括%spark , %sql , %dep , %pyspark , %ipyspark , %r等子解释器,在实际应用中根据spark集群的参数修改具体的属性 进入解释器配置界面,默认为local[*],Spark采用何种运行模式,参数配置信息如下。

local模式:使用local[*],[]中为线程数,*代表线程数与计算机的CPU核心数一致。
standalone模式: 使用spark://master:7077
yarn模式:使用yarn-client或yarn-cluster
mesos模式:使用mesos://zk://zk1:2181,zk2:2182,zk3:2181/mesos或mesos://host:5050

测试 运行Zeppelin自带的Basic Feature(Spark)案例。

import org.apache.commons.io.IOUtils
import java.net.URL
import java.nio.charset.Charset

// Zeppelin creates and injects sc (SparkContext) and sqlContext (HiveContext or SqlContext)
// So you don't need create them manually

// load bank data
val bankText = sc.parallelize(
    IOUtils.toString(
        new URL("https://s3.amazonaws.com/apache-zeppelin/tutorial/bank/bank.csv"),
        Charset.forName("utf8")).split("\n"))

case class Bank(age: Integer, job: String, marital: String, education: String, balance: Integer)

val bank = bankText.map(s => s.split(";")).filter(s => s(0) != "\"age\"").map(
    s => Bank(s(0).toInt, 
            s(1).replaceAll("\"", ""),
            s(2).replaceAll("\"", ""),
            s(3).replaceAll("\"", ""),
            s(5).replaceAll("\"", "").toInt
        )
).toDF()
bank.registerTempTable("bank")

4. 配置Flink解释器

4.1 准备Flink环境

配置Flink集群。并启动Flink服务。

# $FLINK_HOME/bin
cd /data/soft/flink-1.12.5/bin
# 启动flink集群
./start-cluster.sh 

4.2 Zeppelin中配置Flink集群

参数名称 参数值 参数含义
FLINK_HOME Flink集群目录
HADOOP_CONF_DIR Hadoop配置文件目录
HIVE_CONF_DIR HIVE配置文件目录
Flink.execution.mode Flink执行模式,可以选择本地、远程和yarn
Flink.execution.remote.host 远程模式主机host,仅适用于remote模式
Flink.execution.remote.port 8081 执行JobManager端口,仅适用于remote模式

4.3 测试Flink解释器

选择Notebook -->Flink Basics文件夹 -->Flink Basics笔记。

执行第一个Batch WordCount任务。点击运行符号,或输入shift+enter执行任务。

可以在Flink Web UI中看到提交过来的Job和处理的详情

随后可以看到任务已执行完毕,并在笔记界面看到输出结果展示。 Flink Web UI 显示任务已执行完毕。

笔记界面已显示执行结果。

posted @ 2021-08-13 16:23  shine-rainbow  阅读(1573)  评论(0编辑  收藏  举报