数据处理

为大数据爱好者量身定制的Hadoop教程

本小妞迷上赌 提交于 2020-01-10 11:40:31
为大数据爱好者量身定制的Hadoop教程-学习Hadoop的最佳方式 ####Hadoop 提到大数据,网上搜索最多的关键词就是Hadoop。大家知道为什么吗?这是因为Hadoop是大数据中的主要框架,如果说框架可能会引起不少争论,那我们就说跟Hadoop最直接相关的东西在大数据里面占据了绝大部分江山。 如果你关于大数据没有一点认知,那么在这里,通过一系列的教程你就将会撬开大数据的铜墙铁壁。 Hadoop本身是一门技术的代名词——即以分散的方式在一系列低成本硬件上完成对海量数据的存储,这里的一系列低成本硬件联合组建的工作系统就是集群。 ####什么是大数据? 大数据通常指数据集非常大,同时也非常复杂,这不利于传统意义上的计算系统的存储和处理。 数据量大,往往都在兆字节和拍字节的数量级,社交媒体可能是最大的海量数据供应商。 数据处理速度要快,不同机构、组织等都需要实时完成数据的响应工作。 数据多样性大,数据来源多种多样,有文本、音频、视频、图片等等。 ####Hadoop的发明背景 1.传统意义上的关系型数据库不能存储如此大量的数据,硬件成本和软件成本都太高了。 2.对各种形式数据的处理需求——关系型数据库只能以结构化的形式完成数据的存储和执行,但是实际上需要处理的数据有时结构化的,也有是非结构化的以及半结构化的。 3.需要应对高速的数据产生过程—

Hadoop概述

[亡魂溺海] 提交于 2020-01-10 11:15:50
Hadoop概述 Hadoop项目是Apache的顶级项目 Hadoop项目是以 可靠、可扩展和分布式计算为目的发展而来的软件 大数据特点 数据容量大:TB--PB 数据类型多:各种非结构化数据。 商业价值高:客户群体细分,提供定制化服务 处理速度快:分布式存储计算,提高效率 Hadoop核心组件 主要作用: 存储和计算 核心组件: hadoop Common: 一组分布式文件系统通用的I/O的组件与接口。(序列化、java RPC 和持计划数据结构) HDFS:Hadoop的分布式文件系统 Hadoop MapReduce:分布式计算框架 可以离线分布式计算,多台机器同时计算其中的一部分数据,将计算结果汇总。得到计算结果。可扩展 Hadoop Yarn:(分布式的资源管理器) MapReduce任务运行在yarn上。yarn提供资源 Hadoop的框架演变 Hadoop1.0的MR:将资源管理和任务调度、计算功能放在一起、扩展性差,不支持多计算框架 Hadoop2.0的MR:将资源管理和任务调度分开,提高扩展性,支持多计算框架 Hadoop生态圈 管理工具:Ambari、CDH等等。目前多数企业使用CDH管理集群 资源管理器:yarn yarn管理集群资源,通俗讲就是用来跑任务的。 计算框架:MapReduce(离线)、Storm、Spark、Flink(实时计算) 数据采集

Pandas数据处理---数据的读写、数据清洗、数据过滤、数据转换(映射、替换、字符串矢量级运算)、数据合并详细总结

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-10 07:27:08
该文从Pandas的数据的读写、数据清洗、数据过滤、数据转换(映射、替换、字符串矢量级运算)、数据合并等都进行了详细的总结和案例说明,是pandas的核心重点知识。 目录 一、数据读写处理文档 1.1、pandas数据的加载+写入 1.2、pandas写出数据到内存 二、数据清洗 2.1、缺失值处理 发现缺失值 丢弃缺失值 填充缺失值 2.2、重复值处理 发现重复值 删除重复值 2.3、无效值处理 检测无效值 三、数据过滤¶ 四、数据转换(映射、替换、字符串矢量级运算) 4.1、应用 apply、map、applymap映射转换 Series的s.apply(function)转换 Series的s.map(map_series) DataFrame调用apply,列级别的转换,df[[0, 1,...]].apply(function) DtaFrame调用applymap:通过函数实现元素级的映射转换。 4.2、替换 4.3、字符串矢量级运算 五、数据合并 concat() append() merge() join() 一、数据读写处理文档 1.1、pandas数据的加载+写入 我们常用的数据加载函数为(点击下划线部分跳转到详细文档): read_csv :读取普通文件默认","分割,但可以指定为其他分隔符,如 .csv 、 .txt 文件等 read_table :读取以‘

