大数据基础课程设计报告

合集下载

大数据课程设计报告摘要

大数据课程设计报告摘要

大数据课程设计报告摘要一、课程目标知识目标:1. 让学生理解大数据的基本概念,掌握数据采集、存储、处理和分析的基本方法;2. 使学生了解大数据在各领域的应用,如互联网、金融、医疗等;3. 帮助学生掌握至少一种数据分析工具(如Python、R等),并能运用其进行数据预处理和简单分析。

技能目标:1. 培养学生运用大数据技术解决实际问题的能力,提高数据思维和数据应用能力;2. 培养学生团队协作和沟通能力,能够就数据分析项目进行有效沟通和协作;3. 提高学生利用信息技术获取、处理和分析数据的能力。

情感态度价值观目标:1. 培养学生对大数据技术的兴趣和好奇心,激发学生学习主动性;2. 培养学生严谨的科学态度和良好的数据伦理观念,认识到数据安全、隐私保护的重要性;3. 引导学生关注社会发展,认识到大数据技术对社会发展的积极作用,培养学生的社会责任感。

课程性质:本课程旨在让学生掌握大数据基本概念和技能,培养数据思维,提高实际应用能力。

学生特点:学生具备一定的计算机和数学基础,对大数据技术有一定了解,但实践能力有待提高。

教学要求:结合学生特点,注重理论与实践相结合,采用案例教学,提高学生的实际操作能力。

同时,关注学生的情感态度,激发学习兴趣,培养良好的数据伦理观念。

通过本课程的学习,使学生具备大数据时代所需的基本素质和能力。

二、教学内容1. 大数据基本概念:数据、信息、知识的关系,大数据的定义、特征及其价值;2. 数据采集与存储:数据源分类,数据采集方法,数据存储技术;3. 数据处理技术:数据清洗、数据整合、数据转换等;4. 数据分析方法:描述性分析、关联分析、预测分析等;5. 数据挖掘与机器学习:基本概念、常用算法及应用案例;6. 大数据应用领域:互联网、金融、医疗、智慧城市等;7. 数据可视化:数据可视化方法、工具及其应用;8. 数据安全与隐私保护:数据安全策略,隐私保护技术及法律法规;9. 数据分析工具:Python、R等数据分析工具的基本操作及应用;10. 实践项目:结合实际案例,进行数据处理、分析和可视化的实践操作。

大数据学课程设计

大数据学课程设计

大数据学课程设计一、教学目标本课程旨在让学生了解大数据的基本概念、技术和应用,掌握数据采集、处理、分析和可视化等基本技能,培养学生的数据思维和解决问题的能力。

具体目标如下:1.知识目标:–理解大数据的概念、特征和应用领域;–掌握数据采集、存储、处理、分析和可视化等基本技术;–了解大数据伦理和法律法规。

2.技能目标:–能够使用大数据相关工具和软件进行数据处理和分析;–能够运用数据思维解决实际问题,提出创新性的解决方案;–能够进行数据可视化展示,撰写数据报告。

3.情感态度价值观目标:–培养学生的数据敏感性和数据责任感;–培养学生运用数据分析和思考问题的习惯;–培养学生团队协作和沟通表达的能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.大数据概述:大数据的概念、特征、应用领域和前景;2.数据采集与存储:数据采集技术、数据存储技术及其比较;3.数据处理与分析:数据清洗、数据转换、数据挖掘和机器学习;4.数据可视化:数据可视化技术、工具和应用;5.大数据伦理与法律法规:数据隐私保护、数据安全、合规性要求。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:通过讲解大数据的基本概念、技术和应用,使学生掌握相关知识;2.案例分析法:分析具体的大数据案例,让学生了解大数据在实际中的应用;3.实验法:让学生动手操作大数据相关工具和软件,提高学生的实际操作能力;4.小组讨论法:分组讨论数据问题和解决方案,培养学生的团队协作和沟通能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的大数据知识体系;2.参考书:提供相关领域的经典著作和论文,拓展学生的知识视野;3.多媒体资料:制作课件、视频等多媒体资料,提高课堂教学效果;4.实验设备:配置相应的大数据处理和分析设备,为学生提供实践操作的机会。

五、教学评估本课程的教学评估将采用多元化的评价方式,全面客观地评价学生的学习成果。

大数据应用基础课程设计

大数据应用基础课程设计

大数据应用基础课程设计一、课程目标知识目标:1. 让学生了解大数据的基本概念,掌握数据采集、存储、处理和分析的基础知识。

2. 使学生了解大数据在各领域的应用案例,理解大数据的价值和作用。

3. 帮助学生掌握至少一种数据分析工具,如Excel、Python等,并运用到实际问题的解决中。

技能目标:1. 培养学生运用大数据知识解决实际问题的能力,提高数据分析技能。

2. 培养学生的团队协作和沟通能力,学会在小组合作中共同分析问题、解决问题。

