大数据技术2014年03月海量数据的存储、计算、信息提取课程目标可以实现的是:无法实现的是:理解什么是大数据清楚大数据能做什么知道什么是hadoop,什么是hive掌握hadoop的基本操作掌握hive的基本操作了解什么是机器学习知道成为大数据专家需要学习哪些知识掌握M/R编程精通HQL掌握机器学习技术通过2个半小时的学习原因说明:m/r编程需要安装开发环境,需要自己动手写一个程序,一般需要一天以上的时间来完成入门,真正掌握,开发出有效率的代码则需要编程经验的积累;HQL涉及的方面很多,尤其是编写高效的语句非常需要日常积累;机器学习需要多学科的知识,尤其是基于大数据的机器学习更需要掌握编程技能大数据简介1大数据存储与计算2目录3从数据中获取信息大数据简介—大数据定义什么是大数据?大数据简介—大数据定义高德纳:大数据是大量、高速、多变的信息资产,它需要新型的处理方式去促成更强的决策能力、洞察力与优化处理(velocity,volumes,variety,value);麦肯锡:大数据是指无法在一定时间内用传统数据库软件工具对其内容进行抓取、管理和处理的数据集合。IDC(互联网数据中心):大数据技术是新一代的技术与架构,它被设计用于在成本可承受的条件下,通过非常快速(velocity)的采集、发现和分析,从大体量(volumes)、多类别(variety)的数据中提取价值。大数据简介—大数据历史1944年,卫斯理大学图书管理员赖得认为到2040年美国大学的图书将超过20亿册1961年,普赖斯在《ScienceSinceBabylon》杂志发布文章认为新期刊的数量呈指数级增长1964年,哈里和亨利发表文章“应对信息爆炸的技术”,他们认为应该少发布信息1967年,马龙和曼尼发表文章“数据自动压缩”,通过压缩应对信息爆炸1981年,匈牙利中央统计办公室开始一个项目,研究国家的信息产业,包括信息量大小。1996年,毛里斯和查科斯基发表文章,认为数字存储比纸质存储更划算1997年,迈克尔.考克斯和大卫.埃尔斯沃思发表文章首次谈到大数据这个词2001年,倒戈.兰尼发表调查报告,首次谈到3v,velocity,volumes,variety2008RandalE.Bryant,RandyH.Katz,andEdwardD.Lazowska等人发表文章,认为大数据计算是商业、社会、科学等领域变革突破的动力……大数据简介—大数据发展趋势大数据为什么这么火?一些大数据的传说:大数据是未来世界的石油数据将成为一切行业当中决定胜负的根本因素,最终数据将成为人类至关重要的自然资源大数据,是下一轮创新、竞争和生产力的前沿谁拥有了数据以及对数据的发掘能力,谁就将占领下一个十年全球经济发展的制高点大数据简介—大数据发展趋势关键词“bigdata”关键词“大数据”话题:2011、2012Hadoop、nosql故事、概念、未来大数据简介—大数据发展趋势技术成熟曲线尤其在新技术的炒作期,理解技术的真实价值才能在喧嚣与浮躁的氛围中不会迷失方向。大数据的价值观察:1、全球的数据爆炸式增长,不断增长的数据需要大数据技术来存储和计算;2、越来越多的实例证明,数据可以产生价值。大数据存储与计算—要点hadoop简介hadoop安装map/reduce编程HIVE和HQL语法Hadoop简介--原理由于力量的限制,一个人完不成的任务可以由多个人来完成。由于计算能力的限制,一台计算机完不成的任务也可以由多台计算机来完成。Hadoop简介--存储网络Hadoop简介--存储方式Hadoop简介--硬件架构案例Hadoop简介--核心功能HADOOP安装Linux安装Jdk安装(1.6以上版本)ssh(SecureShell)免密码登录配置Hadoop安装LINUX安装CYGWIN安装真实LINUX操作系统VMWARE(SecureShell)免密码登录/etc/ssh/sshd_config(修改sshd配置文件)PubkeyAuthenticationyesAuthorizedKeysFile.ssh/authorized_keys(去掉注释)ssh-keygen-tdsa-P‘’(生成密钥对)scp~/.ssh/id_dsa.pubroot@datanode1:~/.ssh/authorized_keys(公共密码拷贝到datanode机器中)chmod0600~/.ssh/*(更改文件权限)详细步骤:(将namenode中的密钥加入身份认证列表)namenodedatanodeHadoop安装1、复制文件hadoop2、配置变量java_home,path,hadoop_home3、配置文件:core-site.xml(定义namenode),hdfs-site.xml(定义副本数量),mapred-site.xml(jobtracker),master,slave;参考网址:、启动进程start-all.sh4、格式化namenode(bin/hadoopnamenode–format)6、测试map/reduce编程—定义map/reduce编程—处理流程map/reduce编程--单一REDUCEmap/reduce编程--多个REDUCEmap/reduce编程--无REDUCEmap/reduce编程--示例map/reduce编程--示例map/reduce编程--示例map/reduce编程--示例map/reduce编程--示例map/reduce编程--示例map/reduce编程--示例上机演示查看hadoop进程jps查看集群中的存储:50070/查看集群中的任务:50030/操作hdfs上的文件hadoopfs-ls执行任务bin/hadoopjarhadoop-0.19.1-examples.jarwordcountll/*output6HADOOP相关技术不怎么支持sql;开源;键值存储;并行计算;速度较快•GBase8a(南大通用)•Greenplum(EMC)•Vertica(hp)•AsterData(teradata)•SybaseIQ(sap)•F1/Spanner(google)Stado(开源)•Hbase(大表实时操作)•Bigtable(大数据,快速读)•Cassandra(高性能,类sql)•Dynamo(快速读写)•Dremel(类sql,快速读)•Neo4j(适用图形数据)•Redis(快速读写)Nosql、MPP支持sql;不开源;列存储;并行计算;速度较慢HIVE基本概念•Hive是一个基于Hadoop建立的数据仓库基础架构。•他提供了一种基于SQL的类SQL语言,叫HiveQL,支持熟悉SQL的用户方便地进行查询,存储和分析数据。同时,这个语言也允许熟悉Map/Reduce开发者的开发自定义的mapper和reducer来处理内建的mapper和reducer无法完成的复杂的分析工作。HIVE基本操作•基本操作-:使用where子句中的表的行进行过滤的能力。-:能够选择使用select子句中的表的某些列。-:能够做到同等的两个表之间的联接。-:表中存储的的数据通过“Groupby”子句进行聚合。-:能够将查询结果存储到另一个表中。-:表的内容可以下载到本地目录。1、通过ssh协议登录10.175.50.170,可以通过secureCRT软件直接登录,也可以在unix或linux服务器中直接输入命令sshhadoop@10.175.50.170(密码请联系管理员获取)通过secureCRT登录中输入命令登录进入HIVE环境进入HIVE环境2、输入命令:hive3、数据命令:showtables;(看到所有的数据表,加过滤:SHOWTABLES'page.*';)创建数据表1、进入hive环境(参见上面的步骤)2、执行如下sql(列分隔符为|,和需要导入的数据格式有关)createtableZC_GBSSAP_CC_BDR(Start_timeTIMESTAMP,call_typeint,cdr_idint,discon_causeint,callingstring,calledstring,calling_imsistring,called_imsistring,calling_imeistring,called_imeistring,talk_timeint,start_lacint,start_ciint,end_lacint,end_ciint,sour_lacint,sour_ciint,dest_lacint,dest_ciint)rowformatdelimitedfieldsterminatedby'\|';不同的版本支持的数据类型也不同,具体参见官网导入数据1、进入hive环境(参见上面的步骤)2、执行如下sql(注意列分隔符)LOADDATALOCALINPATH'/home/hadoop/lhscc2g_201312311415.txt'INTOTABLEZC_GBSSAP_CC_BDR;3、查看导入的情况输入语句selectcount(*)fromZC_GBSSAP_CC_BDR导出结果1、进入hive环境(参见上面的步骤)2、执行如下sql(取前5行数据)INSERTOVERWRITELOCALDIRECTORY'/home/hadoop/output/ZC_GBSSAP_CC_BDR2'SELECT*fromZC_GBSSAP_CC_BDRlimit5;多表复杂查询1、进入hive环境(参见上面的步骤)2、执行如下sql(取前5行数据)selecta.county_id,count(*)fromdim_pub_county_v15ajoindim_pub_centerbon(a.city_id=b.city_idanda.county_id=b.county_id)groupbya.county_id;另外:不支持in,exist不支持having语法,须增加子查询不支持update和delete操作,只支持覆盖的insert操作从数据中获取信息—要点简介常见应用场景常见算法从数据中获取信息从数据中获取信息从数据中获取信息—数据和信息的关系数据:记录事实信息:掩藏在数据下的规则、模式数据越来越多,其中可能含有价值;未经处理的数据是没有什么价值的。需要自动化技术,把数据转换成信息;从各种媒体表示的信息中,根据不同的需求获得知识。知识发现过程由以下三个阶段组成:(1)数据准备,(2)数据挖掘,(3)结果表达和解释。也有的说法是,知识发现是数据挖掘的别名。知识发现、数据挖掘、机器学习数据挖掘的描述有很多,个人倾向于这个版本:一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。机器学习(MachineLearning,ML)专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。是人工智能的核心。已逐渐成为智能数据分析技术的创新源。从数据中获取信息—所需步骤收集数据,定义学习目标数据准备(预处理)训练预测模型测试验证模型从数据