简述

本文,意在以最小的篇幅,来帮助对大数据和Spark感兴趣的小伙伴,能尽快搭建一个可用的Spark开发环境.力求言简意赅.文章,不敢自称BMR的最佳实践,但绝对可以帮助初学者,迅速入门,能够专心于Spark本身的学习和实践.不服的童鞋,可以先自己折腾下BMR,再返回来读这篇文章O(∩_∩)O哈!

创建 BMR 实例

假定,你已经有了一个经过认证的百度开发者账号,就像系列第一篇文章讲的那样.什么?没有?那基本,没有必要继续往下读了,明天再来吧.没有经过认证的百度开发者账号,应该是没有权限创建 BMR 实例的.

1.登录

网址是 https://login.bce.baidu.com/ 填写账号和密码,大家都懂的.建议收藏下,应为百度开放云,搜索时,很容易被导流到百度云盘上,这是两个不同的东西.

2.充值

在 "管理控制台",个人信息附近分栏下,有个"充值"按钮.至少应该保证账户余额是100元,否则应该是无法成功创建BMR的.

3.创建BMR

点击顶部的产品服务 --> 百度MapReduce --> 创建集群.

在创建BMR界面,"bos://"点击下拉箭头,新创建即可;集群配置--镜像版本,要选择 "BMR 0.2.0(hadoop 2.6",否则无法使用openVPN访问;内置模板,选择 "Spark",其他自己随意写即可.当然,要自己记住密码,等会儿还要用的.

就这样,大概10分钟后,就初始化完成了.在等待的这段时间,建议你去搜搜大数据或者spark相关的讨论,说不定会有额外收获.

使用 openVPN 访问 BMR

假定,你现在已经有一个初始化完成的 BMR 实例.点击实例名称,进入详情页,画风是这样的.