海量数据处理(1):MapReduce

雨燕双飞 提交于 2020-01-10 03:48:35
海量数据处理(1):MapReduce 海量数据处理,就是基于海量数据的存储、删除、搜索等操作。由于数据量太大,导致要么无法在短时间内迅速处理,要么无法一次性装入内存。针对面试过程中的问题,主要有以下解决步骤 针对时间,可以采用更加迅速的数据结构和算法,比如BloomFilter、Hash、堆、Bitmap等 针对空间,无非就是大而化小,分而治之。 算法方面: 外排序算法(External Sorting) Map Reduce 非精确算法 概率算法 哈希算法与哈希函数(Hash Function) 数据结构方面: 哈希表(Hash Table) 堆(Heap) 布隆过滤器(BloomFilter) 位图(Bitmap) 一、MapReduce简介 给定一个有海量单词的集合,统计每个词的出现次数,最简单的就是for循环,放进map,一台机器这样做,明显是不合适的,所以我们想到了用两台机器for循环,两台服务器去处理数据,但是到了merge环节,还是一台机器啊,这也是个瓶颈。 合并时候也可以采用并行的方式,有两种选择 一是以机器来划分(比如第i台到第j台由某台机器合并) 二是根据key来划分(比如key由a、b、c、d,让一台机器合并key a和key b) 很显然以机器作为划分并不好,因为进行了第一轮合并了后,还要再进行合并…最后形成一个类似树状结构的

关键数据结构

☆樱花仙子☆ 提交于 2020-01-10 02:57:42
FSDirectory NIOFSDirectory 性能对比 lucene/solr FSDirectory NIOFSDirectory 性能测试对比与Http11NioProtocol 文章分类:互联网 lucene 2.4 开始有一个 NIOFSDirectory 实现,使用 java.nio's FileChannel 读取文件。官方说:在大多数非 windows 平台下,多个线程共用单个 searcher 比 FSDirectory(在同一时刻只能一个线程使用 searcher)可以提高查询的吞吐量。 lucene 2.4 的 CHANGE.TXT 说明: 21. LUCENE-753: Added new Directory implementation org.apache.lucene.store.NIOFSDirectory, which uses java.nio's FileChannel to do file reads. On most non-Windows platforms, with many threads sharing a single searcher, this may yield sizable improvement to query throughput when compared to FSDirectory, which

day15-数据源

僤鯓⒐⒋嵵緔 提交于 2020-01-10 02:21:08
前言 day13 ,我们学习了Spark SQL的DataFrame。今天开始进入Spark SQL的数据源。 Spark数据源介绍 在Spark-sql中可以使用各种各样的数据源来创建DataFrame或者DataSet,spark-sql对数据源兼容性比较好,并且提供了load 方法来加载数据,save方法保存数据源。load、save的时候默认都是以parquert格式处理。 parquet数据源 spark官方也提供了一些parquet数据源Demo,存放在Spark安装主目录的examples/src/main/resources/下面,下面使用官方提供的parquet数据源进行一些演示。 #读取parquert数据 scala> var df2 = spark . read . load ( "/opt/module/spark-2.1.0-bin-hadoop2.7/examples/src/main/resources/users.parquet" ) df2: org . apache . spark . sql . DataFrame = [name: string, favorite_color: string ... 1 more field] #查看数据 scala> df2 . show + - -- - -- + -- - -- - -- - -- -

HBase 数据迁移方案介绍

无人久伴 提交于 2020-01-10 02:13:54
一、前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分为以下几类: 图1.HBase数据迁移方案 从上面图中可看出,目前的方案主要有四类,Hadoop层有一类,HBase层有三类。下面分别介绍一下。 二、Hadoop层数据迁移 2.1 方案介绍 Hadoop层的数据迁移主要用到DistCp(Distributed Copy), 官方描述是: DistCp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具。 它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成。 它把文件和目录的列表作为map任务的输入,每个任务会完成源列表中部分文件的拷贝。 我们知道MR程序适合用来处理大批量数据, 其拷贝本质过程是启动一个MR作业,不过DisctCp只有map,没有reducer。在拷贝时,由于要保证文件块的有序性,转换的最小粒度是一个文件,而不像其它MR作业一样可以把文件拆分成多个块启动多个map并行处理。如果同时要拷贝多个文件,DisctCp会将文件分配给多个map,每个文件单独一个map任务。我们可以在执行同步时指定 -m 参数来设定要跑的map数量,默认设置是20。如果是集群间的数据同步,还需要考虑带宽问题,所以在跑任务时还需要设定 bandwitdh 参数,以防止一次同步过多的文件造成带宽过高影响其它业务。同时

