使用Spark分析拉勾网招聘信息(三): BMR 入门
简述
本文,意在以最小的篇幅,来帮助对大数据和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 入门的更多相关文章
- 使用Spark分析拉勾网招聘信息(一):准备工作
本系列专属github地址:https://github.com/ios122/spark_lagou 前言 我觉得如果动笔,就应该努力地把要说的东西表达清楚.今后一段时间,尝试下系列博客文章.简单说 ...
- 使用Spark分析拉勾网招聘信息(二): 获取数据
要获取什么样的数据? 我们要获取的数据,是指那些公开的,可以轻易地获取地数据.如果你有完整的数据集,肯定是极好的,但一般都很难通过还算正当的方式轻易获取.单就本系列文章要研究的实时招聘信息来讲,能获取 ...
- 使用Spark分析拉勾网招聘信息(四): 几个常用的脚本与图片分析结果
概述 前一篇文章,已经介绍了BMR的基础用法,再结合Spark和Scala的文档,我想应该是可以开始你的数据分析之路的.这一篇文章,着重进行一些简单的思路上的引导和分析.如果你分析招聘数据时,卡在了某 ...
- 爬取拉勾网招聘信息并使用xlwt存入Excel
xlwt 1.3.0 xlwt 文档 xlrd 1.1.0 python操作excel之xlrd 1.Python模块介绍 - xlwt ,什么是xlwt? Python语言中,写入Excel文件的扩 ...
- Python3获取拉勾网招聘信息
为了了解跟python数据分析有关行业的信息,大概地了解一下对这个行业的要求以及薪资状况,我决定从网上获取信息并进行分析.既然想要分析就必须要有数据,于是我选择了拉勾,冒着危险深入内部,从他们那里得到 ...
- python-scrapy爬虫框架爬取拉勾网招聘信息
本文实例为爬取拉勾网上的python相关的职位信息, 这些信息在职位详情页上, 如职位名, 薪资, 公司名等等. 分析思路 分析查询结果页 在拉勾网搜索框中搜索'python'关键字, 在浏览器地址栏 ...
- Python爬取拉勾网招聘信息并写入Excel
这个是我想爬取的链接:http://www.lagou.com/zhaopin/Python/?labelWords=label 页面显示如下: 在Chrome浏览器中审查元素,找到对应的链接: 然后 ...
- node.js 89行爬虫爬取智联招聘信息
写在前面的话, .......写个P,直接上效果图.附上源码地址 github/lonhon ok,正文开始,先列出用到的和require的东西: node.js,这个是必须的 request,然发 ...
- 基于‘BOSS直聘的招聘信息’分析企业到底需要什么样的PHP程序员
原文地址:http://www.jtahstu.com/blog/scrapy_zhipin_php.html 基于'BOSS直聘的招聘信息'分析企业到底需要什么样的PHP程序员 标签(空格分隔): ...
随机推荐
- Ubuntu 下安装Mysql 需要注意的地方.
安装卸载 sudo apt-get autoremove --purge mysql-server-5.0sudo apt-get remove mysql-serversudo apt-get au ...
- asp.net identity 2.2.0 在MVC下的角色启用和基本使用(一)
基本环境:asp.net 4.5.2 第一步:在App_Start文件夹中的IdentityConfig.cs中添加角色控制器. 在namespace xxx内(即最后一个“}”前面)添加 角色控制类 ...
- 我的ORM之二--添加
我的ORM索引 添加的语法: var 影响行数 = dbr.表.Insert(实体).Execute(); 实体类型 1. 任何C#类. 如:public class Entity{ public ...
- Java多线程12:ReentrantLock中的方法
公平锁与非公平锁 ReentrantLock有一个很大的特点,就是可以指定锁是公平锁还是非公平锁,公平锁表示线程获取锁的顺序是按照线程排队的顺序来分配的,而非公平锁就是一种获取锁的抢占机制,是随机获得 ...
- js模版引擎handlebars.js实用教程——each-基本循环使用方法
返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...
- 实战使用Axure设计App,使用WebStorm开发(6) – 迈向后端
系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使 ...
- mac命令
mac下卸载nodesudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}xc ...
- 缓存篇~第六回 Microsoft.Practices.EnterpriseLibrary.Caching实现基于方法签名的数据集缓存
返回目录 这一讲中主要是说EnterpriseLibrary企业级架构里的caching组件,它主要实现了项目缓存功能,它支持四种持久化方式,内存,文件,数据库和自定义,对于持久化不是今天讨论的重要, ...
- 爱上MVC~为非法进行Action的用户提供HttpStatusCodeResult
回到目录 对一MVC来说,它有Controller和Action,其中Action用来为页面提供数据和相关逻辑,并最后将页面渲染出来,而有些action是需要一些参数的,如文章的最终页,可能需要一个I ...
- Nginx下WordPress的Rewrite
最近接触WP Super Cache,该插件要求固定链接必须是重写的,故用到Rewrite. 我的是这样配置的: /usr/local/nginx/conf/rewrite/wordpress.con ...