2.1 数仓本地模式安装
1、环境中已经自动开启集群,可以直接进行使用; 2、练习Hadoop自带的典型案例:WordCount单词统计案例; 3、使用Web界面查看Yarn运行状态; 4、使用web界面查看HDFS文件系统; 5、使用HDFS shell 命令查看分析结果;
学习相关知识点 Hadoop集群正常启动后,它默认开放了50070和8088两个端口,分别用于监控HDFS集群和YARN集群。通过UI可以方便地进行集群的管理和查看,只需要在本地操作系统的浏览器输入集群服务的IP和对应的端口号即可访问。
(1)首先,通过本机的浏览器访问http://localhost:50070或http://本机IP地址:50070打开HDFS的Web UI界面。 (2)其次,选择Utilities——》Browse the file system查看文件系统里的数据文件,可以看到新建的HDFS上没有任何数据文件,如下图所示: (3)也通过YARN集群的Web UI界面查看运行状态,在本机的浏览器上访问http://localhost:8088或http://本机IP地址:8088,如下图所示: 使用HDFS shell 命令查看分析结果;
2.1.1任务1:创建初始文档,上传HDFS
1、在本机的/root目录下,依次创建文件夹data,文本文件word.txt
mkdir -p /root/data
vim /root/data/word.txt
键入i,进入编辑模式,输入如下内容:
hello world
hadoop hdfs
qingjiao hadoop hongya
hdfs qingjiao
qingjiao
hadoop hongya
注意:单词之间用空格进行分隔。 键入Esc,退出编辑模式,输入:wq保存退出。
2、在HDFS上创建/wordcount/input目录,并将word.txt文件上传至该目录下。 终端中执行HDFS shell命令。
# 创建目录
hadoop fs -mkdir -p /wordcount/input
# 上传数据文件:
hadoop fs -put /root/data/word.txt /wordcount/input
2.1.2任务2:进行wordcount运算
1、进入$HADOOP_HOME/share/hadoop/mapreduce/目录下,查看Hadoop的MapReduce示例程序。 使用ll 指令查看文件夹内容.
cd $HADOOP_HOME/share/hadoop/mapreduce/
ll
在该文件夹下自带了很多 Hadoop 的 MapReduce 示例程序。其中,hadoop-mapreduce-examples-2.7.7.jar 包中包含了计算单词个数、计算PI值等功能的程序。 2、使用hadoop-mapreduce-examples-2.7.7.jar 示例包,对HDFS上的word.txt 文件进行单词统计,结果输出路径为HDFS的/wordcount/output 下。 在jar包位置执行如下命令:
hadoop jar hadoop-mapreduce-examples-2.7.7.jar wordcount /wordcount/input/word.txt /wordcount/output
指令参考
指令 | 含义 |
---|
hadoop jar hadoop-mapreduce-examples-2.7.7.jar | 表示执行一个Hadoop的jar包程序 | wordcount | 表示执行jar包程序中的单词统计功能 | /wordcount/input/word.txt | 表示进行单词统计的HDFS文件路径 | /wordcount/output | 表示进行单词统计后的输出HDFS结果路径 |
执行完上述指令后,示例包中的MapReduce程序开始执行,效果图如下所示:
因为MapReduce程序分为Map端和Reduce端,当Map端和Reduce端都执行到100%,并显示job completed successfully时,才代表程序执行成功。
3、运行过程中通过YARN集群的Web UI界面查看运行状态。
因为MapReduce程序是运行在YARN之上的,所以我们同样可以通过YARN集群的Web UI界面查看运行状态,在本机的浏览器上访问http://localhost:8088或http://本机IP地址:8088。效果图如下所示:
2.1.3任务3:查看HDFS文件系统,查看运行结果
1、在“单词统计”示例程序执行成功后,再次刷新并查看HDFS的Web UI界面,观察不同。 在“单词统计”示例程序执行成功后,再次刷新并查看HDFS的Web UI界面,效果如下图所示: 从上图可以看出,MapReduce程序执行成功后,在HDFS上自动创建了指定的输出目录/wordcount/output,并且输出了 _SUCCESS 和 part-r-00000 结果文件。
其中,_SUCCESS文件用于表示此次任务成功执行的标识,而part-r-00000表示单词统计的结果。 2、使用HDFS Shell的相关指令查看文件结果。 使用HDFS Shell的相关指令查看part-r-00000的内容,具体指令如下所示:
hadoop fs -cat /wordcount/output/part-r-00000
效果如下图所示: 从上图可以看出,MapReduce示例程序成功统计出了/wordcount/input/word.txt文本中的单词数量,并进行了结果输出。
2.2 WordCount单词统计
信息流、物流和资金流三大平台是电子商务的三个最为重要的平台。而电子商务信息系统最核心的能力是大数据能力,包括大数据处理、数据分析和数据挖掘能力。无论是电商平台还是在电商平台上销售产品的卖家,都需要掌握大数据分析的能力。越成熟的电商平台,越需要以通过大数据能力驱动电子商务运营的精细化,更好的提升运营效果,提升业绩。
本次数据集为某购物平台在“双11”之前和之后的过去6个月内的匿名用户的购物日志以及指示它们是否是重复购买者的标签信息。 由于隐私问题,数据采取的方式有偏差,所以这个数据集的统计结果会偏离平台购物的实际情况,但是这不会影响解决方案的适用性。 部分数据如下:
user_id age_range gender merchant_id label activity_log 34176 6 0 944 -1 408895:1505:7370:1107:0 34176 6 0 412 -1 17235:1604:4396:0818:0#954723:1604:4396:0818:0#275437:1604:4396:0818:0#236488:1505:4396:1024:0 数据字段说明:
数据字段 定义 user_id 购物者的唯一ID。 age_range 用户的年龄范围:1 为小于18; 2为[18,24]; 3 [25,29]; 4 [30,34]; 5代表[35,39]; 6 为[40,49]; 7为[50,59];8为大于等于60。0和NULL为未知。 gender 用户性别:0为女;1为男;2和空null为不详。 merchant_id 商家的唯一ID。 label 值来自{0,1,-1,NULL}。 '1’表示’user_id’是’merchant_id’的重复购买者,而’0’则相反。 “-1”表示“user_id”不是给定商家的新客户,因此超出了我们的预测。 但是,这些记录可能会提供更多信息。 “NULL”只在测试数据中出现,表明这是一对预测。 activity_log {user_id,merchant_id}之间的交互记录集,其中每个记录是表示为“item_id:category_id:brand_id:time_stamp:action_type”的操作。 '#'用来分隔两个相邻的元素。 记录没有以任何特定顺序排序。 activity_log中字段含义为:
数据字段 定义 item_id 该项目的唯一ID。 category _id 该项目所属类别的唯一ID。 brand_id 该品牌的唯一ID。 time_stamp 操作发生的日期(格式:mmdd) action_type 它是一个枚举类型{0,1,2,3},其中0表示点击,1表示加入购物车,2表示购买,3表示加入收藏。
2.2.1任务1:查看数据,上传到HDFS
2.2.2任务2:创建数据库
2.2.3任务3:创建数据表
2.2.4任务4:导入数据
2.2.5任务5:创建中间表
2.2.6任务6:商品点击数分析
2.2.7任务7:商品购买分析
2.2.8任务8:商品收藏分析
2.3 电子商务运营分析
2.4 共享单车骑行规律分析
2.5 人口年收入分析
|