hadoop_day06

点击流
1.点击流的概念:
	点击流就是用户在网站上持续访问的轨迹,由同一个用户的一系列点击流数据构成用户的点击流轨迹
2.点击流模型:
PageViews模型:
	Pageviews模型关注同一个用户在一次session中,分别浏览了具体的哪些网页,以及每个页面的停留时间
Visits模型:
	Visits模型关注同一个用户在一次session中,一共浏览了多少个网页,以及停留的总时间
3.数据的采集
	在nginx服务器页面下部署埋点代码,然后通过flume下沉到hdfs
4.数据预处理
第一步:清洗数据
	使用mapreduce的map阶段,对采集到的数据进行第一轮清洗,有效的数据标识为true,无效的数据标识为false,并对日期格式化为yyyy-MM-dd HH:mm:ss格式,一行记录不同数据间使用不可见分隔符'\001'来分隔;
清洗数据不需要数据的汇总行为,因此只需要定义mapper;在mrAppTask中设置job.setNumReduceTasks(0),即可避免汇总
第二步:构建Pageviews模型
	读取清洗数据;定义Mapper,根据用户IP作为key来对用户进行分组处理,每出现一组key调用一次reduce();reduce阶段先将迭代器中的数据封装到List集合中,然后对集合中的数据,使用内比较器Comparator进行排序;遍历List;如果list.size()=1,说明用户只有一条访问记录,直接context.write()输出;比较这一次和上一次访问的时间间隔,30分内则认为是同一次会话;最后一次默认认为访问时间是60s
第三步:构建Visits模型:
	读取Pageviews模型,根据会话sessionId分组,排序,取出list.get(0)和list.get(list.size()-1)得到进入网站和离开网站的时间;计算需要的值
实体类
1.数据清洗实体
public class WebLogBean{
    private boolean valid = true;// 判断数据是否合法
	private String remote_addr;// 记录客户端的ip地址
	private String remote_user;// 记录客户端用户名称,忽略属性"-"
	private String time_local;// 记录访问时间与时区
	private String request;// 记录请求的url与http协议
	private String status;// 记录请求状态;成功是200
	private String body_bytes_sent;// 记录发送给客户端文件主体内容大小
	private String http_referer;// 用来记录从那个页面链接访问过来的
	private String http_user_agent;// 记录客户浏览器的相关信息
}
2.Pageviews实体
public class PageViewsBean implements Writable {
	private String session;		//session会话ID
	private String remote_addr;		//客户端的ip地址
	private String timestr;		 
	private String request;		//请求方式
	private int step;		//当前访问的是第几个页面
	private String staylong;	
	private String referal;
	private String useragent;
	private String bytes_send;	
	private String status;		//响应状态码
}
3.Visits实体
public class VisitBean implements Writable {
	private String session;
	private String remote_addr;
	private String inTime;
	private String outTime;
	private String inPage;
	private String outPage;
	private String referal;
	private int pageVisits;
}
Azkaban
1.工作流任务调度的实现方式
* 简单任务调度
	linux crontab
* 复杂的任务调度
	azkaban、ooize、Zeus
2.azkaban介绍:
	Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪工作流。
3.azkaban组成
mysql服务器:用于存储项目、日志或者执行计划之类的信息
web服务器:使用Jetty对外提供web服务,使用户可以通过web页面方便管理,https://node-1:8443
executor服务器:负责具体的工作流的提交、执行
4.job配置文件的定义:
# test.job
type=command
dependencied=other
commmand=echo hello
5.azkaban的使用流程:
第一步:定义job配置文件,并压缩为zip(windows)
第二步:在azkaban的web页面创建Project并上传配置文件,每一个项目都只能放一个job


### 回答1: Spark 基础环境是指安装和配置 Spark 所需的软件和硬件环境。Spark 运行需要 Java 环境和 Hadoop 环境,同时也需要配置 Spark 的相关参数,如内存大小、CPU 核数等。在安装和配置好基础环境后,我们才能使用 Spark 进行数据处理和分析。 ### 回答2: Spark是一个快速、可扩展且容错的大数据处理框架,提供了丰富的API和工具,可以处理大规模的数据集。 搭建Spark基础环境包括以下几个步骤: 1. 安装Java:Spark是基于Java开发的,因此首先需要安装Java开发环境。可以从Oracle官网下载并安装适合操作系统的Java版本。 2. 下载Spark:在Apache Spark官网下载最新版本的Spark压缩包,并解压到指定目录。 3. 配置环境变量:将Spark的bin目录添加到系统的环境变量中。这样可以方便地在任意位置运行Spark的命令。 4. 配置Spark集群:如果需要在多台机器上运行Spark应用程序,需要进行集群配置。首先,在每台机器上安装好Java,并将Spark解压到相同的目录。然后,编辑Spark的配置文件,设置集群的主节点和从节点。 5. 验证安装:通过在终端运行spark-shell命令,验证Spark是否正确安装。spark-shell命令会启动一个Scala解释器,并连接到Spark集群。 6. 运行第一个Spark应用程序:编写一个简单的Spark应用程序,如WordCount,用于统计文本文件中单词的个数。将程序保存为Scala文件,并使用spark-submit命令来运行。 以上就是搭建Spark基础环境的主要步骤。搭建好Spark环境后,可以使用Spark提供的丰富API和工具来进行大数据处理和分析,如数据清洗、转换、机器学习等。Spark的功能强大且易于使用,适用于各种大规模数据处理场景。 ### 回答3: Spark是一个快速通用的集群计算系统,它提供了高效的数据处理和分析能力。要运行Spark,我们需要配置和搭建一些基础环境。 首先,我们需要安装Java JDK。Spark运行在Java虚拟机上,因此我们需要安装适当版本的Java开发工具包。通常建议使用Oracle JDK的最新稳定版本,然后设置JAVA_HOME环境变量。 其次,我们需要安装Spark本身。Spark官方网站提供了预编译的二进制发行版,我们可以从网站上下载并解压缩到我们喜欢的位置。然后,我们可以设置SPARK_HOME环境变量,以便在终端窗口中使用Spark命令。 接下来,我们需要选择一个合适的集群管理器来运行Spark应用程序,比如Standalone模式、Hadoop YARN和Apache Mesos等。我们需要根据自己的需求进行选择和配置。例如,在Standalone模式下,我们需要启动一个Spark Master和多个Spark Worker来管理和运行任务。 最后,在运行Spark应用程序之前,我们需要通过编写一个Spark应用程序来使用Spark的功能。Spark提供了Java、Scala和Python等多种编程语言的API。我们可以使用任何一种编程语言来编写应用程序并在Spark上运行。 总之,Spark基础环境搭建包括安装Java JDK、安装Spark本身、选择和配置集群管理器,以及编写Spark应用程序。搭建好这些基础环境后,我们就可以开始使用Spark进行快速、高效的集群计算了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值