3. 提高学生的信息素养,能够从海量数据中筛选有用信息,提高数据敏感度。

情感态度价值观目标:1. 培养学生对大数据技术的兴趣和好奇心,激发学生学习主动性和探究精神。

2. 培养学生具有数据安全意识,遵循数据道德规范,尊重个人隐私。

3. 增强学生的国家意识和社会责任感,认识到大数据技术在我国经济社会发展中的重要作用。

课程性质:本课程为应用实践性课程,旨在帮助学生掌握大数据基础知识,提高数据分析能力,培养学生的创新意识和团队协作精神。

学生特点:高中生具有一定的信息素养和逻辑思维能力,对新事物充满好奇,具备一定的自主学习能力。

教学要求:结合学生特点,注重理论与实践相结合,以案例教学为主,激发学生的学习兴趣和参与度。

通过小组合作、讨论交流等形式,培养学生的团队协作能力和解决问题的能力。

同时,注重数据道德和信息安全教育,培养学生的社会责任感。

在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. 大数据基本概念:数据、信息、知识的关系,大数据的定义、特征及发展历程。

教材章节:第一章 大数据概述2. 数据采集与存储:数据来源、采集方法,数据存储技术及分布式文件系统。

教材章节:第二章 数据采集与存储3. 数据处理与分析:数据预处理、清洗、转换,数据分析方法,数据挖掘技术。

教材章节:第三章 数据处理与分析4. 大数据应用领域:互联网、金融、医疗、教育等行业的应用案例。

大数据课程设计报告

大数据课程设计报告

大数据课程设计报告一、课程目标知识目标:1. 让学生掌握大数据的基本概念,理解其特点和价值;2. 使学生了解大数据的来源、类型和常见处理技术;3. 帮助学生掌握数据可视化、数据分析的基本方法。

技能目标:1. 培养学生运用大数据技术解决实际问题的能力;2. 提高学生使用数据分析工具进行数据处理和分析的技能;3. 培养学生团队协作、沟通表达的能力。

情感态度价值观目标:1. 激发学生对大数据技术的兴趣,培养其探索精神;2. 培养学生严谨、客观、批判的思维方式,使其具备良好的数据素养;3. 引导学生关注大数据在社会发展中的应用,认识其对社会、经济、环境等方面的影响,树立正确的价值观。

课程性质:本课程为选修课程,旨在让学生了解大数据的基本知识,培养其数据分析和处理能力。

学生特点:本课程针对的是高中生,他们具有一定的信息技术基础,思维活跃,对新事物充满好奇心。

教学要求:结合学生特点,课程设计应注重理论与实践相结合,以案例教学为主,让学生在实际操作中掌握知识,提高技能。

同时,注重培养学生的团队协作能力和创新精神。

1. 解释大数据的基本概念、特点和价值;2. 识别大数据的来源、类型和处理技术;3. 运用数据分析工具进行数据处理和分析;4. 拓展视野,关注大数据在社会发展中的应用;5. 培养团队协作、沟通表达的能力,提高自身综合素质。

二、教学内容1. 大数据概念与背景:介绍大数据的定义、发展历程、应用领域及对社会经济的影响。

教材章节:第一章 大数据概述2. 大数据类型与来源:分析结构化数据、非结构化数据及半结构化数据的特点,探讨大数据的来源及采集方法。

教材章节:第二章 数据类型与来源3. 大数据处理技术:讲解大数据存储、管理、处理的基本技术,如Hadoop、Spark等。

教材章节:第三章 大数据处理技术4. 数据分析与可视化:介绍数据分析的基本方法,如统计分析、数据挖掘等,以及常见的数据可视化工具。

教材章节:第四章 数据分析与可视化5. 大数据应用案例:分析大数据在金融、医疗、教育等领域的实际应用案例,探讨其价值。

大数据综合课程设计

大数据综合课程设计

大数据综合课程设计一、课程目标知识目标:1. 让学生理解大数据的基本概念,掌握数据收集、存储、处理和分析的基本方法。

2. 引导学生了解大数据在各领域的应用,如互联网、金融、医疗等,并理解其对社会发展的意义。

3. 帮助学生掌握至少一种大数据分析工具,如Python、R等,并能够运用该工具进行数据分析和可视化。

技能目标:1. 培养学生运用大数据思维解决问题的能力,学会从海量数据中发现规律和趋势。

2. 提高学生团队协作和沟通表达的能力,能够就大数据分析结果进行有效的报告和展示。

3. 培养学生独立思考和创新能力,能够针对实际问题提出大数据解决方案。

情感态度价值观目标:1. 培养学生对大数据技术的兴趣和热情,激发其探索精神,增强学习动力。

2. 引导学生关注大数据对社会、经济和环境的影响,培养其社会责任感和伦理意识。

3. 培养学生积极向上的学习态度,使其具备面对挑战、克服困难的勇气和毅力。