hive入门

筅森魡賤 提交于 2020-01-09 23:40:38
作者:2551529836 Hive ** Facebook开源 ** 官网:hive.apache.org ** Hive是基于Hadoop的一个数据仓库工具 Hive与数据库: 数据库: mysql、oracle、DB2、sqlserver 数据仓库 !== 数据库 换言之, Hive不是数据库 为什么要选择hive ** MapReduce编程成本高 ** 针对传统的DBA,不会不熟悉java,要想数据分析,借助Hive Hive简介: ** 流程 ** hql --> Hive(java) --> mapreduce -->yarn --> hdfs ** 本质: 将HQL转化成MapReduce程序 ** 使用MapReduce计算模型,运行在yarn平台之上 ** Hive适合离线批量处理,延时比较大 ** 不适合在线业务实时分析结果,业务要求延时较低的场景不适合 Hive体系结构 ** 用户接口: Client ** 终端命令行CLI --主要的一种使用方式 ** JDBC方式 --几乎不用 ** 元数据:metastore ** 默认apache使用的是derby数据库(只能有一个客户端使用),CDH使用postgreDB ** 企业通常我们会选择另外一种mysql来存储 ** 元数据包括:表名、表所属的数据库(默认是default)、 表的拥有者、列/分区字段

【大数据面试宝典】 第一篇 Hadoop 面试题

只愿长相守 提交于 2020-01-08 19:14:53
Hadoop常见的端口 Hadoop生态圈 Hadoop配置文件以及简单的Hadoop集群搭建 Hadoop参数调优 项目经验之基准测试 Hadoop宕机 Hadoop 高可用配置 Hadoop 常见的端口  dfs.namenode.http-address:50070  dfs.datanode.http-address:50075  SecondaryNameNode辅助名称节点端口号:50090  dfs.datanode.address:50010  fs.defaultFS:8020 或者9000  yarn.resourcemanager.webapp.address:8088  历史服务器web访问端口:19888 Hadoop 生态圈 然后就是各个组件的介绍了,简单的介绍一下就好了。比如说: Flume: 一个高可用的,高可靠的,分布式的海量数据日志采集,聚合和传输的系统; Zookeeper: 是一个基于观察者模式设计的分布式服务管理框架,他负责存储和管理大家都关心的数据,然后接受管擦者的注册,一旦这些数据的状态发生了变化,Zookeeper就将负责通知已经在Zookeeper上注册的观察者做出相应的反应。 Hadoop配置文件以及简单的Hadoop集群搭建 (1)配置文件: core-site.xml <configuration> <!--

Spark DStreams_JZZ158_MBY

橙三吉。 提交于 2020-01-08 09:25:16
Spark DStreams DStreams是什么 DStreams 是构建在 Spark RDD 之上的一款流处理工具,意即 Spark DStreams 并不是一个严格意义上的流处理,底层通过将RDD 在时间轴上分解成多个小的 RDD-micro batch 流 | 批处理 计算类型 数据量级 计算延迟 输入数据 输出 计算形式 批处理 MB=>GB=>TB 几十分钟|几个小时 固定输入(全量) 固定输出 最终终止(时间限制) 流处理 byte级别|记录级别 亚秒级延迟 持续输入(增量) 持续输出 24*7小时 流处理框架:Kafka Streaming(工具级别)、Storm(实时流处理) 一代 、Spark DStream(微批)-实时性差- 二代 、Flink (实时流处理)- 三代 由于 DStreams 构建在 RDD 之上,对习惯了批处理的工程师来说,在使用上比较友好。很多大数据工程师都有着 MapReduce 的使用经验,如果使用批去模拟流,比较容易接受,同时 DStreams 是构建在 RDD (批处理)之上,因此从使用角度上讲, DStreams 操作流就好比是在操作批处理,因此在使用难度上比 Storm 相对来说要简单。由于 Spark 框架实现的核心偏向批处理,流处理只是从批处理中演变而来,因此 DStreams 在做流处理的时候延迟较高