20160808北京云栖大会workshop-EMapReduce分析网站数据

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 目标 了解E-MapReduce创建集群流程; 熟悉端口转发访问集群可视化组件zeppelin; 完成用zeppelin分析热播数据的示例。 创建集群 集群包括一组ecs实例和运行在实例上的分布式计算框架(Hadoop,Spark等),管控程序,是运行计算任务的资源基础。下面带大家熟悉创建

E-MapReduce钉钉群
screenshot

目标

  • 了解E-MapReduce创建集群流程;
  • 熟悉端口转发访问集群可视化组件zeppelin;
  • 完成用zeppelin分析热播数据的示例。

创建集群

集群包括一组ecs实例和运行在实例上的分布式计算框架(Hadoop,Spark等),管控程序,是运行计算任务的资源基础。下面带大家熟悉创建集群的操作步骤。

  • 进入E-MapReduce管理控制台:https://emr.console.aliyun.com/#/cluster/region/cn-beijing
  • 点击集群列表的华北2(北京),切换到北京region(本教程必须选择北京region)。
  • 由于云实例持续热卖,已经帮大家创建好一个集群,点击查看详情可以看到集群详细信息,后面的作业操作会在这个集群上进行,
    screenshot
  • 集群详细信息包括集群的地域信息,软件信息,网络信息,节点信息。其中master节点的外网ip信息是后面登陆要用到的,请注意。
    screenshot
  • 点击返回集群列表回到列表页,点击右上角“创建集群”按钮,开始创建一个集群;
  • 为避免影响后续操作,请在完成zeppelin培训操作后再去创建新的集群。
  • 填写集群名,选择按量付费,运行日志点击关掉,设置一个登陆密码 Workshop2016,点击下一步
    screenshot
  • 使用默认的产品版本和配置,点击下一步

screenshot

  • 选择可用区A,经典网络,安全组选择一个已有安全组,节点配置设置为4核8GB,磁盘选择普通云盘,如果没有资源请选择高效云盘,设置数据盘为40GB,点击创建,集群开始创建。

screenshot

用端口转发访问集群组件的zeppelin

集群创建后,有多种运行作业的方式:可以在控制台创建运行执行计划
,也可以登陆到master节点上命令行提交计算作业,还可以通过集群集成好的可视化工具来操作。zeppelin是spark的可视化操作工具,下面演示如何访问。

默认master节点的公网地址只对外开放了22端口,下面介绍如何通过ssh端口转发的方式访问zeppelin的8080端口。帮助文档:ssh登陆集群
,zeppelin使用说明

端口转发访问zeppelin

Linux/mac系统

打开一个命令行窗口,输入

ssh   -N -L 8157:<masterNodeIP>:8080 root@<masterNodeIP>
  • 8157是本地一个空闲端口,如已被占用请换一个未被占用的端口
  • masterNodeIP是要连接的master节点公网ip
  • 8080是master节点上zeppelin的端口号
  • 提示输入密码,输入Workshop2016

打开浏览器,输入http://localhost:8157/,就可以打开远程zeppelin页面了
screenshot

Windows系统的SSH方式

在Windows下有很多工具可以模拟ssh操作,例如MinGW,Putty。推荐使用git的win客户端,自带的Git Bash集成了MinGW。

  • 下载git客户端
  • 如果没有装过这些工具,无需担心,下面教大家临时放开端口限制的方法。

临时放开端口限制

如果windows不方便操作,可以临时放开master节点的8080端口限制,就可以浏览器直接访问了http://<masterip>:8080

  • 访问安全组控制台
  • 对集群所属的安全组点击配置规则
  • 点击右上角添加安全组规则,公网,入方向,允许,TCP,8080/8080,点击确认,就可以浏览器直接访问了.

screenshot

最佳实践:打通本地机器与集群master机器的ssh无密码登录

  1. ssh登陆master的外网地址,密码是Workshop2016。
ssh root@<masterip>
  1. su hadoop切换到hadoop账户
  2. 如果您本地已有ssh公钥私钥,可以忽略这步。否则运行ssh-keygen,一路回车,即可完成本地公私秘钥的生成
  3. 将您本地机器ssh公钥的(~/.ssh/id_xxx.pub,一般是rsa秘钥)文件中的内容进行拷贝,并追加到master机器hadoop账户的~/.ssh/authorized_keys文件中
    以下假设使用的是rsa密钥
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  1. 回到您的本地机器,尝试重新登录master机器。
ssh -i 私钥存放路径/id_rsa hadoop@masterip

