首页 文章 精选 留言 我的

精选列表

搜索[bigdata],共413篇文章
优秀的个人博客,低调大师

bigdata

1、打开cygwin,启动hadoop,运行jps命令查看节点启动情况 2、切换到hadoop根目录,运行指令 echo "hello boy hei baby hello word hello hadoop baby girl baby">f1.txt 在hadoop根目录下新建f1.txt,可用-ls 查看是否创建成功 3、运行指令 bin/hadoop fs -mkdir input 在hdfs上新建一文件夹,命名为input 4、运行指令 bin/hadoop fs -put f1.txt input 将f1.txt复制到input文件夹下,运行bin/hadoop fs -ls input查看是否复制成功 5、运行指令 bin/hadoop jar hadoop-0.20.2-examples.jar wordcount input output 并输出到output文件夹下 6、运行指令 bin/hadoop fs -cat output/* 查看输出结果,即词频统计结果

优秀的个人博客,低调大师

【精彩活动预告】第十二届 BigData NoSQL Meetup (北京站)大咖云集,与你畅聊BigData NoSQL

点击报名 云栖开发者沙龙介绍​ 阿里云栖技术沙龙是“云栖社区”主办的线下技术沙龙品牌,希望通过技术干货分享来打通线上线下专家和开发者的连接。沙龙每期将定位不同的技术方向,逐步覆盖 云计算,大数据,前端,PHP,android,AI,运维,测试 等技术领域,并会穿插一些特别专场(开源专场,女性开发者专场,开发者成长专场等)。我们希望它将是一个开发者的聚集地,每一期都是一个开发者的大Party! 时间: 6月29日 14:00——18:00 地址:北京快手总部(上地西路6号) W座3层309会议室 演讲主题及嘉宾 Topic1:快手HBase在千亿级用户特征数据分析中的应用与实践 快手每天产生数百亿用户特征数据,分析师需要在跨30-90天的数千亿特征数据中,任意选择多维度组合(如:城市=北京&性别=男),秒级分析用户行为。针对这一需求,

优秀的个人博客,低调大师

[BigData]关于Hadoop学习笔记第三天(PPT总结)(一)

课程安排 MapReduce原理*** MapReduce执行过程** 数据类型与格式*** Writable接口与序列化机制*** ---------------------------加深拓展---------------------- MapReduce的执行过程源码分析 问题:怎样解决海量数据的计算? MapReduce概述 lMapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题. lMR由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算,非常简单。 l这两个函数的形参是key、value对,表示函数的输入信息。 思考:自己设计一个MapReduce框架 Mapreduce原理 ◆执行步骤: 1. map任务处理 1.1 读取输入文件内容,解析成key、value对。对输入文件的每一行,解析成key、value对。每一个键值对调用一次map函数。 1.2 写自己的逻辑,对输入的key、value处理,转换成新的key、value输出。 2.reduce任务处理 2.1写reduce函数自己的逻辑,对输入的key、value处理,转换成新的key、value输出。 2.2把reduce的输出保存到文件中。 map、reduce键值对格式 WordCountApp的驱动代码 Configuration conf = new Configuration(); //加载配置文件 Job job = new Job(conf); //创建一个job,供JobTracker使用 job.setJarByClass(WordCountApp.class); job.setMapperClass(WordCountMapper.class); job.setReducerClass(WordCountReducer.class); FileInputFormat.setInputPaths(job, new Path("hdfs://192.168.1.10:9000/input")); FileOutputFormat.setOutputPath(job, new Path("hdfs://192.168.1.10:9000/output")); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); job.waitForCompletion(true); } MR流程 l代码编写 l作业配置 l提交作业 l初始化作业 l分配任务 l执行任务 l更新任务和状态 l完成作业 MR过程各个角色的作用 ljobClient:提交作业 lJobTracker:初始化作业,分配作业,TaskTracker与其进行通信,协调监控整个作业 lTaskTracker:定期与JobTracker通信,执行Map和Reduce任务 lHDFS:保存作业的数据、配置、jar包、结果 作业提交 l提交作业之前,需要对作业进行配置 •编写自己的MR程序 •配置作业,包括输入输出路径等等 l提交作业 •配置完成后,通过JobClient提交 l具体功能 •与JobTracker通信得到一个jar的存储路径和JobId •输入输出路径检查 •将jobj ar拷贝到的HDFS •计算输入分片,将分片信息写入到job.split中 •写job.xml •真正提交作业 作业初始化 l客户端提交作业后,JobTracker会将作业加入到队列,然后进行调度,默认是FIFO方式 l具体功能 •作业初始化主要是指JobInProgress中完成的 •读取分片信息 •创建task包括Map和Reduce任创建task包括Map和Reduce任务 •创建TaskInProgress执行task,包括map任务和reduce任务 任务分配 lTaskTracker与JobTracker之间的通信和任务分配是通过心跳机制实现的 lTaskTracker会主动定期向JobTracker发送心态信息,询问是否有任务要做,如果有,就会申请到任务。 任务执行 l如果TaskTracker拿到任务,会将所有的信息拷贝到本地,包括代码、配置、分片信息等 lTaskTracker中的localizeJob()方法会被调用进行本地化,拷贝job.jar,jobconf,job.xml到本地 lTaskTracker调用launchTaskForJob()方法加载启动任务 lMapTaskRunner和ReduceTaskRunner分别启动java child进程来执行相应的任务 状态更新 lTask会定期向TaskTraker汇报执行情况 lTaskTracker会定期收集所在集群上的所有Task的信息,并向JobTracker汇报 lJobTracker会根据所有TaskTracker汇报上来的信息进行汇总 作业完成 lJobTracker是在接收到最后一个任务完成后,才将任务标记为成功 l将数结果据写入到HDFS中 错误处理 lJobTracker失败 •存在单点故障,hadoop2.0解决了这个问题 lTraskTracker失败 •TraskTracker崩溃了会停止向JobTracker发送心跳信息。 •JobTracker会将TraskTracker从等待的任务池中移除,并将该任务转移到其他的地方执行 •JobTracker将TaskTracker加入到黑名单中 lTask失败 •任务失败,会向TraskTracker抛出异常 •任务挂起 JobTracker l负责接收用户提交的作业,负责启动、跟踪任务执行。 lJobSubmissionProtocol是JobClient与JobTracker通信的接口。 lInterTrackerProtocol是TaskTracker与JobTracker通信的接口。 TaskTracker l负责执行任务。 JobClient l是用户作业与JobTracker交互的主要接口。 l负责提交作业的,负责启动、跟踪任务执行、访问任务状态和日志等。 序列化概念 l序列化(Serialization)是指把结构化对象转化为字节流。 l反序列化(Deserialization)是序列化的逆过程。即把字节流转回结构化对象。 lJava序列化(java.io.Serializable) Hadoop序列化的特点 l序列化格式特点: 1.紧凑:高效使用存储空间。 2.快速:读写数据的额外开销小 3.可扩展:可透明地读取老格式的数据 4.互操作:支持多语言的交互 Hadoop的序列化格式:Writable Java序列化的不足: 1.不精简。附加信息多。不大适合随机访问。 2.存储空间大。递归地输出类的超类描述直到不再有超类。序列化图对象,反序列化时为每个对象新建一个实例。相反。Writable对象可以重用。 3.扩展性差。而Writable方便用户自定义 Hadoop序列化的作用 l序列化在分布式环境的两大作用:进程间通信,永久存储。 lHadoop节点间通信。 Writable接口 lWritable接口, 是根据 DataInput 和 DataOutput 实现的简单、有效的序列化对象. lMR的任意Key和Value必须实现Writable接口. •MR的任意key必须实现WritableComparable接口 常用的Writable实现类 Text一般认为它等价于java.lang.String的Writable。针对UTF-8序列。 例: Text test = new Text("test"); IntWritable one = new IntWritable(1); 自定义Writable类 Writable ①write 是把每个对象序列化到输出流 ②readFields是把输入流字节反序列化 ①实现WritableComparable. ②Java值对象的比较:一般需要重写toString(),hashCode(),equals()方法 自定义WritableKpi 1.电信例子 2.把上面例子里的Mapper的value改写为自定义Writable类型。修改原MapReduce程序,并成功执行。结果跟原来一致。 MapReduce输入的处理类 lFileInputFormat: FileInputFormat是所有以文件作为数据源的InputFormat实现的基类,FileInputFormat保存作为job输入的所有文件,并实现了对输入文件计算splits的方法。至于获得记录的方法是有不同的子类——TextInputFormat进行实现的。 InputFormat InputFormat 负责处理MR的输入部分. 有三个作用: v验证作业的输入是否规范. v把输入文件切分成InputSplit. v提供RecordReader 的实现类,把InputSplit读到Mapper中进行处理. InputSplit ◆ 在执行mapreduce之前,原始数据被分割成若干split,每个split作为一个map任务的输入,在map执行过程中split会被分解成一个个记录(key-value对),map会依次处理每一个记录。 ◆ FileInputFormat只划分比HDFS block大的文件,所以FileInputFormat划分的结果是这个文件或者是这个文件中的一部分. ◆ 如果一个文件的大小比block小,将不会被划分,这也是Hadoop处理大文件的效率要比处理很多小文件的效率高的原因。 ◆ 当Hadoop处理很多小文件(文件大小小于hdfs block大小)的时候,由于FileInputFormat不会对小文件进行划分,所以每一个小文件都会被当做一个split并分配一个map任务,导致效率底下。 例如:一个1G的文件,会被划分成16个64MB的split,并分配16个map任务处理,而10000个100kb的文件会被10000个map任务处理。 TextInputFormat ◆ TextInputformat是默认的处理类,处理普通文本文件。 ◆ 文件中每一行作为一个记录,他将每一行在文件中的起始偏移量作为key,每一行的内容作为value。 ◆ 默认以\n或回车键作为一行记录。 ◆ TextInputFormat继承了FileInputFormat。 InputFormat类的层次结构 其他输入类 ◆ CombineFileInputFormat 相对于大量的小文件来说,hadoop更合适处理少量的大文件。 CombineFileInputFormat可以缓解这个问题,它是针对小文件而设计的。 ◆ KeyValueTextInputFormat 当输入数据的每一行是两列,并用tab分离的形式的时候,KeyValueTextInputformat处理这种格式的文件非常适合。 ◆ NLineInputformat NLineInputformat可以控制在每个split中数据的行数。 ◆ SequenceFileInputformat 当输入文件格式是sequencefile的时候,要使用SequenceFileInputformat作为输入。 自定义输入格式 1)继承FileInputFormat基类。 2)重写里面的getSplits(JobContext context)方法。 3)重写createRecordReader(InputSplit split,TaskAttemptContext context)方法。 (讲解源代码) Hadoop的输出 ◆ TextOutputformat 默认的输出格式,key和value中间值用tab隔开的。 ◆ SequenceFileOutputformat 将key和value以sequencefile格式输出。 ◆ SequenceFileAsOutputFormat 将key和value以原始二进制的格式输出。 ◆ MapFileOutputFormat 将key和value写入MapFile中。由于MapFile中的key是有序的,所以写入的时候必须保证记录是按key值顺序写入的。 ◆ MultipleOutputFormat 默认情况下一个reducer会产生一个输出,但是有些时候我们想一个reducer产生多个输出,MultipleOutputFormat和MultipleOutputs可以实现这个功能。 思考题 1.MapReduce框架的结构是什么 2.Map在整个MR框架中作用是什么 3.Reduce在整个MR框架中作用是什么 本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/4572339.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

BigData:值得了解的十大数据发展趋势

当今,世界无时无刻不在发生着变化。对于技术领域而言,普遍存在的一个巨大变化就是为大数据(Big data)打开了大门,并应用大数据技相关技术来改善各行业的业务并促进经济的发展。目前,大数据的作用已经上升到一定程度,对于小型或大型公司而言,从所收集的数据中提取出有用的信息已被是非常宝贵的。此外,大数据帮助那些在使世界变得更美好的且负有重要责任的组织能够更好地完成工作。 在早期,大数据并不没有那么的“大”。当时,只有大型企业能够很好地利用它,因为他们是唯一能够负担得起这种技术的企业。此外,其广泛的服务范围需要更精确的数据,这就需要使用数据分析系统。 从那时起,大数据技术就以极快的速度发展。此外,自从云技术和互联网诞生以来,这使得小企业也能够从中受益。并且,大数据云消除了企业对数据专家的需求,因为可

优秀的个人博客,低调大师

[BigData]关于Hadoop学习笔记第二天(PPT总结)(一)

Plan: 分布式文件系统与HDFS HDFS体系结构与基本概念 HDFS的shell操作 java接口及常用api HADOOP的RPC机制 HDFS源码分析 远程debug 自己设计一分布式文件系统? Distributed File System 1.数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 。 2.是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。 3.通透性。让实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般。 4.容错。即使系统中有某些节点脱机,整体来说系统仍然可以持续运作而不会有数据损失。 5.分布式文件管理系统很多,hdfs只是其中一种。适用于一次写入多次查询的情况,不支持并发写情况,小文件不合适。 HDFS的Shell 1.调用文件系统(FS)Shell命令应使用 bin/hadoop fs 的形式。 2.所有的FS shell命令使用URI路径作为参数。 URI格式是scheme://authority/path。HDFS的scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。 例如:/parent/child可以表示成hdfs://namenode:namenodePort/parent/child,或者更简单的/parent/child(假设配置文件是namenode:namenodePort) 3.大多数FS Shell命令的行为和对应的Unix Shell命令类似。 HDFS fs命令 -help [cmd] //显示命令的帮助信息 -ls(r) <path> //显示当前目录下所有文件 -du(s) <path> //显示目录中所有文件大小 -count[-q] <path> //显示目录中文件数量 -mv <src> <dst> //移动多个文件到目标目录 -cp <src> <dst> //复制多个文件到目标目录 -rm(r) //删除文件(夹) -put <localsrc> <dst> //本地文件复制到hdfs -copyFromLocal //同put -moveFromLocal //从本地文件移动到hdfs -get [-ignoreCrc] <src> <localdst> //复制文件到本地,可以忽略crc校验 -getmerge <src> <localdst> //将源目录中的所有文件排序合并到一个文件中 -cat <src> //在终端显示文件内容 -text <src> //在终端显示文件内容 -copyToLocal [-ignoreCrc] <src> <localdst> //复制到本地 -moveToLocal <src> <localdst> -mkdir <path> //创建文件夹 -touchz <path> //创建一个空文件 HDFS的Shell命令练习 #hadoop fs -ls / 查看HDFS根目录 #hadoop fs -mkdir /test 在根目录创建一个目录test #hadoop fs -mkdir /test1 在根目录创建一个目录test1 #hadoop fs -put ./test.txt /test 或#hadoop fs -copyFromLocal ./test.txt /test #hadoop fs -get /test/test.txt . 或#hadoop fs -getToLocal /test/test.txt . #hadoop fs -cp /test/test.txt /test1 #hadoop fs -rm /test1/test.txt #hadoop fs -mv /test/test.txt /test1 #hadoop fs -rmr /test1 HDFS架构 NameNode DataNode Secondary NameNode HDFS Architecture 元数据存储细节 NameNode 1.是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。 2.文件包括: ①fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。(hdfs-site.xml的dfs.name.dir属性 ) ②edits:操作日志文件。 ③fstime:保存最近一次checkpoint的时间 3.以上这些文件是保存在linux的文件系统中。 NameNode的工作特点 1.Namenode始终在内存中保存metedata,用于处理“读请求” 2.到有“写请求”到来时,namenode会首先写editlog到磁盘,即向edits文件中写日志,成功返回后,才会修改内存,并且向客户端返回 3.Hadoop会维护一个fsimage文件,也就是namenode中metedata的镜像,但是fsimage不会随时与namenode内存中的metedata保持一致,而是每隔一段时间通过合并edits文件来更新内容。Secondary namenode就是用来合并fsimage和edits文件来更新NameNode的metedata的。 SecondaryNameNode 1.HA的一个解决方案。但不支持热备。配置即可。 2.执行过程:从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,替换旧的fsimage. 3.默认在安装在NameNode节点上,但这样...不安全! secondary namenode的工作流程 1.secondary通知namenode切换edits文件 2.secondary从namenode获得fsimage和edits(通过http) 3.secondary将fsimage载入内存,然后开始合并edits 4.secondary将新的fsimage发回给namenode 5.namenode用新的fsimage替换旧的fsimage 什么时候checkpiont 1.fs.checkpoint.period 指定两次checkpoint的最大时间间隔,默认3600秒。 2.fs.checkpoint.size 规定edits文件的最大值,一旦超过这个值则强制checkpoint,不管是否到达最大时间间隔。默认大小是64M。 Datanode 1.提供真实文件数据的存储服务。 2.文件块(block):最基本的存储单位。对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block。HDFS默认Block大小是128MB,以一个256MB文件,共有256/128=2个Block. dfs.block.size 3.不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间 4.Replication。多复本。默认是三个。 hdfs-site.xml的dfs.replication属性 Shell命令练习:验证块大小 1.方法:上传大于128MB的文件,观察块大小 2.验证:使用 http://hadoop0:50070 观察 HDFS的java访问接口——FileSystem •写文件 create •读取文件 open •删除文件delete • • •创建目录 mkdirs •删除文件或目录 delete •列出目录的内容 listStatus •显示文件系统的目录和文件的元数据信息 getFileStatus HDFS的FileSystem读取文件 private static FileSystem getFileSystem() throws URISyntaxException, IOException { Configuration conf = new Configuration(); URI uri = new URI("hdfs://hadoop240:9000"); final FileSystem fileSystem = FileSystem.get(uri , conf); return fileSystem; } /** * 读取文件,调用fileSystem的open(path) * @throws Exception */ private static void readFile() throws Exception { FileSystem fileSystem = getFileSystem(); FSDataInputStream openStream = fileSystem.open(new Path("hdfs://itcast0106:9000/aaa")); IOUtils.copyBytes(openStream, System.out, 1024, false); IOUtils.closeStream(openStream); } HDFS的FileSystem目录 /** * 创建目录,调用fileSystem的mkdirs(path) * @throws Exception */ private static void mkdir() throws Exception { FileSystem fileSystem = getFileSystem(); fileSystem.mkdirs(new Path("hdfs://itcast0106:9000/bbb")); } /** * 删除目录,调用fileSystem的deleteOnExit(path) * @throws Exception */ private static void rmdir() throws Exception { FileSystem fileSystem = getFileSystem(); fileSystem.delete(new Path("hdfs://itcast0106:9000/bbb")); } HDFS的FileSystem遍历目录 /** * 遍历目录,使用FileSystem的listStatus(path) * 如果要查看file状态,使用FileStatus对象 * @throws Exception */ private static void list() throws Exception{ FileSystem fileSystem = getFileSystem(); FileStatus[] listStatus = fileSystem.listStatus(new Path("hdfs://itcast0106:9000/")); for (FileStatus fileStatus : listStatus) { String isDir = fileStatus.isDir()?"目录":"文件"; String name = fileStatus.getPath().toString(); System.out.println(isDir+" "+name); } } FileSystem 用户代码操作HDFS时,是直接调用FileSystem的子类完成的。 Remote Procedure Call 1.RPC——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。 2.RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。 3.hadoop的整个体系结构就是构建在RPC之上的(见org.apache.hadoop.ipc)。 RPC示例 public interface Bizable extends VersionedProtocol{ public abstract String hello(String name); } class Biz implements Bizable{ @Override public String hello(String name){ System.out.println("被调用了"); return "hello "+name; } @Override public long getProtocolVersion(String protocol, long clientVersion) throws IOException { System.out.println("Biz.getProtocalVersion()="+MyServer.VERSION); return MyServer.VERSION; } } public class MyServer { public static int PORT = 3242; public static long VERSION = 23234l; public static void main(String[] args) throws IOException { final Server server = RPC.getServer(new Biz(), "127.0.0.1", PORT, new Configuration()); server.start(); } } public class MyClient { public static void main(String[] args) throws IOException { final InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", MyServer.PORT); final Bizable proxy = (Bizable) RPC.getProxy(Bizable.class, MyServer.VERSION, inetSocketAddress, new Configuration()); final String ret = proxy.hello("吴超"); System.out.println(ret); RPC.stopProxy(proxy); } } RPC调用流程 ClientProtocol l是客户端(FileSystem)与NameNode通信的接口。 DatanodeProtocol l是DataNode与NameNode通信的接口 NamenodeProtocol l是SecondaryNameNode与NameNode通信的接口。 HDFS读过程 1.初始化FileSystem,然后客户端(client)用FileSystem的open()函数打开文件 2.FileSystem用RPC调用元数据节点,得到文件的数据块信息,对于每一个数据块,元数据节点返回保存数据块的数据节点的地址。 3.FileSystem返回FSDataInputStream给客户端,用来读取数据,客户端调用stream的read()函数开始读取数据。 4.DFSInputStream连接保存此文件第一个数据块的最近的数据节点,data从数据节点读到客户端(client) 5.当此数据块读取完毕时,DFSInputStream关闭和此数据节点的连接,然后连接此文件下一个数据块的最近的数据节点。 6.当客户端读取完毕数据的时候,调用FSDataInputStream的close函数。 7.在读取数据的过程中,如果客户端在与数据节点通信出现错误,则尝试连接包含此数据块的下一个数据节点。 8.失败的数据节点将被记录,以后不再连接。 HDFS写过程 1.初始化FileSystem,客户端调用create()来创建文件 2.FileSystem用RPC调用元数据节点,在文件系统的命名空间中创建一个新的文件,元数据节点首先确定文件原来不存在,并且客户端有创建文件的权限,然后创建新文件。 3.FileSystem返回DFSOutputStream,客户端用于写数据,客户端开始写入数据。 4.DFSOutputStream将数据分成块,写入data queue。data queue由Data Streamer读取,并通知元数据节点分配数据节点,用来存储数据块(每块默认复制3块)。分配的数据节点放在一个pipeline里。Data Streamer将数据块写入pipeline中的第一个数据节点。第一个数据节点将数据块发送给第二个数据节点。第二个数据节点将数据发送给第三个数据节点。 5.DFSOutputStream为发出去的数据块保存了ack queue,等待pipeline中的数据节点告知数据已经写入成功。 6.当客户端结束写入数据,则调用stream的close函数。此操作将所有的数据块写入pipeline中的数据节点,并等待ack queue返回成功。最后通知元数据节点写入完毕。 7.如果数据节点在写入的过程中失败,关闭pipeline,将ack queue中的数据块放入data queue的开始,当前的数据块在已经写入的数据节点中被元数据节点赋予新的标示,则错误节点重启后能够察觉其数据块是过时的,会被删除。失败的数据节点从pipeline中移除,另外的数据块则写入pipeline中的另外两个数据节点。元数据节点则被通知此数据块是复制块数不足,将来会再创建第三份备份。 练习题 1.练习shell命令 2.在HDFS创建一个文本文件hadoop.test。内容自定;然后,用Java程序在本地终端打印hadoop.test文件内容 3.用Java程序实现copyFromLocal 思考题 1.hdfs的组成部分有哪些,分别解释一下 2.hdfs的高可靠如何实现 3.hdfs的常用shell命令有哪些 4.hdfs的常用java api有哪些 5.请用shell命令实现目录、文件的增删改查 6.请用java api实现目录、文件的增删改查 本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/4566838.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

【精彩直播+最全资料下载】阿里云栖开发者沙龙 - BigData NoSQL Meetup(上海站)业内大咖齐聚,各大技术社区支持,与...

精彩直播推送+最全资料下载 云栖开发者沙龙介绍​ 阿里云栖开发者沙龙是“云栖社区”主办的线下技术沙龙品牌,希望通过技术干货分享来打通线上线下专家和开发者的连接。沙龙每期将定位不同的技术方向,逐步覆盖 云计算,大数据,前端,PHP,Java ,android,AI,运维,测试 等技术领域,并会穿插一些特别专场(开源专场,女性开发者专场,开发者成长专场等)。我们希望它将是一个开发者的聚集地,每一期都是一个开发者的大Party! 时间:5月25日 14:00——18:00 地点:长阳路1687号长阳创谷-1号楼1111室 演讲主题及嘉宾 Topic1:HBase实时数据同步解决方案的设计与实践 主要介绍HBase实时同步的场景,开源HBase Replication使用和原理、阿里内部对HBase实时同步的方案探索和优化 Topic2:SAIC Spark查询优化案例分享 本次主要分享上汽集团对于Spark查询的优化思路。大数据量的精确查询是我们经常遇到的一类场景。为了解决此类问题,我们做了诸多实践。实践思路主要分为两类,一类主要着眼于物理层面,主要为了缩小数据源的范围,有些甚至可以做到精确定位。另一类主要着眼于查询计划的优化,在使用Spark CBO的同时,我们探索并实现了一些特定case的聚合函数下推。相信对有类似需求的工程师们会有所帮助。 PPT下载:https://yq.aliyun.com/download/3567 Topic3:Phoenix Search Index 功能与应用场景介绍 主要介绍云HBase/Phoenix引入Search Index的背景,基本实现原理,使用方式以及应用案例 PPT下载:https://yq.aliyun.com/download/3568 Topic4:Phoenix在客服系统的实践 实时查询平台的背景、难点、Phoenix解决的问题、Phoenix-Sql的优化,Phoenix与实时数仓的融合思路 PPT下载:https://yq.aliyun.com/download/3569相关博文链接:Phoenix在2345的实践 议程安排 13:30-14:00 签到 14:00-14:40 HBase实时数据同步解决方案的设计与实践讲师:熊嘉男 花名:侧田 14:40-15:20 SAIC Spark查询优化案例分享讲师:陈奕杰 15:20-15:30 抽奖环节 15:30-16:10 Phoenix Search Index 功能与应用场景介绍讲师:天斯 16:10-16:50 Phoenix在客服系统的实践讲师:吴少杰 合作伙伴 主办:中国 Cassandra 技术社区,中国HBase技术社区,阿里云多模数据库组;云栖社区;DataFun;TechDay 合作伙伴:开源中国,SegmentFault;掘金;示说网官方报名平台:活动行 技术交流 点击链接入群 https://dwz.cn/Fvqv066s 或扫码进群 Cassandra 社区大群:https://c.tb.cn/F3.ZRTY0o 直播链接:https://yq.aliyun.com/live/1091

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册