目录
(3)将 hive-site.xml 拷贝到 zeppelin 的配置目录下
1. 实验目的
- 使用 Zeppelin 运行 SparkSQL 访问 Hive 表
- 动态表单 SQL
2. 实验环境
12 个节点的 Spark 集群,以 standalone 方式部署,各个节点运行的进程如表1 所示。
主机名 | 运行进程 |
nbidc-agent-03 | Hadoop NameNode Spark Master |
nbidc-agent-04 | Hadoop SecondaryNameNode |
nbidc-agent-11 | Hadoop ResourceManager Hadoop DataNode、Hadoop NodeManager、Spark Worker |
nbidc-agent-12 | Hadoop DataNode、Hadoop NodeManager、Spark Worker |
nbidc-agent-13 | Hadoop DataNode、Hadoop NodeManager、Spark Worker |
nbidc-agent-14 | Hadoop DataNode、Hadoop NodeManager、Spark Worker |
nbidc-agent-15 | Hadoop DataNode、Hadoop NodeManager、Spark Worker |
nbidc-agent-18 | Hadoop DataNode、Hadoop NodeManager、Spark Worker |
nbidc-agent-19 | Hadoop DataNode、Hadoop NodeManager、Spark Worker |
nbidc-agent-20 | Hadoop DataNode、Hadoop NodeManager、Spark Worker |
nbidc-agent-21 | Hadoop DataNode、Hadoop NodeManager、Spark Worker |
nbidc-agent-22 | Hadoop DataNode、Hadoop NodeManager、Spark Worker |
表1
- 操作系统:CentOS release 6.4
- Hadoop版本:2.7.0
- Hive版本:2.0.0
- Spark版本:1.6.0
本实验在 nbidc-agent-04 上安装部署 Zeppelin。Hadoop 集群的安装配置参考“Hadoop 集群安装配置实验”,hive 的安装配置参考“hive 安装配置实验”,Spark 集群的安装配置参考“Spark 安装配置实验”。
3. 安装 Zeppelin
前提:nbidc-agent-04 需要能够连接互联网。
(1)安装 Git
在 nbidc-agent-04 上执行下面的指令:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker
yum remove git
cd /home/work/tools/
wget https://github.com/git/git/archive/v2.8.1.tar.gz
tar -zxvf git-2.8.1.tar.gz
cd git-2.8.1.tar.gz
make prefix=/home/work/tools/git all
make prefix=/home/work/tools/git install
(2)安装 Java
在 nbidc-agent-03 机器上执行下面的指令拷贝 Java 安装目录到 nbidc-agent-04 机器上。
scp -r jdk1.7.0_75 nbidc-agent-04:/home/work/tools/
(3)安装 Apache Maven
在 nbidc-agent-04 上执行下面的指令:
cd /home/work/tools/
wget ftp://mirror.reverse.net/pub/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
tar -zxvf apache-maven-3.3.9-bin.tar.gz
(4)安装 Hadoop 客户端
在 nbidc-agent-03 机器上执行下面的指令拷贝 Hadoop 安装目录到 nbidc-agent-04 机器上。
scp -r hadoop nbidc-agent-04:/home/work/tools/
(5)安装 Spark 客户端
在 nbidc-agent-03 机器上执行下面的指令拷贝 Spark 安装目录到 nbidc-agent-04 机器上。
scp -r spark nbidc-agent-04:/home/work/tools/
(6)安装 Hive 客户端
在 nbidc-agent-03 机器上执行下面的指令拷贝 Hive 安装目录到 nbidc-agent-04 机器上。
scp -r hive nbidc-agent-04:/home/work/tools/
(7)安装 phantomjs
在 nbidc-agent-04 上执行下面的指令:
cd /home/work/tools/
tar -jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
(8)下载最新的 zeppelin 源码
在 nbidc-agent-04 上执行下面的指令:
cd /home/work/tools/
git clone https://github.com/apache/incubator-zeppelin.git
(9)设置环境变量
在 nbidc-agent-04 上执行下面的指令:
vi /home/work/.bashrc
# 添加下面的内容
export PATH=.:$PATH:/home/work/tools/jdk1.7.0_75/bin:/home/work/tools/hadoop/bin:/home/work/tools/spark/bin:/home/work/tools/hive/bin:/home/work/tools/phantomjs-2.1.1-linux-x86_64/bin:/home/work/tools/incubator-zeppelin/bin;
export JAVA_HOME=/home/work/tools/jdk1.7.0_75
export HADOOP_HOME=/home/work/tools/hadoop
export SPARK_HOME=/home/work/tools/spark
export HIVE_HOME=/home/work/tools/hive
export ZEPPELIN_HOME=/home/work/tools/incubator-zeppelin
# 保存文件,并是设置生效
source /home/work/.bashrc
(10)编译 zeppelin 源码
在 nbidc-agent-04 上执行下面的指令:
cd /home/work/tools/incubator-zeppelin
mvn clean package -Pspark-1.6 -Dspark.version=1.6.0 -Dhadoop.version=2.7.0 -Phadoop-2.6 -Pyarn -DskipTests
4. 配置 Zeppelin
(1)配置 zeppelin-env.sh 文件
在 nbidc-agent-04 上执行下面的指令:
cp /home/work/tools/incubator-zeppelin/conf/zeppelin-env.sh.template /home/work/tools/incubator-zeppelin/conf/zeppelin-env.sh
vi /home/work/tools/incubator-zeppelin/conf/zeppelin-env.sh
# 添加下面的内容
export JAVA_HOME=/home/work/tools/jdk1.7.0_75
export HADOOP_CONF_DIR=/home/work/tools/hadoop/etc/hadoop
export MASTER=spark://nbidc-agent-03:7077
(2)配置 zeppelin-site.xml
在 nbidc-agent-04 上执行下面的指令:
cp /home/work/tools/incubator-zeppelin/conf/zeppelin-site.xml.template /home/work/tools/incubator-zeppelin/conf/zeppelin-site.xml
vi /home/work/tools/incubator-zeppelin/conf/zeppelin-site.xml
# 修改下面这段的value值,设置zeppelin的端口为9090
<property>
<name>zeppelin.server.port</name>
<value>9090</value>
<description>Server port.</description>
</property>
(3)将 hive-site.xml 拷贝到 zeppelin 的配置目录下
在 nbidc-agent-04 上执行下面的指令:
cd /home/work/tools/incubator-zeppelin
cp /home/work/tools/hive/conf/hive-site.xml .
5. 启动 Zeppelin
在 nbidc-agent-04 上执行下面的指令:
zeppelin-daemon.sh start
6. 测试
从浏览器输入 http://nbidc-agent-04:9090/,如图1 所示。
图1
点击'Interpreter'菜单,配置并保存 spark 和 hive 解释器,分别如图2、图3 所示。
图2
图3
点击'NoteBook'->'Create new note'子菜单项,建立一个新的查询并执行,结果如图4 所示。
图4
这是一个动态表单 SQL,SparkSQL 语句为:
%sql
select * from wxy.t1 where rate > ${r}
第一行指定解释器为 SparkSQL,第二行用 ${r} 指定一个运行时参数,执行时页面上会出现一个文本编辑框,输入参数后回车,查询会按照指定参数进行,如图会查询 rate > 100 的记录。