没有合适的资源?快使用搜索试试~ 我知道了~
淘宝大数据分析案例.pdf
资源推荐
资源详情
资源评论
淘宝⼤数据分析案例
项⽬介绍
本次结合的是⼀份淘宝⼤数据数据,数据集的⼤⼩共177MB,数据⼀共有3182261份(三百多万份数据集),⼀般的软件是⽆法计算和
分析的,⽐如Excel,MySQL,Python这些都⽆法较好的完成相关数据分析。
1.Excel⼀般是⼀万多⾏的数据就不可以了。
2.Python与MySQL虽然可以,但是查询的效率却不敢保证,容易出现电脑死机或者卡死,这个与电脑本⾝的配置有关,所以对于⼤数据的
数据集,我们提供了Hadoop,伪分布式的储存机制,这样的结构与特点让我们的数据集,可以容纳到TB级以上,较有规律的查询和优化的
查询,可以让我们的数据分析事半功倍。
数据表⾥⾯的字段如下
user_id age gender item_id behavior_type item_category time Provinceuser_id age gender item_id behavior_type item_category time Province
⽤户ID,性别,商品ID,⽤户⾏为,商品种类,发⽣⽇期,发⽣省份
项⽬准备
前期准备
如果你想要使⽤Hadoop集群来操作这次案例,就必须要已经完全配置好了的才能完成下⾯的操作,必须要包含:
hdfs,hbase,hive,flume,sqoop等插件,如果有需要的可以私信我,⽂件压缩包7-8GB,只能⽤百度云盘分享给你,解压之后直接可
以使⽤,⼀步到位
注意:虚拟机⾸先是必须要有的,不然有我发的镜像⽂件也不可以的
项⽬开展
项⽬导⼊
如果你是第⼀次使⽤我推荐的系统,需要进⾏下⾯的⼀些简单操作:
1.启动和拷贝hive包到相应的⽬录下⾯,这个是为了利⽤flume导⼊⽽准备的
start-all.sh
cd ${HIVE_HOME}/hcatalog/share/hcatalog/
cp * ${FLUME_HOME}/lib/
cd ${FLUME_HOME}/lib/
ll
本次我将讲解两种导⼊的⽅法,⼀种是hive直接加载本地⽂件,另⼀种是利⽤flume⾃动导⼊数据,作为商业⼤数据数据,我们更倾向于后
者,因为在平时采集⽇志或数据集,都是⾃动化的,⾃动化分布式爬⾍,⾃动化导⼊,⾃动化分析,这样才是⽼板时刻想要的数据结果展
⽰,所以作为数据分析师,在以后的⼯作之中如何把⼯作⼀键化是⾮常的重要的,但是平时⾃⼰练习的时候,基于⼀些少量的数据集,我们
采⽤本地加载的⽅法还是⽐较的简单⽅便,各有各的优势,我们⾃⼰去取舍。
把下⾯的配置参数加⼊hive-site.xml⽂件⾥⾯全选覆盖即可
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8</valu
e>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<property>
<name>hive.support.concurrency</name>
<value>true</value>
</property>
<property>
<name>hive.exec.dynamic.partition.mode</name>
<value>nonstrict</value>
</property>
<property>
<name>hive.txn.manager</name>
<value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
</property>
<property>
<name>hive.compactor.initiator.on</name>
<value>true</value>
</property>
<property>
<name>hive.compactor.worker.threads</name>
<value>1</value>
<!--这⾥的线程数必须⼤于0 :理想状态和分桶数⼀致-->
</property>
<property>
<name>hive.enforce.bucketing</name>
<value>true</value>
</property>
</configuration>
创建⽂件夹,便于后续操作
mkdir -p /home/hadoop/taobao/data
mkdir -p /home/hadoop/taobao/tmp/point
创建配置⽂件,帮助我们导⼊到hive⾥⾯(flume组件配置)
vi taobao.properties
#
定义
agent
名,
source
、
channel
、
sink
的名称
agent3.sources = source3
agent3.channels = channel3
agent3.sinks = sink3
#
具体定义
source
agent3.sources.source3.type = spooldir
agent3.sources.source3.spoolDir = /home/hadoop/taobao/data
agent3.sources.source3.fileHeader=false
#
设置
channel
类型为磁盘
agent3.channels.channel3.type = file
#file channle checkpoint
⽂件的路径
agent3.channels.channel3.checkpointDir=/home/hadoop/taobao/tmp/point
# file channel data
⽂件的路径
agent3.channels.channel3.dataDirs=/home/hadoop/taobao/tmp
#
具体定义
sink
agent3.sinks.sink3.type = hive
agent3.sinks.sink3.hive.metastore = thrift://hadoop:9083
agent3.sinks.sink3.hive.database = taobao_data
agent3.sinks.sink3.hive.table = data
agent3.sinks.sink3.serializer = DELIMITED
agent3.sinks.sink3.serializer.delimiter = ","
agent3.sinks.sink3.serializer.serdeSeparator = ','
agent3.sinks.sink3.serializer.fieldnames = id,user_id,age,gender,item_id,behavior_type,item_category,time,Province
agent3.sinks.sink3.batchSize = 90
#
组装
source
、
channel
、
sink
agent3.sources.source3.channels = channel3
agent3.sinks.sink3.channel = channel3
在hive⾥⾯创建相应的表(利⽤flume导⼊的时候)
create database taobao_data;
use taobao_data;
create table `taobao_data`.`data` (
`id` varchar(255) ,
`user_id` varchar(255) ,
`age` varchar(255) ,
`gender` varchar(255),
`item_id` varchar(255),
`behavior_type` varchar(255),
`item_category` varchar(255),
`time` varchar(255),
`Province` varchar(255)
)
clustered by(id) into 3 buckets
row format delimited fields terminated by ','
stored as orc tblproperties('transactional'='true');
⾸先运⾏该代码启动(终端命令⾏)
hive --service metastore -p 9083
运⾏下⾯的代码(终端命令⾏)
flume-ng agent --conf conf --conf-file taobao.properties -name agent3 -Dflume.hadoop.logger=INFO,console
在hive⾥⾯创建相应的表(利⽤本地加载⽅法)
剩余14页未读,继续阅读
资源评论
是空空呀
- 粉丝: 171
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现电磁优化计算功能,进行线型规划优化电磁设计.rar
- 基于matlab实现带精英策略的非支配排序遗传算法matlab 源码.rar
- 基于matlab实现差分进化算法,最新的用于替代遗传算法,是以后的主要发展方法.rar
- VSCode配置c/c++环境教程.md
- 基于matlab实现标准合作型协同进化遗传算法matlab源程序
- 七下人教.zip
- 基于matlab实现本份代码能对图像进行gabor滤波处理,结合指纹方向图以及指纹沟壑频率特性,对指纹图像进行增强.rar
- 基于matlab实现RBM神经网络实现了手写数字体识别的GUI程序.rar
- 基于matlab实现蝙蝠算法优化相关向量机建模对数据进行建模和预测.rar
- 基于matlab实现编写的禁忌搜索算法,解决了TSP问题,对初学者有重要的参考价值.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功