注册databricks账号并进行基本的spark操作

DataBricks介绍

下面摘自百度百科:

Databricks 属于 Spark 的商业化公司,由美国伯克利大学 AMP 实验室著名的 Spark 大数据处理系统多位创始人联合创立。Databricks 致力于提供基于 Spark 的云服务,可用于数据集成,数据管道等任务。

Databricks 公司的云解决方案由三部分组成:Databricks 平台、Spark 和 Databricks 工作区。该产品背后的理念是提供处理数据的单独空间,不受托管环境和 Hadoop 集群管理的影响,整个过程在云中完成。该产品有几个核心概念:由 Notebooks 提供一种与数据交互并构建图形的方法,当用户了解了显示数据的方式时,就可以开始构建主控面板以监视某些类型的数据。最后,用户可以通过该平台的任务启动器来规划 Apache Spark 的运行时间。

选择DataBricks的原因,主要是因为它可以通过NoteBook的方式来运行代码,而不用通过繁琐的命令行操作。此外,还有免费的社区版可以体验。

注册账号

打开官网,点击右上角TRY DATABRICKS

然后在下面界面中选择要注册的版本,因为我只是完成一次作业,所以选择了右边的社区版,不然完整版的试用还需要添加账单信息。

trial

填写相应的信息完成注册,同意社区版的协议,然后验证邮箱完成注册。

signup

登陆后就是databricks的控制台了,界面如下,开始玩吧。

denglu

创建集群

选择控制台左侧左边的Clusters,然后点击+ Create Cluster

create

填写相应的信息并创建。因为这里是社区版的,所以内存有限。

cluster

创建后,等待一会儿,等cluster前面出现一个绿色的小圆点后,创建就完成了。这时候属于你的集群已经跑起来了,而且常用的Spark UI和Logs也一应俱全。还能进行相应的acitons操作。还有些操作可以参见官方文档

wancheng

上传文件

点击左边的data,然后在新的页面里的Upload File下面,有一个file的框框,直接将文件拖到那里或者点击一下,选择要上传的文件,上传即可。

uploadfile

而后,在DBFS/FileStore/tables里就可以看到自己的文件已经上传到了集群上。

DBFS

或者在notebook中通过命令查看。

1
2
// Take a look at the file system
display(dbutils.fs.ls("/FileStore/tables"))

cmd

NoteBook使用

点击左边最上面的databricks回到首页上,点击NoteBook,填写文件名称并选择相应的语言和使用的集群,点击Create

notebook

然后就跳转到了刚新建的notebook上了。界面如下:

jiemian

在第一个cell中填入代码,然后点击该cell的右上角的按钮或者使用Shift+Enter来运行。运行时,下面会有一个进度条表示它在运行。

1
2
3
4
5
6
7
8
9
10
11
12
13
val textFile = sc.textFile("dbfs:/FileStore/tables/web_Google-02a64.txt")
val links = textFile.filter(line=>(!line.startsWith("#"))).map(s=>s.split("\\s+")).map(ids=>(ids(0),ids(1))).distinct().groupByKey().cache()
var ranks = links.mapValues(_ => 1.0)
for (i <- 1 until 10) {
val contributions = links.join(ranks).flatMap {
case (pageId, (links, rank)) =>
links.map(dest => (dest, rank / links.size))
}
ranks = contributions.reduceByKey(_ + _).mapValues(0.15 + 0.85 * _)
}
ranks.saveAsTextFile("ranks")

运行完成,在下一个cell来查看一下结果,已经生成ranks文件。shengcheng

再去DBFS里看一下,结果就在两个part里了。DBFS1

最后,不得不说spark速度真的是非常的快。这里只是一个内存6G的单节点,但是却几分钟就轻松跑出了结果。而同一个数据集,我在Google Computer Enginee上用4vCPU,15GB的结点,在GraphCreate上跑了快半小时。

所以spark的前景还是非常好的,接下来好好学习一下spark吧。

参考资料

  1. https://baike.baidu.com/item/Databricks/20298976?noadapt=1

  2. https://community.cloud.databricks.com/login.html

  3. https://databricks.com/blog/2016/02/17/introducing-databricks-community-edition-apache-spark-for-all.html