如果只有一个私钥,并且放在~/.ssh/下,会默认使用这个私钥,就不需要-i 私钥存放路径/id_rsa指定了

zeppelin统计热播视频,用户属性分布

zeppelin可以可视化执行spark,hive作业,生成报表。

spark作业可以直接运行存储在oss的数据,本次培训已经预先把用户信息,视频信息,点播信息示例数据上传到oss上,下面带大家创建数据在oss上的hive表,用spark查询,并生成报表。

导入note

  • 第一次使用时,点击创建新的note,可以创建一个操作笔记。
    screenshot
  • 也可以导入json格式的note,下面使用导入的方式。下载 示例脚本到本地,
    点击导入note,选择下载的文件,会用脚本信息创建好note,点击note名video进入。

screenshot

创建表

  • %hive表示运行hive命令,hive建表后hive和sparksql都可以使用。已提供了创建用户表的语句,只需要在输入框里填写账户信息。
%hive
CREATE EXTERNAL TABLE user_info(id int,sex int,age int, marital_status int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION 'oss://${accessid}:${accesskey}@${bucket}.oss-cn-beijing-internal.aliyuncs.com/workshop/userinfo'
  • accessid,accesskey输入框填写各自账户的acessid,accesskey
  • bucketName替换为账户用户名@前面的部分加 -out,例如 train00500-out,可以在oss控制台查看各自的bucket信息。
    screenshot

点击右上角“运行”,提示update count -1,表示创建成功

  • 下一条%sql表示运行spark sql,spark sql运行速度比hive快。通过select语句查询有多少条
%sql
select count(*) from user_info

点击运行

screenshot

  • 下面两个建表语句同样填写accessid,accesskey,bucketName.
  • 创建视频表
%hive
CREATE EXTERNAL TABLE video_info(id int,title string,type string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION 'oss://${accessid}:${accesskey}@${bucket}.oss-cn-beijing-internal.aliyuncs.com/workshop/videoinfo'
  • 点击运行
  • 查询总数
%sql
select count(*) from video_info
  • 创建播放表
%hive
CREATE EXTERNAL TABLE play_video(user_id int,video_id int, play_time bigint) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION 'oss://${accessid}:${accesskey}@${bucket}.oss-cn-beijing-internal.aliyuncs.com/workshop/playvideo'
  • 点击运行
  • 查询总数
%sql
select count(*) from play_video

电视剧,电影等类别一周的总播放次数

统计个类别栏目的播放总数,了解现在那些类别访问量高。

%sql
select video.type, count(video.type) as count from play_video play join video_info video on (play.video_id = video.id) group by video.type order by count desc

点击运行,结果生成后点击饼图图标,查看各类别播放饼图,鼠标移到饼图上可以看到数据细节
screenshot

播放Top10视频的名称,类别,点击次数

统计最热播的topn视频的信息

%sql
select video.id, video.title, video.type, video_count.count from (select video_id, count(video_id) as count from play_video group by video_id order by count desc limit ${lmt=10}) video_count join video_info video on (video_count.video_id = video.id) order by count desc 
  • 可以设置lmt的数值查看前top lmt的视频播放信息,默认10
  • 点击运行,结果生成后点击柱状图图标,点击settings,拖拽字段到框里,设置key为title,id,group为type,values为count。
    screenshot

Top1视频的性别比例,年龄分布,婚否比例

统计指定热播剧的用户信息分布

%sql
select ${group=age} , count(*) as count  from (select distinct(user_id) from play_video  where video_id =${id=49} ) play join user_info userinfo on (play.user_id = userinfo.id) group by userinfo.${group=age}
  • group填写用户分组的列,age,sex(性别),marital_status,默认age.id填写要查看的视频id,默认49。
    screenshot

一个报表内统计热播视频观看用户的性别,年龄段,婚姻状态分布

%sql
select if(sex=0,'女','男') as title, count(*) as count, '性别' as type from (select distinct(user_id) from play_video  where video_id =${id=49} ) play join user_info userinfo on (play.user_id = userinfo.id) group by userinfo.sex
union all
select case when userinfo.age<15 then '小于15' when age<25 then '15-25' when age<35 then '25-35' else '大于35' end  , count(*) as count, '年龄段' as type from (select distinct(user_id) from play_video  where video_id =${id=49} ) play join user_info userinfo on (play.user_id = userinfo.id) group by case when userinfo.age<15 then '小于15' when age<25 then '15-25' when age<35 then '25-35' else '大于35' end 
union all
select if(marital_status=0,'未婚','已婚') as title, count(*) as count, '婚否' as type from (select distinct(user_id) from play_video  where video_id =${id=49} ) play join user_info userinfo on (play.user_id = userinfo.id) group by marital_status
  • 输入框填写视频id
  • 点击运行,结果生成后点击柱状图图标,点击settings,拖拽字段到框里,设置key为title,group为type,values为count。
    screenshot
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
弹性计算 Java 大数据
揭秘企业数据智能创新奥秘 | 2023云栖大会倚天专场
【倚天专场】邀请了弹性计算、操作系统、平头哥、ARM中国等专家为大家解读阿里云倚天ECS实例最新进展,包括云原生处理器最新技术、龙蜥+倚天软硬件结合、倚天ECS实例最佳实践等话题,为客户上云提供一个更具“性价比”的选择,加速企业数据智能创新。
|
1月前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。
|
存储 人工智能 程序员
云栖大会天池专场:见证“数据洞察创新挑战赛”荣耀加冕
天池将于11月2日上午,与各位开发者相聚云栖大会·算力馆云栖SHOW场。
1046 0
云栖大会天池专场:见证“数据洞察创新挑战赛”荣耀加冕
|
安全 大数据 数据管理
2022云栖大会|阿里云授予数据宝年度产品生态伙伴大奖
11月5日,由浙江省人民政府指导,杭州市人民政府、浙江省经济和信息化厅、阿里巴巴集团共同主办的2022云栖大会隆重闭幕。云栖大会以引领计算技术创新为宗旨,承载着计算技术的新思想、新实践、新突破。本届大会围绕“计算·进化·未来”的主旨,呈现了一场贯彻国家战略、展示最新成果、对接全球资源的开放性、地标性盛大活动。
364 0
2022云栖大会|阿里云授予数据宝年度产品生态伙伴大奖
|
缓存 分布式计算 云栖大会
2019杭州云栖大会回顾之Spark Relational Cache实现亚秒级响应的交互式分析
本文来自2019杭州云栖大会大数据生态专场中的分享《Spark Relational Cache实现亚秒级响应的交互式分析》
2580 0
2019杭州云栖大会回顾之Spark Relational Cache实现亚秒级响应的交互式分析
|
新零售 达摩院 大数据
云栖大会马云演讲:以前制造业靠电,未来靠数据
9月19日,2018杭州云栖大会在云栖小镇开幕。本次云栖大会以“驱动数字中国”为主题,关注政务创新。阿里称有来自60多个国家的CEO、CTO参会,超过12万人现场参会。 长达近四个小时的主论坛上有不少新发布,先来看几个亮点: 阿里巴巴城市大脑2.
19595 0
|
新零售 搜索推荐 大数据
【云栖大会】阿里巴巴集团CTO张建锋:用计算和数据去改变整个世界
当浩瀚的数字化信息能够联网在线,在万物互联网的新世界中,所有东西都可能有感知、变智能,想象一下电表、冰箱、心电图监测仪等设备的信息都能数字化并联网,从城市管理到个人生活,都会迎来翻天覆地的变化。现在让我们看看阿里是如何用计算和数据去改变整个世界的。
4818 0
|
云栖大会
实体商家如何利用数据突破上升瓶颈 ——云栖大会精彩演讲复盘,小白也能看的懂
我想实体商家最痛苦的不是如何用数据,而是如何产生数据。 云栖大会上,阿里奇点云CEO张金银说,他们之前被一家年营业额达100亿到200亿的实体企业邀请,去帮助企业实现数字化转型。结果,阿里的人和客户对接后才发现,这么大一家实体企业,数据才300G。
|
数据挖掘 数据库 云栖大会
2019云栖大会 | 技术为王趋势下,不懂云数据分析怎么行?
云上解决方案强在哪儿?解读快数据时代的分析秘笈
6589 0
Uma
|
云栖大会 数据库
2018云栖大会——无数据不未来 企业级数据库最佳实践专场与您相约9.20
阿里巴巴生于数据、长于数据,而数据库正是数据的载体。9月20日,我们将在企业级数据库最佳实践专场与您分享阿里在数据库领域多年的实践经验,揭秘云时代企业数据库建设之路。你能想到的问题,这里都有答案。
Uma
1633 0

热门文章

最新文章