大数据Hadoop/Hive学习笔记一(基础概念)
大数据Hadoop/Hive学习笔记一(基础概念)
一,概念介绍:
大数据:
大数据一般用来描述一种数量庞大,复杂的数据集,传统 数据处理应用程序难以应对。大数据通常应用于预测分析,用户行为分析或从数据中提取有价值的信息用于高级数据分析方法,并不局限与指某种特定规模的数据集
大数据的特征:
大数据具有多样性、体量(volume)和价值密度(value)/精准性(veracity)
体量Volume:
非结构化数据的超大规模和增长总数据量的80~90%,比结构化数据增长快10倍到50倍是传统数据仓库的10到50倍
多样性Variety:
大数据的异构和多样性,很多不同形式(文本,图像,视频,机器数据)无模式或模式不明显不连贯的语法句义
价值密度Value:
大量的不相关信息对未来趋势与模式的可预测分析,深度复杂分析(机器学习,人工智能Vs传统商务智能
速度Velocity:
实时分析非批量式分析,数据输入,处理与丢弃
大数据的重要性:
任何企业都不能否认数据的重要性,企业一直都在收集大量的历史数据将其保存在数据仓库中以便进行分析 。通过分析历史数据来获得新的增长点,这也证明了数据 的重要性。由于 数据结构和数据规模的特点,使用传统的数据库和方法已经很难有效对大数据进行分析,因此我们需要新的工具和技术来存储,管理和分析实现数据的商业价值
二、认知Hadoop
1、Hadoop是Apache旗下的一套开源软件平台,广义上说,Hadoop通常指一个更广泛的概念,Hadoop生态圈
2、Hadoop提供功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理
3、Hadoop核心组件:分布式存储HDFS, 分布式计算MapReduce, 资源调度引擎Yarn
MapReduce:分布式计算框架,采用一种分而治之的思想,如复杂的计算任务单台服务器无法胜任,可将其分成一个个小任务,分别在不同的服务器上并行执行,最终再汇总每个任务的结果
MapReduce分为连个阶段,Map阶段即将任务拆分为一个个小任务,Reduce阶段即汇总每个小任务的结果
4、Hadoop应用于数据服务基础平台建设,用户画像,网站点击流日志数据挖掘
三、认知Hive
1、Hive是基于Hadoop的开源数据仓库工具,用于 处理海量结构化数据
2、Hive把HDFS中结构化数据 映射成表
3、Hive通过把HiveSQL进行解析和转换 ,最终生成 一系列在hadoop上运行的mapReduce任务,通过执行这些任务完成数据分析与处理
4、Hive与传统 数据库的比较,他采用HDFS数据存储,执行MapReduce,执行的延迟虽然比传统数据库高,但是能处理的数据规模非常大
5、Hive的数据类型
基本数据类型
TINYINT:1byte,-128~127
SMALLINT: 2byte,-32768~32767
INT:4byte,-2147483648~2147483647
BIGINT:8byte,-9223372036854775808~9223372036854775807
FLOAT:4byte单精度
DOUBLE:8byte双精度
BINARY,TIMESTAMP(Hive0.8.0开始支持)
DECIMAL(Hive0.11.0开始支持),
CHAR(Hive0.13.0开始支持),
VARCHAR,DATE(Hive0.12.0开始支持)
复杂数据类型
STRUCT:和 c语言中的struct类似,都可以通过“点"符号访问元素内容
例如,如果某个列的数据类型是
STRUCT{first STRING, last STRING},
那么第1个元素可以通过字段.first来引用
MAP:MAP是一组键-值对元祖集合,使用数组表示法可以访问数据。
例如,如果某个列的数据类型是
MAP,其中键->值对是‘first’->‘John’和’last’->‘Doe’,
那么可以通过字段名[‘last’]获取 最后一个元素
ARRAY:数组是一组具有相同类型和名称的变量的集合,这些变量称为数组的元素,每个数组 元素都有一个编号,编号从零开始。例如,数组值为[‘John’,‘Doe’],那么第2个元素可以通过数组名[1]进行引用