自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

讓Spark如虎添翼的Zeppelin – 基礎(chǔ)篇

大數(shù)據(jù) Spark
Spark是一個非常好的計算平臺,支持多種語言,同時基于內(nèi)存的計算速度也非???。對于剛接觸的人來說,上手以及環(huán)境搭建還是有一些困難。

0. 簡介

Spark 是一個非常好的計算平臺,支持多種語言,同時基于內(nèi)存的計算速度也非常快。整個開源社區(qū)也很活躍。

但是Spark在易用性上面還是有一些美中不足。 對于剛接觸的人來說,上手以及環(huán)境搭建還是有一些困難。 另外,如果希望將結(jié)果繪制成圖表分享給別人,還需要很長一段路程。

目前已經(jīng)有一些解決方案:

  • 【TBD】Jupyter Notebook
  • 使用很廣泛,但是看起來主要還是以前ipython-notebook的增強(qiáng)版。
  • 目前筆者對其了解不多
  • Spark 母公司DataBricks提供的DataBricks Community Edition, 里面自帶Spark集群 + Notebook。
  • 易用性、功能性都很不錯。缺點(diǎn)是集群架設(shè)在AWS之上,無法跟自己本地的Spark 集群連在一起
  • Apache Zeppelin
  • 這是一個剛剛從Incubation轉(zhuǎn)正的項目
  • 但是已經(jīng)在各大公司均有采用,比如美團(tuán)、微軟等等
  • 本文主要就是介紹如何在本地搭建一個Zeppelin 使得Spark更易用,同時可以很方便的將自己的工作成功展示給客戶

借用別人的一個效果圖鎮(zhèn)樓^_^

注意:

  1. Zeppelin自帶Spark實例,您無需自己構(gòu)建一個Spark 集群就可以學(xué)習(xí)Zeppelin
  2. Zeppelin 當(dāng)前(2016年8月19日)最新版本0.6.1, 只兼容2.0+

       1)如果您本地有Spark 集群并且版本是1.6.1 + Scala 2.10 , 請下載Zeppelin 0.6.0的版本

       2)如果官網(wǎng)的速度比較慢,可以參考下面的方式到百度盤下載

鏈接: http://pan.baidu.com/s/1ctBBJo 密碼: e68g

1、 下載

如果您需要的是0.6.0的版本,可以參考上面百度盤的下載鏈接。

如果您需要的是0.6.1+的版本,可以直接到官網(wǎng)下載, 里面的Mirror下載速度一般還不錯

2、 安裝

版本: Zeppelin 0.6.0 + 自建Spark集群(1.6.1)

感覺Zeppelin還是不太成熟,并開箱就用,還需要不少人工調(diào)整才能正常工作

1)解壓之后,首先需要從模板創(chuàng)建一個新的zeppelin-env.sh, 并設(shè)置SPARK_HOME. 比如:

  1. 1export SPARK_HOME=/usr/lib/spark 

如果是基于Hadoop 或者 Mesos 搭建的Spark 集群,還需要進(jìn)行另外的設(shè)置。

2)從模板創(chuàng)建一個新的zeppelin-site.xml,并將之前的8080端口改到比如8089,避免與Tomcat等端口沖突

  1. <property> 
  2.  
  3. <name>zeppelin.server.port</name
  4.  
  5. <value>8089</value> 
  6.  
  7. <description>Server port.</description> 
  8.  
  9. </property> 

3)替換jackson相關(guān)類庫

a)默認(rèn)自帶的是2.5.*, 但是實際使用的時候指定的是2.4.4

b)并且可能2.4.4 與 2.5.* 并不完全兼容。

c)因此需要使用2.4.4 替換2.5.* , 有下面3個jar需要替換:

  1. jackson-annotations-2.4.4.jar 
  2. jackson-core-2.4.4.jar 
  3. jackson-databind-2.4.4.jar 

d)這真的是非常坑人的一個地方。。。

做完上訴幾步之后,就可以啟動啦:

啟動/停止命令:

  1. bin/zeppelin-daemon.sh stop/start 

啟動之后,打開http://localhost:8089 就可以看到Zeppelin的主界面啦

3. 配置Spark解釋器

Spark Interpreter的配置非常簡單,可以直接參考下圖的配置方式:

4. 幾點(diǎn)使用經(jīng)驗