点击"工具下载"中的 openvpn-confi.zip 下载到本地,然后按照教程配置即可,教程参见: (https://cloud.baidu.com/doc/BMR/GettingStarted.html#.E4.BD.BF.E7.94.A8OpenVPN.E8.AE.BF.E9.97.AE.E9.9B.86.E7.BE.A4)[https://cloud.baidu.com/doc/BMR/GettingStarted.html#.E4.BD.BF.E7.94.A8OpenVPN.E8.AE.BF.E9.97.AE.E9.9B.86.E7.BE.A4]

OpenVPN服务仅支持访问镜像类型为Hadoop 2.6(bmr 0.2.0)的集群,也就是说如果你的BMR实例中没有"工具下载"一栏,说明你创建时镜像类型选错了.

配置好openVPN后,就可以通过"节点信息"中,各个节点的内网地址来访问了,主要用到的是MASTER节点.另外,我发现配置好openVPN后,我也可以通过内网地址直接访问我的其他百度云服务了,比如 云服务器,不是十分确定个中缘由,难道都在同一个机房? MASTER 节点,内网地址访问的画风一起感受下:

另外,熟悉服务器基本操作的人,可能会ssh登录Master节点.当然是完全可以的.一个BMR节点,是一个独立的完整的服务器.我甚至给上面配置过node开发环境,不过后来就没折腾了,因为这个处理完数据就释放了,一直开着太费钱.当然,当遇到某些特殊问题的时候,还是需要自己ssh登录去处理的.比如,我的 zeppelin 服务,曾经崩溃过一次,我只能自己ssh上去重启.客服也是可以的,但这点小事都解决不了,岂不是显得我很LOW?!

使用 hue 导入数据到BMR

hue的访问地址为: 内网地址的8888端口,如 http://192.168.0.55:8888,画风是这样的:

用户名和密码是自定义的,密码随意,建议用户名填写 hdfs 否则导入的数据,待会儿无法在zeppelin中使用,这涉及到一个用户组权限的问题.感兴趣的自己研究下,我不细说了.

点击 File Browser --> 上传 --> zip/tgz文件,然后选择你昨天处理好的 职位数据文件即可.没能成功的童鞋,可以直接去文首的github项目中下载:https://github.com/ios122/spark_lagou/raw/master/jobs.zip

数据导入OK了.如果发现发现上传完成后,一直卡在上传表单页不动,直接点叉叉号关闭就好了,它会后台解压的.

使用 zeppelin 读取数据

BMR 的 zeppelin 的服务部署在 8093 端口,如http://192.168.0.55:8093/,这是我打印出所有端口,排查出来的,文档上没有丝毫提及.不清楚文档为啥不提,但 zeppelin 可是最流行的Spark交互式开发工具.第一次访问,会有些慢.应该在初始化某些东西.

Create New Note,然后开始练习吧:

读取并打印结构的脚本:

val job = sqlContext.read.json("jobs")
job.registerTempTable("job")
job.printSchema()

初觉没有什么,但是仔细想下,这可是几百个文件,里面是确实存在异常数据的.当然,真正神奇的地方,是读取之后,可以直接基于此进行各种复杂的聚合运算与分析.这是下一篇的主题了.

注意: 练习完,注意释放 BMR 实例,否则会一直计费的.

附:zeppelin 启动和重启的脚本

我相信,你是有极大可能,把 zeppelin 服务搞挂的,当内存开销过大时

cd /usr/lib/zeppelin-0.5.0-incubating
bin/zeppelin-daemon.sh start
bin/zeppelin-daemon.sh stop

本系列专属github地址:https://github.com/ios122/spark_lagou

使用Spark分析拉勾网招聘信息(三): BMR 入门的更多相关文章

  1. 使用Spark分析拉勾网招聘信息(一):准备工作

    本系列专属github地址:https://github.com/ios122/spark_lagou 前言 我觉得如果动笔,就应该努力地把要说的东西表达清楚.今后一段时间,尝试下系列博客文章.简单说 ...

  2. 使用Spark分析拉勾网招聘信息(二): 获取数据

    要获取什么样的数据? 我们要获取的数据,是指那些公开的,可以轻易地获取地数据.如果你有完整的数据集,肯定是极好的,但一般都很难通过还算正当的方式轻易获取.单就本系列文章要研究的实时招聘信息来讲,能获取 ...

  3. 使用Spark分析拉勾网招聘信息(四): 几个常用的脚本与图片分析结果

    概述 前一篇文章,已经介绍了BMR的基础用法,再结合Spark和Scala的文档,我想应该是可以开始你的数据分析之路的.这一篇文章,着重进行一些简单的思路上的引导和分析.如果你分析招聘数据时,卡在了某 ...

  4. 爬取拉勾网招聘信息并使用xlwt存入Excel

    xlwt 1.3.0 xlwt 文档 xlrd 1.1.0 python操作excel之xlrd 1.Python模块介绍 - xlwt ,什么是xlwt? Python语言中,写入Excel文件的扩 ...

  5. Python3获取拉勾网招聘信息

    为了了解跟python数据分析有关行业的信息,大概地了解一下对这个行业的要求以及薪资状况,我决定从网上获取信息并进行分析.既然想要分析就必须要有数据,于是我选择了拉勾,冒着危险深入内部,从他们那里得到 ...

  6. python-scrapy爬虫框架爬取拉勾网招聘信息

    本文实例为爬取拉勾网上的python相关的职位信息, 这些信息在职位详情页上, 如职位名, 薪资, 公司名等等. 分析思路 分析查询结果页 在拉勾网搜索框中搜索'python'关键字, 在浏览器地址栏 ...

  7. Python爬取拉勾网招聘信息并写入Excel

    这个是我想爬取的链接:http://www.lagou.com/zhaopin/Python/?labelWords=label 页面显示如下: 在Chrome浏览器中审查元素,找到对应的链接: 然后 ...

  8. node.js 89行爬虫爬取智联招聘信息

    写在前面的话, .......写个P,直接上效果图.附上源码地址  github/lonhon ok,正文开始,先列出用到的和require的东西: node.js,这个是必须的 request,然发 ...

  9. 基于‘BOSS直聘的招聘信息’分析企业到底需要什么样的PHP程序员

    原文地址:http://www.jtahstu.com/blog/scrapy_zhipin_php.html 基于'BOSS直聘的招聘信息'分析企业到底需要什么样的PHP程序员 标签(空格分隔): ...

随机推荐

  1. js for 循环中的 变量问题。

    今日处理项目中的一个循环,本来就是一个小小的for循环,后来发现该段程序出现了问题,仔细检查代码没有发现其中的错误.无奈只好叫来了老大帮忙.通过在模版中断点调试(该方式只能自己写debugger断点) ...

  2. Apache Thrift 跨语言服务开发框架

    Apache Thrift 是一种支持多种编程语言的远程服务调用框架,由 Facebook 于 2007 年开发,并于 2008 年进入 Apache 开源项目管理.Apache Thrift 通过 ...

  3. Wix 安装部署教程(十三) -- 多语言安装包

    这几天摸索WIX的多语言安装包(这里是Wix的setup 工程,不是Bundle),终于走通了,感谢网友uni的指点.WIX的多语言安装包能够根据系统环境自动切换界面语言,你也可以通过命令指定语言.下 ...

  4. 【读书笔记】Ninject 在MVC5中的使用

    从MVC3中就开始接触Ninject这个IOC工具.也一直是MVC Framework系列书籍中推荐的IOC工具,当然还有优秀的Autofac等.性能和使用上面个有千秋.下面先看一下Ninject的使 ...

  5. 【MVC】bootstrap-paginator 分页插件笔记

    bootstrap-paginator基于bootstrap框架,使用起来非常简单.github地址:https://github.com/lyonlai/bootstrap-paginator 在b ...

  6. drag & resize元素的jQuery实现

    有时项目中会遇到需要拖动元素.拖拽调整元素大小的需求.大部分时候都不想自己写一遍,因为已经有很多现成的例子了.例如jqueryui提供的drag和resize.但是仅仅是为了这么小一个功能就引入一个库 ...

  7. 为什么需要在TypedArray后调用recycle

    当我们没有在使用TypedArray后调用recycle,编译器会提示“This TypedArray should be recycled after use with #recycle()”. 官 ...

  8. C#Light for Unity 新例子

    近来有好几位询问C#Lite在Unity中使用的问题 我专门为C#Lite制作了 for Unity的新例子 ,这个例子名为languagetest 包含17个语言特性测试的文件 其中_6004_展示 ...

  9. python sorted排序

    python sorted排序 Python不仅提供了list.sort()方法来实现列表的排序,而且提供了内建sorted()函数来实现对复杂列表的排序以及按照字典的key和value进行排序. s ...

  10. springmvc下js控制表单提交(表单提交前检验,提交后获取json返回值)

    这个问题我搞了四天,终于搞懂.因为对js很不熟悉.郁闷的是后台代码出错总可以设置断点调试,前端js代码出错只能通过浏览器提供一些运行数据来分析,很不习惯. 首先说下逻辑:这是一个注册功能,我希望,注册 ...