本课程针对高年级学生,结合其知识储备和学习特点,以实用性为导向,注重培养学生的实际操作能力和综合素质。

课程目标旨在使学生能够掌握大数据基础知识,运用相关技能解决实际问题,并形成积极的学习态度和价值观。

通过分解课程目标为具体的学习成果,为后续教学设计和评估提供明确方向。

二、教学内容1. 大数据基础知识:包括大数据概念、特点、发展历程,数据类型和数据结构等,对应课本第一章内容。

2. 数据采集与存储:学习数据采集方法、存储技术,了解分布式文件系统和关系型数据库,对应课本第二章内容。

3. 数据处理与分析:学习数据处理技术,如数据清洗、数据转换等;数据分析方法,如统计分析、数据挖掘等,对应课本第三章内容。

4. 大数据应用与案例:介绍大数据在互联网、金融、医疗等领域的应用,分析成功案例,对应课本第四章内容。

5. 大数据分析工具:学习Python、R等数据分析工具的使用,进行实际操作练习,对应课本第五章内容。

6. 数据可视化与报告:掌握数据可视化技术,如Tableau、Power BI等,学会撰写数据分析报告,对应课本第六章内容。

大数据培训课程设计

大数据培训课程设计

大数据培训课程设计一、课程目标知识目标:1. 学生能理解大数据的基本概念,掌握数据采集、存储、处理和分析的基本方法。

2. 学生能运用大数据分析工具,对实际问题进行数据挖掘和可视化展示。

3. 学生了解大数据在各领域的应用和价值,掌握数据安全与隐私保护的基本原则。

技能目标:1. 学生具备运用编程语言(如Python)进行数据处理和分析的能力。

2. 学生能够熟练使用大数据分析软件(如Hadoop、Spark等),完成数据挖掘任务。

3. 学生能够独立设计并实施大数据项目,解决实际问题。

情感态度价值观目标:1. 学生对大数据产生兴趣,认识到数据科学在现代社会的重要性。

2. 学生培养团队协作精神,学会与他人共同分析问题、解决问题。

3. 学生树立正确的数据伦理观,关注数据安全与隐私保护,遵守相关法律法规。

本课程针对高年级学生,结合学科特点和教学要求,旨在培养学生的大数据思维和应用能力。

课程内容与教材紧密关联,注重实用性,使学生能够学以致用,为未来从事数据科学相关领域工作打下坚实基础。

通过对课程目标的分解和教学设计,教师可以更好地评估学生的学习成果,确保课程目标的达成。

二、教学内容1. 大数据概念与背景:介绍大数据的定义、特征和应用场景,让学生了解大数据的发展历程及未来趋势。

(对应教材第1章)2. 数据采集与存储:讲解数据采集的方法和工具,数据存储的常用技术,如HDFS、HBase等。

(对应教材第2章)3. 数据处理与分析:学习数据处理的基本技术,如数据清洗、数据整合等,以及数据分析方法,如统计分析、数据挖掘等。

(对应教材第3-4章)4. 大数据分析工具:介绍常用的大数据分析工具和框架,如Hadoop、Spark 等,并让学生实践操作。

(对应教材第5章)5. 数据可视化:学习数据可视化原理和工具,如Tableau、ECharts等,让学生将分析结果以可视化形式展示。

(对应教材第6章)6. 大数据应用与案例:分析大数据在各领域的应用案例,让学生了解大数据的实际价值。

大数据课程在线课程设计

大数据课程在线课程设计

大数据课程在线课程设计一、课程目标知识目标:1. 学生能理解大数据的基本概念,掌握数据收集、处理和分析的基本方法。

2. 学生能够描述大数据在不同领域的应用,了解其对社会发展的意义。

3. 学生掌握基本的统计和数据分析技巧,能够运用相关工具对数据进行有效处理。

技能目标:1. 学生能够运用大数据处理软件进行数据清洗、整理和分析。

2. 学生能够利用数据分析结果,撰写简单的数据分析报告。

3. 学生能够通过小组合作,共同完成一个大数据项目,提高团队协作能力。

情感态度价值观目标:1. 学生对大数据产生兴趣,认识到其在现代社会的重要性,激发学习的主动性和积极性。

2. 学生在课程学习过程中,培养批判性思维和问题解决能力,增强面对复杂问题的信心。

3. 学生通过学习大数据,关注数据安全问题,树立正确的数据道德观念。

课程性质分析:本课程为在线课程,以理论讲解和实践操作相结合的方式进行。

课程内容紧密结合课本,强调实用性,注重培养学生的动手能力和实际操作技能。

学生特点分析:学生为高年级学生,具备一定的计算机操作能力和逻辑思维能力。

他们对新鲜事物充满好奇心,喜欢探索和挑战。

教学要求:1. 教学过程中,注重理论与实践相结合,提高学生的实际操作能力。

2. 教师应关注学生的学习进度,及时给予指导和反馈,提高教学效果。

3. 课程结束后,对学生进行综合评估,检验学习成果。

