環境篇:Zeppelin
環境篇:Zeppelin
Zeppelin 是什麼
Apache Zeppelin 是一個讓互動式數據分析變得可行的基於網頁的開源框架。Zeppelin提供了數據分析、數據可視化等功能。
Zeppelin 是一個提供交互數據分析且基於Web的筆記型電腦。方便你做出可數據驅動的、可交互且可協作的精美文檔,並且支援多種語言,包括 Scala(使用 Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等等。
如果沒有Zeppelin?
數據分析師在數倉中提取數據時,需要自行整理sql,並且不能以圖形展示,而且記錄需要自己保存,對於常用的一些操作,每天需要去整理一些筆記,做很多繁雜的工作,包括開發工程師在定位問題後也很難將定位過程記錄下來,而且在協同工作上需要藉助通訊工具傳來傳去。這個時候就有了Zeppelin,其實就是一個超級筆記型電腦啦。
1 安裝
1.1 下載
zeppelin-0.8.2-bin-all
1.2 上傳伺服器
mkdir /usr/local/src/zeppelin
cd /usr/local/src/zeppelin
1.3 安裝
tar -zxvf zeppelin-0.8.2-bin-all.tgz
#修改配置文件
cd zeppelin-0.8.2-bin-all/conf
cp zeppelin-env.sh.template zeppelin-env.sh
vim zeppelin-env.sh
#--->
#修改javahome
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
#修改IP埠
export ZEPPELIN_ADDR=192.168.192.10
export ZEPPELIN_PORT=8080
#修改SPARK_HOME(如果使用本地模式即可不配置)
export MASTER=spark://cdh01.cm:7077
export SPARK_HOME=/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/spark
#修改HBASE_HOME
export HBASE_HOME=/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase
export HBASE_CONF_DIR=/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/conf
#---<
1.4 啟動停止
/usr/local/src/zeppelin/zeppelin-0.8.2-bin-all/bin/zeppelin-daemon.sh start
# /usr/local/src/zeppelin/zeppelin-0.8.2-bin-all/bin/zeppelin-daemon.sh stop
1.5 訪問IP:8080埠
2 簡單使用
2.1 對接解釋器,以hive為例
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hive/lib/hive-jdbc.jar
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hive/lib/hive-service-rpc.jar
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hive/lib/hive-cli.jar
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hive/lib/hive-service.jar
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hive/lib/hive-common.jar
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hive/lib/hive-serde.jar
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hive/lib/guava-14.0.1.jar
- 使用
2.2 對接解釋器,以Spark為例
如需要使用集群模式配置
master yarn
spark.submit.deployMode cluster
spark.yarn.queue 列隊名
spark.executor.memory 1g
- 使用
import org.apache.commons.io.IOUtils
import java.net.URL
import java.nio.charset.Charset
val bankText = sc.parallelize(
IOUtils.toString(
new URL("//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")
%sql
select age,count(1)
from bank
where age < ${maxAge=30}
group by age
order by age
%sql
select age, count(1) value
from bank
where age < 30
group by age
order by age
%sql
select age, count(1) value
from bank
where marital="${marital=single,single|divorced|married}"
group by age
order by age
2.3 對接解釋器,以Kylin為例
- 創建筆記,以下以麒麟為例
2.4 對接解釋器,以Hbase為例
#將hbase配置文件copy到zeppelin下
cp /etc/hbase/conf/hbase-site.xml /usr/local/src/zeppelin/zeppelin-0.8.2-bin-all/conf/
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/hbase-client.jar
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/hbase-common.jar
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/hbase-protocol.jar
- 使用