Skip to content

Zeppelin on Vagrant VM ( Zeppelin 在 Vagrant 虚拟机上 )

原文链接 : http://zeppelin.apache.org/docs/0.7.2/install/virtual_machine.html

译文链接 : https://www.apachecn.org/pages/viewpage.action?pageId=10030718

贡献者 : 小瑶 ApacheCN Apache中文网

概观

Apache Zeppelin distribution ( 分发 ) 包括一个脚本目录

scripts/vagrant/zeppelin-dev

该脚本创建一个虚拟机,启动一个可重复的已知集合,用于开发 Zeppelin 所需的核心依赖关系。如果您不打算从源代码构建,它可以用于运行现有的 Zeppelin 构建。对于 PySpark 用户,此脚本包含几个有用的   Python 库 。对于 SparkR 用户,此脚本包含几个有用的 R 库

先决条件

此脚本需要三个应用程序,分别是 Ansible ,Vagrant 和 Virtual Box 。所有这些应用程序都可以免费使用,因为它们是开源项目,并且在大多数操作系统上都非常容易设置。

Create a Zeppelin Ready VM ( 创建一个 Zeppelin Ready VM )

如果您正在运行 Windows 并且尚未安装 python ,请先安装 Python 2.7.x 。

  1. 下载并安装 Vagrant : Vagrant 下载
  2. 安装 Ansible :Ansible Python pip install

    sudo easy_install pip sudo pip install ansible ansible --version

    然后,请检查它是否报告了可接受版本 1.9.2 或者更高版本

  3. 安装 Virtual Box : Virtual Box 下载

  4. 在  /scripts/vagrant/zeppelin-dev 目录中输入 vagrant up

这样就可以了!您现在可以运行 vagrant ssh ,这将使您进入客户机器终端提示符界面。

如果您不想从头构建 Zeppelin ,请在 guest 虚拟机中运行时运行 z-manager installer 脚本:

curl -fsSL https://raw.githubusercontent.com/NFLabs/z-manager/master/zeppelin-installer.sh | bash

Building Zeppelin ( 构建 Zeppelin )

你现在可以

git clone git://git.apache.org/zeppelin.git

进入主机上的目录,或直接在虚拟机中。

将 Zeppelin 从主机中克隆到 /scripts/vagrant/zeppelin-dev 目录中,将允许在主机和客户机之间共享该目录。

再次克隆项目可能似乎是直观的,因为这个脚本可能源于项目库。考虑将 Zeppelin 项目中的 vagrant/zeppelin-dev 脚本作为独立目录复制,然后再次克隆要构建的特定分支。

同步的文件夹使 Vagrant 能够将主机上的文件夹同步到客机,允许您继续在主机上处理项目的文件,但是使用 guest 机器上的资源来编译或运行项目。 (1)同步文件夹描述从 Vagrant Up

默认情况下,Vagrant 将共享您的项目目录 ( Vagrantfile 的目录 ) 到 /vagrant 。这意味着您应该能在您的 cd /vagrant/zeppelin 之后在客户机中构建。

这个虚拟机有什么?

在客户机中运行以下命令显示以下预期版本:

node --version should report v0.12.7 mvn --version 应该报告 Apache Maven 3.3.9 and Java version: 1.7.0_85

虚拟机包括:

  • Ubuntu Server 14.04 LTS
  • Node.js 0.12.7
  • npm 2.11.3
  • ruby 1.9.3 + rake,make 和 bundler ( 仅在构建 jekyll 文档时才需要 )
  • Maven 3.3.9
  • Git
  • Unzip
  • libfontconfig 以避免 phatomJs 缺少依赖性问题
  • openjdk-7-jdk
  • Python 插件:pip,matplotlib,scipy,numpy,pandas
  • R 和 R 运行 R 解释器 和 相关 R 教程笔记本所需的软件包,包括:Knitr,devtools,repr,rCharts,ggplot2,googleVis,mplot,htmltools,base64enc,data.table

如何构建和运行 Zeppelin

这假设您已经在 zeppelin-dev 目录中的主机(要与客户机共享)上克隆项目,或者在客机中运行时直接克隆到目录中。以下构建步骤还将包括通过 PySpark 和 SparkR 的 Python 和 R 支持:

cd /zeppelin
mvn clean package -Pspark-1.6 -Ppyspark -Phadoop-2.4 -Psparkr -DskipTests
./bin/zeppelin-daemon.sh start

在您的主机上浏览 http://localhost:8080/

如果您关闭 Vagrantfile 中的端口转发,请浏览 http://192.168.51.52:8080 

调整虚拟机

如果您计划沿着其他 Vagrant 映像一边运行此虚拟机,则可能希望将虚拟机绑定到特定的 IP 地址,而不要使用本地主机的端口。

注释出 forward_port 行,并取消注释 Vagrantfile 中的 private_network 行。最适合本地网络的子网将会有所不同,因此可以调整192.168..

#config.vm.network "forwarded_port", guest: 8080, host: 8080
config.vm.network "private_network", ip: "192.168.51.52"

vagrant 停止,随后 vagrant 将重新启动访问客户机绑定到 IP 地址 192.168.51.52 。通常运行通过 IP 地址直接发现的其他虚拟机 ( 如 Spark Masters 和 Slaves 以及 Cassandra Nodes , Elasticsearch Nodes 和其他 Spark 数据源 ) 时通常需要此方法。您可能希望在具有适用于本地网络的子网中的 IP 地址的虚拟机中启动节点,例如:

192.168.51.53,192.168.51.54,192.168.51.53等。

附加功能

Python Extras

随着 Zeppelin 运行, NumPy , SciPy ,Pandas ,和 Matplotlib 将可用。创建一个 pyspark 笔记本,并尝试运行下面的代码。

%pyspark

import numpy
import scipy
import pandas
import matplotlib

print "numpy " + numpy.__version__
print "scipy " + scipy.__version__
print "pandas " + pandas.__version__
print "matplotlib " + matplotlib.__version__

要测试使用 Matplotlib 绘制到渲染的 %html SVG image ,请尝试:

%pyspark

import matplotlib
matplotlib.use('Agg')   # turn off interactive charting so this works for server side SVG rendering
import matplotlib.pyplot as plt
import numpy as np
import StringIO

# clear out any previous plots on this note
plt.clf()

def show(p):
    img = StringIO.StringIO()
    p.savefig(img, format='svg')
    img.seek(0)
    print "%html <div style='width:600px'>" + img.buf + "</div>"

# Example data
people = ('Tom', 'Dick', 'Harry', 'Slim', 'Jim')
y_pos = np.arange(len(people))
performance = 3 + 10 * np.random.rand(len(people))
error = np.random.rand(len(people))

plt.barh(y_pos, performance, xerr=error, align='center', alpha=0.4)
plt.yticks(y_pos, people)
plt.xlabel('Performance')
plt.title('How fast do you want to go today?')

show(plt)

R Extras

随着 zeppelin 运行,一个 R 教程笔记本将可用。本教程笔记本中运行示例和图形所需的 R 包由该虚拟机安装。安装的 R 包包括:KnitrdevtoolsreprrChartsggplot2googleVismplothtmltoolsbase64encdata.table



回到顶部