二、教学内容1. 大数据概念与背景:介绍大数据的定义、特征及其在现代社会的作用;分析大数据的发展历程和未来趋势。

教材章节:第一章 大数据概述2. 数据采集与预处理:讲解数据采集的途径、方法和注意事项;介绍数据预处理的基本步骤和技巧。

教材章节:第二章 数据采集与预处理3. 数据存储与管理:分析大数据存储的需求,介绍常见的数据存储技术;讲解数据管理的基本原理和方法。

教材章节:第三章 数据存储与管理4. 数据分析与挖掘:阐述数据分析的基本方法,如统计分析、关联分析等;介绍数据挖掘的常用算法和模型。

会计大数据基础课程设计

会计大数据基础课程设计

会计大数据基础课程设计一、课程目标知识目标:1. 理解大数据在会计领域的基本概念和应用场景;2. 掌握会计大数据的收集、处理和分析方法;3. 学习会计信息系统的基本构成及其在大数据环境下的变革;4. 了解数据可视化在会计信息呈现中的应用。

技能目标:1. 能够运用大数据技术进行会计数据的收集和预处理;2. 掌握运用数据分析工具对会计数据进行分析,提取有效信息;3. 能够运用会计信息系统提高数据处理效率,降低错误率;4. 能够运用数据可视化工具制作出清晰的会计报告。

情感态度价值观目标:1. 培养学生对会计大数据技术的兴趣,激发其探索精神;2. 增强学生团队协作能力,培养良好的沟通与协作意识;3. 提高学生对会计信息真实性的认识,培养其诚信、负责任的职业素养;4. 培养学生具备大数据时代下的创新意识和适应能力。

本课程针对高年级会计专业学生,结合课程性质、学生特点和教学要求,以实用性为导向,旨在帮助学生掌握会计大数据基础知识和技能,提高其在实际工作中运用大数据技术解决问题的能力。

通过本课程的学习,使学生具备会计大数据处理和分析的基本素质,为未来职业发展打下坚实基础。

二、教学内容1. 会计大数据基本概念:介绍大数据的定义、特征及其在会计领域的应用价值;教材章节:第一章 大数据概述2. 会计数据收集与预处理:讲解会计数据采集方法、数据预处理技术及数据清洗;教材章节:第二章 会计数据采集与预处理3. 会计数据分析方法:介绍常用的会计数据分析方法,如描述性分析、关联分析等;教材章节:第三章 会计数据分析方法4. 会计信息系统:阐述会计信息系统的基本构成、功能及其在大数据环境下的创新应用;教材章节:第四章 会计信息系统5. 数据可视化:讲解数据可视化原理、工具及其在会计报告中的应用;教材章节:第五章 数据可视化与会计报告6. 会计大数据案例分析:分析典型会计大数据应用案例,提升学生实际操作能力;教材章节:第六章 会计大数据案例分析7. 实践操作与讨论:组织学生进行会计大数据处理与分析的实践操作,开展小组讨论;教材章节:第七章 实践操作与讨论本教学内容根据课程目标进行选择和组织,注重科学性和系统性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大数据基础课程设计报告一、项目简介:使用hadoop中的hive、mapreduce以及HBASE对网上的一个搜狗五百万的数进行了一个比较实际的数据分析。

搜狗五百万数据,是经过处理后的搜狗搜索引擎生产数据,具有真实性,大数据性,能够较好的满足分布式计算应用开发课程设计的数据要求。

搜狗数据的数据格式为:访问时间\t 用户ID\t[查询词]\t 该URL 在返回结果中的排名\t 用户点击的顺序号\t 用户点击的URL。

其中,用户ID 是根据用户使用浏览器访问搜索引擎时的Cookie 信息自动赋值,即同一次使用浏览器输入的不同查询对应同一个用户ID。

二、操作要求1.将原始数据加载到HDFS平台。

2.将原始数据中的时间字段拆分并拼接,添加年、月、日、小时字段。

3.将处理后的数据加载到HDFS平台。

4.以下操作分别通过MR和Hive实现。

●查询总条数●非空查询条数●无重复总条数●独立UID总数●查询频度排名(频度最高的前50词)●查询次数大于2次的用户总数●查询次数大于2次的用户占比●Rank在10以内的点击次数占比●直接输入URL查询的比例●查询搜索过”仙剑奇侠传“的uid,并且次数大于35.将4每步骤生成的结果保存到HDFS中。

6.将5生成的文件通过Java API方式导入到HBase(一张表)。

7.通过HBase shell命令查询6导出的结果。