Zeppline自帶比較詳細(xì)的Tutorial, 各位看自帶的notebook tutorial 可能效果更好。 但是我在第一次使用的時候,遇到了不少坑,在此記錄下來,給大家做個參考:

(1) 任務(wù)提交之后不會自動停止

當(dāng)Zeppelin 提交任務(wù)之后,可以看到Spark Master UI 上面,當(dāng)前任務(wù)即使執(zhí)行完成了,也不會自動退掉

這是因為,Zeppelin 默認(rèn)就像人手工運(yùn)行了spark-shell spark://master-ip:7077 一樣, 除非手動關(guān)閉shell命令,否則會一直占用著資源

解決辦法就是將spark 解釋器(interpreter) 重啟

手動的重啟辦法:

1.打開Interpreter界面,搜索到Spark部分并點(diǎn)擊重啟

2.推薦: 調(diào)用Restful API 進(jìn)行重啟。

a.可以通過Chrome的Network 監(jiān)控看一下點(diǎn)擊restart之后具體調(diào)用的API的情況。如下圖:

 

b.這個ID(2BUDQXH2R)在各自的環(huán)境可能各不相同。另外這個API是PUT的方式,可以直接使用下面的python代碼在UI上自動重啟

  1. %python 
  2.  
  3. import requests 
  4.  
  5. r = requests.put("http://IP:8089/api/interpreter/setting/restart/2BUDQXH2R"
  6.  
  7. print r.text 

(2) 異常提示:Cannot call methods on a stopped SparkContext

比如我們在Spark Master UI 上面將當(dāng)前job kill 之后,在Zeppelin這邊重啟執(zhí)行任務(wù)就會遇到這個異常信息。

解決辦法很簡單: 重啟解析器

(3) 不要主動調(diào)用 sc.stop()

這是官方明確說明的:scala 的spark-shell 自動初始化了SparkContext / SqlContext 等等

不能自己調(diào)用sc.stop() 之后重啟創(chuàng)建一個SparkContext

可能筆者水平原因,嘗試自己創(chuàng)建新的sc 之后,各種奇奇怪怪的問題

(4) 關(guān)于python module

Python Interpreter可以使用當(dāng)前Zeppelin所在機(jī)器的python 所有的model

同時支持python 2 與 python 3

這是一個很有用的功能,比如我使用spark將數(shù)據(jù)計算完成之后,生成了一個并不太大的csv文件。這個時候完全可以使用Pandas強(qiáng)大的處理能力來進(jìn)行二次處理,并最終使用Zeppelin的自動繪圖能力生成報表

與Tableau之類的BI工具相比功能差了一些,不過各有所長。Zeppelin 對程序員來說可以算是非常方便的一個工具了。 對日常的一些簡單報表的工作量大大減小了

(5) 可以設(shè)置自動運(yùn)行時間

在整個Note的最上端,可以設(shè)置當(dāng)前notebook 定期執(zhí)行。 而且注意: 還可以設(shè)置執(zhí)行完成之后自動重啟interpreter 參考下圖:

責(zé)任編輯:武曉燕 來源: FlyML
相關(guān)推薦

2019-04-22 08:31:00

Docker容器工具

2022-04-29 13:39:57

AR/VR數(shù)字孿生CAD

2023-05-24 10:24:56

代碼Python

2019-07-05 08:00:00

WindowsWindows 10程序

2023-04-27 13:16:45

2019-08-21 09:51:25

軟件Windows 10Chrome

2018-04-10 11:40:23

區(qū)塊鏈云計算霧計算

2023-03-17 08:00:00

人工智能工具數(shù)據(jù)科學(xué)家

2018-05-17 11:23:06

智能化

2013-10-31 11:29:38

2017-06-09 12:05:24

散熱器CPU硬件

2018-04-17 09:03:01

SparkRDD大數(shù)據(jù)

2025-04-10 09:10:00

.NET開源Windows

2019-10-16 08:25:33

JavaScriptwebprototype

2022-08-09 08:00:55

AWS安全API

2020-04-24 08:23:23

開發(fā)在線工具前端

2021-08-30 10:19:05

PyFlink 開發(fā)環(huán)境Zeppelin No

2023-06-06 19:24:06

KubernetesSpark

2014-07-28 14:43:14

git開源
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號