mr复习

    技术2022-07-11  78

    1、上课方式 基础理论部分——录播 实践部分——直播

    “预习+复习”的模式 预习:录播视频 复习:直播视频:

    2、上课纪律 (1)空杯心态 (2)100%热情投入:至少30次课,时间宝贵 (3)坚持不懈,一定要有信心 (4)保持互动:1是 0否 (5)人之所以痛苦,在于追求错误的东西

    3、经验 目标:找大数据工作 方法:找猎头?求职网站?群里小伙伴互相介绍、内推?班主任老师——都属于渠道问题 策略:你准备好了么?        准备什么?        1) 简历——硬件:创造机会        2) 修养——软件:把握机会                         工作前:先讲故事,再谈灵魂                         工作后:优化灵魂,讲新故事

    4、开发语言:linux系统命令、python、java、c++、shell、sql、scala      开发工具:linux、hadoop、spark、tensorflow、pytorch      开发方式:shell、vim、IDE(idea)             5、项目:《音乐推荐系统》,大家不要过于入戏太深 ============================= Hadoop生态圈

    尽可能不重复造轮子

    课程整体包含3个部分 1、大数据平台(hadoop、spark)——hadoop生态圈 2、服务器开发(日志流) 3、数据挖掘(机器学习) ============================= 常见业务

    1、搜索         以前:人->内容         现在:人->服务

    大数据:人产生

    音乐->物品(item)-> itemid 用户->人(user)-> userid

    大数据:用户多、物品多 用户多:产生用户行为多(用户行为挖掘) 物品多:产生大量的元数据(Metadata)

    元数据:物品的属性Schema(描述数据的数据)

    用户行为:通过监控实时获取 物品元数据:

    2、广告

    搜索广告 展示广告

    3、推荐

    学习重点: (1)检索/推荐系统定位 (2)架构/框架层次思维

    迅捷流程图制作软件

    ================================

    下节课计划: 1、架构思路 2、MapReduce——复习的思路 3、简易的推荐系统

    预习内容: 1、MapReduce、HDFS录播 2、搭建环境hadoop-2.6.5

    =============================== 1、架构 2、mapreduce(复习) (1)通常一个集群中,有这几个角色:master、slave、client (2)数据副本——数据高可用、容灾 (3)mapreduce——分而治之思想 (4)一个split和一个map是一对一的关系上 (5)开发java相当于开发函数,开发python等脚本,相当于规定好标准输入和输出 (6)hadoop1.0  ->  hadoop 2.0 hadoop1.0: 主:jobtracker、namenode 从:tasktracker、datanode 进程:worker

    hadoop 2.0 主:ResourceMgr(RM资源调度)、ApplicationManager(AM任务调度) 从:NodeManager(NM) 进程:容器(Container)

    单机调试: cat input | mapper | sort | reducer > output

    实践总结: 整体情况:hadoop-2.6.5    3个节点,1个master,2个slave    master:192.168.87.10    slave1:192.168.87.11    slave2:192.168.87.12        页面观察:    HDFS页面:http://192.168.87.10:50070/dfshealth.html#tab-datanode    yarn管理页面:http://192.168.87.10:8088/cluster        节点上,分发目标path:  /usr/local/src/hadoop-2.6.5/tmp/nm-local-dir/usercache/root/appcache/application_1543137200099_0011/container_1543137200099_0011_01_000001    杀死任务: yarn application -kill application_1543137200099_0011

    (1)wordcount (2)全排序        (a) 单reducer           第一个代码:mr_allsort_1reduce_python(base count)           第二个代码:mr_allsort_1reduce_python_2 (通过配置完成)                     依赖于框架自身的sort功能                     -jobconf "mapred.reduce.tasks=1"                     一种方式:通过加一个很大的base count,保证key对齐,依赖字典序完成全局排序                     另外一种方式:                                 -partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner \                                 # 利用该配置可以完成二次排序                             -jobconf  org.apache.hadoop.mapred.lib.KeyFieldBasedComparator \                             # 利用该配置可以完成key排序                                 -jobconf stream.num.map.output.key.fields=1 \                                 # 设置map分隔符的位置,该位置前的为key,之后的为value                                 -jobconf mapred.text.key.partitioner.options="-k1,1" \                                 # 选择哪一部分做partition                                 -jobconf mapred.text.key.comparator.options="-k1,1n" \                                 # 设置key中需要比较的字段或字节范围                                 -jobconf mapred.reduce.tasks=1        (b) 多reducer                     mr_allsort_python(多桶)                     适合大数据                         -jobconf mapred.reduce.tasks=2 \                             -jobconf stream.num.map.output.key.fields=2 \                             #                              -jobconf num.key.fields.for.partition=1 \                             # partition key的值,用于分发                             -partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner

    (3)白名单——分发 -file:把本地的文件分发到各个节点 -cachefile:把hdfs的压缩文件分发到各个节点 -archivefile:把hdfs的压缩目录分发到各个节点

    tar cvzf w.tar.gz white_list_1  white_list_2

    (4)压缩 (5)join             -jobconf stream.num.map.output.key.fields=2 \                 -jobconf num.key.fields.for.partition=1

    3、一个简易demo,检索系统

    ============================== 下节课计划: 1、NLP             tfidf、关键词提取、lcs 2、中文分词             jieba             jieba+pyweb ====> 远程分词服务--------------> Storm实时推荐             mapreduce、spark

    预习内容: 1、mr的所有视频(包含今天的直播) 2、vim

    conda安装: 安装:conda create -n py27tf python=2.7 -y -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda install -y -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ tensorflow=1.2 conda info -e source  activate py27tf pip install numpy

    Processed: 0.012, SQL: 9