三、实验流程1.将原始数据加载到HDFS平台2.将原始数据中的时间字段拆分并拼接,添加年、月、日、小时字段(1)编写1个脚本sogou-log-extend.sh,其中sogou-log-extend.sh的内容为:处理脚本文件:bash sogou-log-extend.sh sogou.500w.utf8 sogou.500w.utf8.ext结果为:3.将处理后的数据加载到HDFS平台hadoop fs -put sogou.500w.utf8.ext /4.以下操作分别通过MR和Hive实现Ⅰ.hive实现1.查看数据库:show databases;2.创建数据库: create database sogou;3.使用数据库: use sogou;4.查看所有表:show tables;5.创建sougou表:Create table sogou(time string,uuid string,name string,num1 int,num2 int,url string) Row format delimited fields terminated by '\t';6.将本地数据导入到Hive表里:Load data local inpath'/root/sogou.500w.utf8' into table sogou;7.查看表信息:desc sogou;(1)查询总条数select count(*) from sogou;(2)非空查询条数select count(*) from sogou where name is not null and name !='';(3)无重复总条数select count(*) from (select * from sogou group bytime,num1,num2,uuid,name,url having count(*)=1) a;(4)独立UID总数select count(distinct uuid) from sogou;(5)查询频度排名(频度最高的前50词)select name,count(*) as pd from sogou group by name order by pd desc limit 50;(6)查询次数大于2次的用户总数select count(a.uuid) from (select uuid,count(*) as cnt from sogou group by uuid having cnt > 2) a;(7)查询次数大于2次的用户占比select count(*) from (select uuid,count(*) as cnt from sogou group by uuid having cnt > 2) a;(8)Rank在10以内的点击次数占比select count(*) from sogou where num1<11;(9)直接输入URL查询的比例select count(*) from sogou where url like '%www%';(10)查询搜索过”仙剑奇侠传“的uid,并且次数大于3 select uuid ,count(*) as uu from sogou where name='仙剑奇侠传' groupby uuid having uu>3;Ⅱ.MapReduce实现(import的各种包省略)(1)查询总条数public class MRCountAll {public static Integer i = 0;public static boolean flag = true;public static class CountAllMap extends Mapper<Object, Text, T ext, Text> { @Overrideprotected void map(Object key, Text value, Mapper<Object, Text, Text, Text>.Context context)throws IOException, InterruptedException {i++;}}public static void runcount(String Inputpath, String Outpath) { Configuration conf = new Configuration();conf.set("fs.defaultFS", "hdfs://10.49.47.20:9000");Job job = null;try {job = Job.getInstance(conf, "count");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}job.setJarByClass(MRCountAll.class);job.setMapperClass(CountAllMap.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(Text.class);try {FileInputFormat.addInputPath(job, new Path(Inputpath));} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}FileOutputFormat.setOutputPath(job, new Path(Outpath));try {job.waitForCompletion(true);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String[] args) throws Exception {runcount("/sogou/data/sogou.500w.utf8", "/sogou/data/CountAll");System.out.println("总条数: " + i);}}(2)非空查询条数public class CountNotNull {public static String Str = "";public static int i = 0;public static boolean flag = true;public static class wyMap extends Mapper<Object, Text, Text, IntWritable> { @Overrideprotected void map(Object key, Text value, Mapper<Object, Text, Text, IntWritable>.Context context)throws IOException, InterruptedException {String[] values = value.toString().split("\t");if (!values[2].equals(null) && values[2] != "") {context.write(new Text(values[1]), new IntWritable(1));i++;}}}public static void run(String inputPath, String outputPath) {Configuration conf = new Configuration();conf.set("fs.defaultFS", "hdfs://10.49.47.20:9000");Job job = null;try {job = Job.getInstance(conf, "countnotnull");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}assert job != null;job.setJarByClass(CountNotNull.class);job.setMapperClass(wyMap.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);try {FileInputFormat.addInputPath(job, new Path(inputPath));} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}try {FileOutputFormat.setOutputPath(job, new Path(outputPath));job.waitForCompletion(true);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}}public static void main(String[] args) {run("/sogou/data/sogou.500w.utf8", "/sogou/data/CountNotNull");System.out.println("非空条数: " + i);}}(3)无重复总条数public class CountNotRepeat {public static int i = 0;public static class NotRepeatMap extends Mapper<Object , Text , Text, Text>{ @Overrideprotected void map(Object key, Text value, Mapper<Object, Text, Text, Text>.Context context) throws IOException, InterruptedException {String text = value.toString();String[] values = text.split("\t");String time = values[0];String uid = values[1];String name = values[2];String url = values[5];context.write(new Text(time+uid+name+url), new Text("1"));}}public static class NotRepeatReduc extends Reducer<Text , IntWritable, Text, IntWritable>{@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Reducer<Text,IntWritable,Text,IntWritable>.Context context) throws IOException, InterruptedException {i++;context.write(new Text(key.toString()),new IntWritable(i));}}public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {Configuration conf = new Configuration();conf.set("fs.defaultFS", "hdfs://10.49.47.20:9000");Job job = null;try {job = Job.getInstance(conf, "countnotnull");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}assert job != null;job.setJarByClass(CountNotRepeat.class);job.setMapperClass(NotRepeatMap.class);job.setReducerClass(NotRepeatReduc.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(Text.class);try {FileInputFormat.addInputPath(job, new Path("/sogou/data/sogou.500w.utf8"));} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}try {FileOutputFormat.setOutputPath(job, newPath("/sogou/data/CountNotRepeat"));job.waitForCompletion(true);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("无重复总条数为: " + i);}}(4)独立UID总数public class CountNotMoreUid {public static int i = 0;public static class UidMap extends Mapper<Object , Text , Text, T ext>{ @Overrideprotected void map(Object key, Text value, Mapper<Object, Text, Text, Text>.Context context) throws IOException, InterruptedException {String text = value.toString();String[] values = text.split("\t");String uid = values[1];context.write(new Text(uid), new Text("1"));}}public static class UidReduc extends Reducer<Text , IntWritable, Text, IntWritable>{ @Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Reducer<Text,IntWritable,Text,IntWritable>.Context context) throws IOException, InterruptedException {i++;context.write(new Text(key.toString()),new IntWritable(i));}}public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {Configuration conf = new Configuration();conf.set("fs.defaultFS", "hdfs://10.49.47.20:9000");Job job = null;try {job = Job.getInstance(conf, "countnotnull");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}assert job != null;job.setJarByClass(CountNotNull.class);job.setMapperClass(UidMap.class);job.setReducerClass(UidReduc.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(Text.class);try {FileInputFormat.addInputPath(job, new Path("/sogou/data/sogou.500w.utf8"));} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}try {FileOutputFormat.setOutputPath(job, new Path("/sogou/data/CountNotMoreUid"));job.waitForCompletion(true);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("独立UID条数: " + i);}}(5)查询频度排名(频度最高的前50词)public class CountTop50 {public static class TopMapper extends Mapper<LongWritable, Text, Text, LongWritable>{Text text =new T ext();@Overrideprotected void map(LongWritable key, T ext value,Context context)throws IOException, InterruptedException {String[] line= value.toString().split("\t");String keys = line[2];text.set(keys);context.write(text,new LongWritable(1));}}public static class TopReducer extends Reducer< Text,LongWritable, Text, LongWritable>{Text text = new Text();TreeMap<Integer,String > map = new TreeMap<Integer,String>();@Overrideprotected void reduce(Text key, Iterable<LongWritable> value, Context context) throws IOException, InterruptedException {int sum=0;//key出现次数for (LongWritable ltext : value) {sum+=ltext.get();}map.put(sum,key.toString());//去前50条数据if(map.size()>50){map.remove(map.firstKey());}}@Overrideprotected void cleanup(Context context)throws IOException, InterruptedException {for(Integer count:map.keySet()){context.write(new Text(map.get(count)), new LongWritable(count));}}}public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {Configuration conf = new Configuration();conf.set("fs.defaultFS", "hdfs://10.49.47.20:9000");Job job = Job.getInstance(conf, "count");job.setJarByClass(CountT op50.class);job.setJobName("Five");job.setOutputKeyClass(Text.class);job.setOutputValueClass(LongWritable.class);job.setMapperClass(T opMapper.class);job.setReducerClass(T opReducer.class);FileInputFormat.addInputPath(job, new Path("/sogou/data/sogou.500w.utf8"));FileOutputFormat.setOutputPath(job, new Path("/sogou/data/CountTop50"));job.waitForCompletion(true);}}(6)查询次数大于2次的用户总数public class CountQueriesGreater2 {public static int total = 0;public static class MyMaper extends Mapper<Object, Text, T ext, IntWritable> { protected void map(Object key, Text value, Mapper<Object, Text, Text, IntWritable>.Context context)throws IOException, InterruptedException {String[] str = value.toString().split("\t");Text word;IntWritable one = new IntWritable(1);word = new Text(str[1]);context.write(word, one);}}public static class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable> {@Overrideprotected void reduce(Text arg0, Iterable<IntWritable> arg1,Reducer<Text, IntWritable, Text, IntWritable>.Context arg2) throws IOException, InterruptedException {// arg0是一个单词arg1是对应的次数int sum = 0;for (IntWritable i : arg1) {sum += i.get();}if(sum>2){total=total+1;}//arg2.write(arg0, new IntWritable(sum));}}public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {Configuration conf = new Configuration();conf.set("fs.defaultFS", "hdfs://10.49.47.20:9000");// 1.实例化一个JobJob job = Job.getInstance(conf, "six");// 2.设置mapper类job.setMapperClass(MyMaper.class);// 3.设置Combiner类不是必须的// job.setCombinerClass(MyReducer.class);// 4.设置Reducer类job.setReducerClass(MyReducer.class);// 5.设置输出key的数据类型job.setOutputKeyClass(Text.class);// 6.设置输出value的数据类型job.setOutputValueClass(IntWritable.class);// 设置通过哪个类查找job的Jar包job.setJarByClass(CountQueriesGreater2.class);// 7.设置输入路径FileInputFormat.addInputPath(job, new Path("/sogou/data/sogou.500w.utf8"));// 8.设置输出路径FileOutputFormat.setOutputPath(job, new Path("/sogou/data/CountQueriesGreater2"));// 9.执行该作业job.waitForCompletion(true);System.out.println("查询次数大于2次的用户总数:" + total + "条");}}(7)查询次数大于2次的用户占比public class CountQueriesGreaterPro {public static int total1 = 0;public static int total2 = 0;public static class MyMaper extends Mapper<Object, Text, T ext, IntWritable> { @Overrideprotected void map(Object key, Text value, Mapper<Object, Text, Text, IntWritable>.Context context)throws IOException, InterruptedException {total2++;String[] str = value.toString().split("\t");Text word;IntWritable one = new IntWritable(1);word = new Text(str[1]);context.write(word, one);// 执行完毕后就是一个单词对应一个value(1)}}public static class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable> {@Overrideprotected void reduce(Text arg0, Iterable<IntWritable> arg1,Reducer<Text, IntWritable, Text, IntWritable>.Context arg2) throws IOException, InterruptedException {// arg0是一个单词arg1是对应的次数int sum = 0;for (IntWritable i : arg1) {sum += i.get();}if(sum>2){total1++;}arg2.write(arg0, new IntWritable(sum));}}public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {System.out.println("seven begin");Configuration conf = new Configuration();conf.set("fs.defaultFS", "hdfs://10.49.47.20:9000");// 1.实例化一个JobJob job = Job.getInstance(conf, "seven");// 2.设置mapper类job.setMapperClass(MyMaper.class);// 3.设置Combiner类不是必须的// job.setCombinerClass(MyReducer.class);// 4.设置Reducer类job.setReducerClass(MyReducer.class);// 5.设置输出key的数据类型job.setOutputKeyClass(Text.class);// 6.设置输出value的数据类型job.setOutputValueClass(IntWritable.class);// 设置通过哪个类查找job的Jar包job.setJarByClass(CountQueriesGreaterPro.class);// 7.设置输入路径FileInputFormat.addInputPath(job, new Path("/sogou/data/sogou.500w.utf8"));// 8.设置输出路径FileOutputFormat.setOutputPath(job, new Path("/sogou/data/CountQueriesGreaterPro"));// 9.执行该作业job.waitForCompletion(true);System.out.println("total1="+total1+"\ttotal2="+total2);float percentage = (float)total1/(float)total2;System.out.println("查询次数大于2次的用户占比为:" + percentage*100+"%");System.out.println("over");}}(8)Rank在10以内的点击次数占比public class CountRank {public static int sum1 = 0;public static int sum2 = 0;public static class MyMapper extends Mapper<Object, Text, Text, Text> { @Overrideprotected void map(Object key, Text value, Mapper<Object, Text, Text, Text>.Context context)throws IOException, InterruptedException {sum2++;String[] str = value.toString().split("\t");int rank = Integer.parseInt(str[3]);if(rank<11){sum1=sum1+1;}}}public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {Configuration conf = new Configuration();conf.set("fs.defaultFS", "hdfs://10.49.47.20:9000");Job job = Job.getInstance(conf, "eight");job.setMapperClass(MyMapper.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(Text.class);job.setJarByClass(CountRank.class);FileInputFormat.addInputPath(job, new Path("/sogou/data/sogou.500w.utf8"));FileOutputFormat.setOutputPath(job, new Path("/sogou/data/CountRank"));job.waitForCompletion(true);System.out.println("sum1="+sum1+"\tsum2="+sum2);float percentage = (float)sum1/(float)sum2;System.out.println("Rank在10以内的点击次数占比:" +percentage*100+"%");}}(9)直接输入URL查询的比例public class CountURL {public static int sum1 = 0;public static int sum2 = 0;public static class MyMapper extends Mapper<Object, Text, Text, Text> { @Overrideprotected void map(Object key, Text value, Mapper<Object, Text, Text, Text>.Context context)throws IOException, InterruptedException {String[] str = value.toString().split("\t");Pattern p = pile("www");Matcher matcher = p.matcher(str[2]);matcher.find();try {if(matcher.group()!=null)sum1++;sum2++;} catch (Exception e) {sum2++;}}}public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {Configuration conf = new Configuration();conf.set("fs.defaultFS", "hdfs://10.49.47.20:9000");Job job = Job.getInstance(conf, "nine");job.setMapperClass(MyMapper.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(Text.class);job.setJarByClass(CountURL.class);FileInputFormat.addInputPath(job, new Path("/sogou/data/sogou.500w.utf8"));FileOutputFormat.setOutputPath(job, new Path("/sogou/data/CountURL"));job.waitForCompletion(true);System.out.println("sum1="+sum1+"\tsum2="+sum2);float percentage = (float)sum1/(float)sum2;System.out.println("直接用url'%www%'查询的用户占比:" +percentage*100+"%");}}(10)查询搜索过”仙剑奇侠传“的uid,并且次数大于3 public class CountUidGreater3 {public static String Str="";public static int i=0;public static class Map extends Mapper<Object, Text, Text, IntWritable>{ @Overrideprotected void map(Object key, Text value, Mapper<Object, Text, Text, IntWritable>.Context context)throws IOException, InterruptedException {String []values=value.toString().split("\t");String pattern="仙剑奇侠传";if(values[2].equals(pattern)){context.write(new Text(values[1]), new IntWritable(1));}}}public static class Reduce extends Reducer<Text, IntWritable, T ext, IntWritable>{ @Overrideprotected void reduce(Text key, Iterable<IntWritable> value,Reducer<Text, IntWritable, Text, IntWritable>.Context context) throws IOException, InterruptedException {int sum=0;for(IntWritable v:value){sum=sum+v.get();}if(sum>3){Str=Str+key.toString()+"\n";i++;}}}public static void main(String[] args) {Configuration conf=new Configuration();conf.set("fs.defaultFS", "hdfs://10.49.47.20:9000");Job job = null;try {job = Job.getInstance(conf, "count");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}job.setJarByClass(CountUidGreater3.class);job.setMapperClass(Map.class);job.setReducerClass(Reduce.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);try {FileInputFormat.addInputPath(job, new Path("/sogou/data/sogou.500w.utf8"));} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {FileOutputFormat.setOutputPath(job, newPath("/sogou/data/CountUidGreater3"));job.waitForCompletion(true);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("i: "+i);System.out.println(Str);}}5.将4每步骤生成的结果保存到HDFS中使用INSERT OVERWRITE DIRECTORY可完成操作例如:将5生成的文件通过Java API方式导入到HBase(一张表)6.将中5生成的文件通过Java API方式导入到HBase(一张表)public class HBaseImport{// reduce输出的表名private static String tableName = "test";// 初始化连接static Configuration conf = null;static {conf = HBaseConfiguration.create();conf.set("hbase.rootdir", "hdfs://10.49.47.20:9000/hbase");conf.set("hbase.master", "hdfs://10.49.47.20:60000");conf.set("hbase.zookeeper.property.clientPort", "2181");conf.set("hbase.zookeeper.quorum", "master,slave1,slave2");conf.set(T ableOutputFormat.OUTPUT_TABLE, tableName);}public static class BatchMapper extendsMapper<LongWritable, T ext, LongWritable, Text> {protected void map(LongWritable key, T ext value,Mapper<LongWritable, Text, LongWritable, Text>.Contextcontext)throws IOException, InterruptedException {String line = value.toString();Text v2s = new Text();v2s.set(line);context.write(key, v2s);}}public static class BatchReducer extendsT ableReducer<LongWritable, Text, NullWritable> {private String family = "info";@Overrideprotected void reduce(LongWritable arg0,Iterable<Text> v2s,Reducer<LongWritable, Text, NullWritable, Mutation>.Context context)throws IOException, InterruptedException {for (Text v2 : v2s) {String[] splited = v2.toString().split("\t");String rowKey = splited[0];Put put = new Put(rowKey.getBytes());put.add(family.getBytes(), "raw".getBytes(), v2.toString().getBytes());context.write(NullWritable.get(), put);}}}public static void imputil(String str) throws IOException, ClassNotFoundException, InterruptedException {Job job = Job.getInstance(conf, HBaseImport.class.getSimpleName());T ableMapReduceUtil.addDependencyJars(job);job.setJarByClass(HBaseImport.class);FileInputFormat.setInputPaths(job,str);job.setInputFormatClass(TextInputFormat.class);job.setMapperClass(BatchMapper.class);job.setMapOutputKeyClass(LongWritable.class);job.setMapOutputValueClass(Text.class);job.setReducerClass(BatchReducer.class);job.setOutputFormatClass(TableOutputFormat.class);job.waitForCompletion(true);}public static void main(String[] args) throws ClassNotFoundException, IOException, InterruptedException {String[] str={"hdfs://10.49.47.20:9000/sogou/data/1/000000_0","hdfs://10.49.47.20:9000/sogou/data/2/000000_0","hdfs://10.49.47.20:9000/sogou/data/3/000000_0","hdfs://10.49.47.20:9000/sogou/data/4/000000_0","hdfs://10.49.47.20:9000/sogou/data/5/000000_0","hdfs://10.49.47.20:9000/sogou/data/6/000000_0","hdfs://10.49.47.20:9000/sogou/data/9/000000_0","hdfs://10.49.47.20:9000/sogou/data/10/000000_0"};for (String stri:str){imputil(stri);}}}7.将通过HBase shell命令查询6导出的结果scan ‘test’;四、学习心得现在互联网的快速发展带来了数据快速增加,海量数据的存储已经不是一台机器所能处理的问题了。

相关文档
最新文档