大数据
大数据学习
沐雨金鳞
大行不顾细谨
展开
-
大数据-1
1、什么是大数据?特点?大数据(英语:Big data),又称为巨量资料,指的是传统数据处理应用软件不足以处理它们的大或复杂的数据集的术语。在总数据量相同的情况下,与个别分析独立的小型数据集(Data set)相比,将各个小型数据集合并后进行分析可得出许多额外的信息和数据关系性,可用来察觉商业趋势、判定研究质量、避免疾病扩散、打击犯罪或测定即时交通路况等;这样的用途正是大型数据集盛行的原因。...原创 2018-01-22 18:01:59 · 368 阅读 · 0 评论 -
大数据-2
1、CAP原理&BASE思想(摘自CAP原理和BASE思想)分布式领域CAP理论Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容忍性) 可靠性定理:任何分布式系统只可同时满足二点,没法三者兼顾。忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式原创 2018-01-23 21:11:32 · 347 阅读 · 0 评论 -
大数据-3
1、HDFS架构(Hadoop核心之HDFS架构设计)a、hdfs定义hdfs是被设计成适合运行在通用硬件上、具有高容错性、提供高吞吐量数据访问、以流的形式访问数据、的分布式文件系统。b、Namenode、SecondaryName、DatanodeHDFS主要由3个组件构成,分别是NameNode、SecondaryNameNode和DataNode,HSFS是以master原创 2018-01-24 19:19:48 · 314 阅读 · 0 评论 -
Ubuntu之hadoop-分布式集群ssh免密码登录
配置ssh的实现思路:1、在每台机子上都使用ssh-keygen生成public key,private key2、所有机子的public key都拷到一台机子如master上3、在master上生成一个授权key文件authorized_keys4、最后把authorized_keys拷给所有集群中的机子,就能保证无密码登录1 先在master上,在当前用户目录下生成公钥、私钥原创 2018-01-24 19:12:42 · 1434 阅读 · 0 评论 -
ubuntu-hadoop:mkdir: `lala': No such file or directory
xm@slave1:~$ hadoop fs -mkdir lalamkdir: `lala': No such file or directory解决方法:xm@slave1:~$ hadoop fs -mkdir -p lalaxm@slave1:~$ hadoop fs -ls Found 1 itemsdrwxr-xr-x - xm supergroup原创 2018-01-25 10:29:46 · 693 阅读 · 1 评论 -
如何手动开启或关闭HDFS的安全模式(safemode)
如何手动开启或关闭HDFS的安全模式(safemode)在hadoop启动namenode的时候,会启动安全模式(safemode),在该模式下,namenode会等待datanode向它发送块报告(block report),只有接收到的datanode上的块数量(datanodes blocks)和实际的数量(total blocks)接近一致, 超过 datanodes blocks转载 2018-01-25 11:35:42 · 3061 阅读 · 0 评论 -
hadoop文件操作错误---org.apache.hadoop.ipc.RemoteException(java.io.IOException)
使用hadoop dfsadmin -report命令查看磁盘使用情况如果是下面的情况Configured Capacity: 0 (0 B) Present Capacity: 0 (0 B) DFS Remaining: 0 (0 B) DFS Used: 0 (0 B) DFS Used%: NaN% Under replicated blocks: 0原创 2018-01-25 15:51:03 · 3956 阅读 · 1 评论 -
hadoop-HDFS文件java操作
基本实例化代码 System.setProperty("hadoop.home.dir", "/home/xm/hadoop-2.7.1"); String uri = "hdfs://master:9000"; Configuration conf = new Configuration(); FileSystem fs = Fil原创 2018-01-25 19:28:31 · 383 阅读 · 0 评论 -
HDFS常用Shell操作
列出文件目录hadoop fs -ls 目录路径查看HDFS根目录下的目录:hadoop fs -ls / 递归查看HDFS根目录下的目录:hadoop fs -lsr /创建文件夹hadoop fs -mkdir 文件夹名称上传文件到HDFS中hadoop fs -put 本地源路径 目标存放路径hadoop fs -put file /input/从HDFS中下载文件原创 2018-01-25 21:03:27 · 402 阅读 · 0 评论 -
Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: hdfs://master:9000/input
在进行将本地文件合并成大文件然后传输到HDFS文件的过程中出现以下问题log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).log4j:WARN Please initialize the log4j system properly.log4j:WARN See http://log原创 2018-01-26 09:20:09 · 2193 阅读 · 0 评论 -
本地文件合并后传至HDFS文件
代码如下:package hdfs;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Fi原创 2018-01-26 09:23:48 · 512 阅读 · 0 评论 -
HDFS数据完整性
用户希望储存和处理数据的时候,不会有任何损失或者损坏。Hadoop提供两种校验1校验和(常用循环冗余校验CRC-32)2运行后台进程来检测数据块校验和1、写入数据节点验证2、读取数据节点验证3、恢复数据4、Localfilesystem类5、ChecksumfileSystem类6、DatablockScanner1、写入数据节点验证Hdfs会对写入的所有数原创 2018-01-26 11:38:04 · 606 阅读 · 0 评论 -
HDFS小文件问题解决方案+SequenceFile简单介绍
HDFS和MR主要针对大数据文件来设计,在小文件处理上效率低. 解决方法是选择一个容器,将这些小文件包装起来,将整个文件作为一条记录,可以获取更高效率的储存和处理,避免多次打开关闭流耗费计算资源.hdfs提供了两种类型的容器 SequenceFile和MapFile小文件问题解决方案1、在原有HDFS基础上添加一个小文件处理模块,具体操作流程如下:2、当用户上传文件时,判断该文原创 2018-01-26 11:46:22 · 1429 阅读 · 0 评论 -
SequeceFile读写
SequenceFile写操作1、通过createWrite创建SequenceFile对象,返回Write实例,指定待写入的数据流如FSDataOutputStream或FileSystem对象和Path对象。还需指定Configuration对象和键值类型(都需要能序列化)。 SequenceFile.Writer writer = SequenceFile.create原创 2018-01-26 13:10:44 · 646 阅读 · 0 评论 -
MapFile
一个MapFile可以通过SequenceFile的地址,进行分类查找的格式。使用这个格式的优点在于:首先会将SequenceFile中的地址都加载入内存,并且进行了key值排序,从而提供更快的数据查找。与SequenceFile只生成一个文件不同,MapFile生成一个文件夹。索引模型按128个键建立的,可以通过io.map.index.interval来修改缺点1.文件原创 2018-01-26 13:45:58 · 3892 阅读 · 0 评论 -
HDFS文件压缩
减少储存文件所需空间,还可以降低其在网络上传输的时间。hadoop下各种压缩算法的压缩比压缩算法 原始文件大小 压缩后的文件大小 压缩速度 解压速度gzip 8.3GB 1.8GB 17.5MB/s 58MB/sbzip2 8.3GB 1.1GB 2.4MB/s原创 2018-01-26 13:52:53 · 6984 阅读 · 0 评论 -
Hadoop序列化
为什么Hadoop基本类型还要定义序列化?1、Hadoop在集群之间通信或者RPC调用时需要序列化,而且要求序列化要快,且体积要小,占用带宽小。2、java的序列化机制占用大量计算开销,且序列化结果体积过大; 它的引用机制也导致大文件不能被切分,浪费空间; 此外,很难对其他语言进行扩展使用; java的反序列化过程每次都会构造新的对象,不能复用对象。Hadoop定义了原创 2018-01-26 14:02:11 · 321 阅读 · 0 评论 -
HDFS中数据副本的存放策略
Hadoop 0.17之前副本一:同机架的不同节点副本二:同机架的另一节点副本三:不同机架的另一节点其他副本:随机挑选Hadoop 0.17之后副本一:同Client的节点上副本二:不同机架中的节点上副本三:同第二个副本的机架中的另一个节点上其他副本:随机挑选原创 2018-01-26 16:27:29 · 4719 阅读 · 1 评论 -
java序列化与反序列化
Java序列化是指把Java对象转换为字节序列的过程 而Java反序列化是指把字节序列恢复为Java对象的过程代码如下:(因为需要对象,所以首先构建对象Student类) package hdfs;import java.io.Serializable;public class Student implements Serializable{ private String原创 2018-01-26 19:22:16 · 256 阅读 · 0 评论 -
java与hadoop序列化与反序列化的比较
在hadoop中,hadoop实现了一套自己的序列化框架,hadoop的序列化相对于JDK的序列化来说是比较简洁而且更节省存储空间。在集群中信息的传递主要就是靠这些序列化的字节序列来传递的所以更快速度更小的容量就变得非常地重要了。先用java来看:package hdfs;import java.io.Serializable;public class People imple转载 2018-01-27 08:45:14 · 613 阅读 · 0 评论 -
MapReduce配置
1、修改 mapred-site.xml进入 cd /home/xm/hadoop/etc/hadoop/ls查看是否有该文件如果没有,却有mapred-site.xml.templete文件则重命名为 mapred-site.xml即可vim mapred-site.xml修改如下:configuration>property>name>mapreduce.framew原创 2018-01-27 11:30:17 · 1044 阅读 · 0 评论 -
MapReduce编写框架
import java.io .IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io .IntWritable;import org.apache.hadoop.io .Text;import org.apa原创 2018-01-27 13:00:51 · 270 阅读 · 0 评论 -
MapReduce实现数据去重、数据排序、求平均值、多列单行输出
写这篇博客的目的:1、简单实现数据去重其实就是将数据的个数设置成空值,输出不显示就OK了2、简单实现数据排序因为MapReduce会自动根据key值按字典序排序,所以我们将数据转化为IntWritable类型作为key值即可3、简单的求成绩平均值(单个文件和多个文件)分割数据,然后将成绩转化成IntWritable类型,求平均值写入即可4、将人名对应数据(多列)单行输出其实原创 2018-01-27 18:14:44 · 4855 阅读 · 2 评论 -
MapReduce详解
一、MapReduce是什么?Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。二、Mapreduce的特点是什么?1、软件框架(写好的,我们直接用就行了)2、并行处理3、可靠且容错4、大规模集群5、海量数据集MapRe原创 2018-01-27 18:53:30 · 408 阅读 · 0 评论 -
Map、Reduce和Job方法总结
map的方法public void map(Object key, Text value, Context context) throws IOException, InterruptedException {…}key:偏移量,一般为0,用不到value:每行的值context:可以记录输入的key和value例如:context.write(new Text("hadoop")原创 2018-01-27 19:23:18 · 782 阅读 · 0 评论 -
MapReduce之Combiner详解
Combiner是什么?为什么会出现Combiner?Combiner是一个本地化的reduce操作,它是map运算的后续操作,主要是在map计算出中间文件前做一个简单的合并重复key值的操作1、网络带宽严重被占降低程序效率;(提前在map上执行分组,减少传输给reduce的数据量)2、单一节点承载过重降低程序性能;(全在ruduce上运行,导致负载过重)每一个map都可能会产原创 2018-01-28 11:49:13 · 6562 阅读 · 0 评论 -
hadoop与java中数据类型转换
1、hadoop数据类型转换成Java-String类型 .toString();即可2、Int类型-->IntWritable类型 IntWritable i = new IntWritable(); int p = 3; i.set(p); 3、IntWritable类型-->Int类型 IntWritable s = new IntWrit原创 2018-01-28 12:30:29 · 2304 阅读 · 0 评论 -
hadoop之Partitioner详解
Partitioner 的作用是对 Mapper 产生的中间结果进行分片,以便将同一分组的数据交给同一个 Reducer 处理,它直接影响 Reduce 阶段的负载均衡。Map阶段总共五个步骤step1.3就是一个分区操作Mapper最终处理的键值对key, value>,是需要送到Reducer去合并的,合并的时候,有相同key的键/值对会送到同一个Reducer节点原创 2018-01-28 12:53:21 · 1621 阅读 · 0 评论 -
mapreduce之shuffle详解
Reduce阶段三个步骤:Step2.1就是一个Shuffle[随机、洗牌]操作Shuffle是什么?针对多个map任务的输出按照不同的分区(Partition)通过网络复制到不同的reduce任务节点上,这个过程就称作为Shuffle。shuffle过程的重要性是什么?Hadoop的shuffle过程就是从map端输出到reduce端输入之间的过程,这一段应该是原创 2018-01-28 18:07:30 · 342 阅读 · 0 评论 -
MapReduce排序分组(二次排序)
Step1.4第四步中需要对不同分区中的数据进行排序和分组,默认情况按照key进行排序和分组二次排序在map阶段1.使用job.setInputFormatClass定义的InputFormat将输入的数据集分割成小数据块调用自定义Map的map方法,将一个个LongWritable, Text>对输入给Map的map方法。输出应该符合自定义Map中定义的输出IntPair,原创 2018-01-28 18:33:53 · 495 阅读 · 0 评论 -
MapReduce中map方法write写入参数类型和reduce类型不同
当map方法中context.write()和reduce方法中context.write()输入参数类型不相同时:需要在job中设置每个方法的参数类型:map中:context.write(MyNewKey,NullWritable);reduce中:context.write(LongWritable,LongWritable);那么进行如下设置即可: job原创 2018-01-28 18:47:25 · 2666 阅读 · 0 评论 -
map方法获得文件夹下文件名称
setup方法即为Mapper初始化的方法,可以点击Mapper按F3进行源码查看 static class MyMapper extends MapperObject,Object,Text,Text>{ protected void setup(Context context) throws IOException, InterruptedException{原创 2018-01-29 16:59:03 · 703 阅读 · 0 评论