Total files:    23 Total symlinks:        0 Total blocks (validated):    22 (avg. block size 117723 B) Minimally replicated blocks:    22 (100.0 %) Over-replicated blocks:    0 (0.0 %) Under-replicated blocks:    0 (0.0 %) Mis-replicated blocks:     …
spark 2.1.1 spark初始化rdd的时候,需要读取文件,通常是hdfs文件,在读文件的时候可以指定最小partition数量,这里只是建议的数量,实际可能比这个要大(比如文件特别多或者特别大时),也可能比这个要小(比如文件只有一个而且很小时),如果没有指定最小partition数量,初始化完成的rdd默认有多少个partition是怎样决定的呢? 以SparkContext.textfile为例来看下代码: org.apache.spark.SparkContext /** * Re…
环境:hadoop-3.0.2 + 11 机集群 + RS-6-3-1024K 的EC策略 状况:某天,往 HDFS 上日常 put 业务数据时,发现传输速率严重下降 分析: 检查集群发现,在之前的传输中,发生过个别 datanode 临时不可用的状况. 而由于 hadoop EC 机制,当失效 datanode 小于容忍值 (这里是3),put 等传输任务仍然成功.但 hadoop 当时会报错,用于提示程序员,这个报错不会影响当此传输任务,故 put 等传输请求会返回成功.然后,缺失的 dat…
该系列总览: Hadoop3.1.1架构体系——设计原理阐述与Client源码图文详解 : 总览 在HDFS中,有三种Recovery 1.Lease Recovery 2.Block Recovery 3.PipeLine Recovery 以下将 一 一 讲解. 一.Lease Recovery 首先很有比要介绍一下Lease(租约) 租约保证HDFS的一读多写机制,当一个客户端(Client)希望打开(Open)HDFS中的某个文件进行append或者truncate操作(追加内容或者减少…
准备环境(省略) 上传实验所需的压缩包 配置网络信息 修改主机名 配置域名解析 关闭防火墙与SELinux(在所有节点上执行)代码如下: systemctl disable --now firewalld setenforce 0 vim /etc/selinux/config 修改:SELINUX=disabled 保存退出 (1)在 Master 节点上安装 Hadoop 步骤一:解压缩 hadoop-2.7.1.tar.gz安装包和jdk-8u152-linux-x86.tar.gz到/u…
马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第四课:Yarn和Map/Reduce配置启动和原理讲解 马士兵hadoop第五课:java开发Map/Reduce (1)观察集群配置情况 [root@master ~]# hdfs dfsadmin -report (2)web界面观察集群运行情况 使用netstat命令查看端口监听 [root@…
马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第四课:Yarn和Map/Reduce配置启动和原理讲解 马士兵hadoop第五课:java开发Map/Reduce (1)观察集群配置情况 [root@master ~]# hdfs dfsadmin -report (2)web界面观察集群运行情况 使用netstat命令查看端口监听 [root@…
2       索引读取阶段 当希望通过一个DocId得到Doc的全部内容,那么就需要对fdx/fdt文件进行读操作了.具体的代码在CompressingStoredFieldsReader类里面.与CompressingStoredFieldsWriter一样,这些操作都是建立在fdx/fdt文件格式理解的基础上. 既然前面有一个比喻:如果fdt是一本书的正文,那么fdx则是书的目录.那么通过docID来得到doc全部内容的这个过程则是需要两个文件联合起来发挥作用. 具体的过程如下: 第一步:…
package com.swift; public class TotalNumber_String { public static void main(String[] args) { /* * 如果一串字符如"aaaabbc中国1512"要分别统计英文字符的数量,中文字符的数量,和数字字符的数量, * 假设字符中没有中文字符.英文字符.数字字符之外的其他特殊字符. */ String str="aaaabbc中国1512"; int engishCount =…
整理下,基本分两个方式: 一.对于大量大文件(大于block块设置的大小) 增大minSize,即增大mapred.min.split.size的值,原因:splitsize=max(minisize,min(maxsize,blocksize)),blocksize一般不会做修改. 在没有设置minisize,maxsize时,splitsize取blocksize. 二.对于大量小文件(小于block块设置的大小) 这种情况通过增大mapred.min.split.size不可行, 需要使用…
1.使用hadoop命令查看hdfs下文件 [root@localhost hadoop-2.7.2]# hadoop fs -ls hdfs://192.168.211.129:9000/  (最后一定要加/) 开始在xshell上执行这条命令失败,使用netstat -nltp命令查看监听的9000端口,是127.0.0.1:9000,没有找到办法更改这个监听的IP和端口 后来就把etc/hadoop/core-site.xml配置下的localhost改为192.168.211.129,保…
1. 分布式文件系统,即为管理网络中跨多台计算机存储的文件系统.HDFS以流式数据访问模式来存储超大文件,运行于商用硬件集群上.HDFS的构建思路为:一次写入.多次读取是最高效的访问模式.数据集通常由数据源生成或从数据源赋值而来,接着长时间在此数据集上进行各类分析.每次分析都涉及该数据集的大部分数据甚至全部,因此读取整个数据集的时间延迟比第一条记录的时间延迟更重要. 2. HDFS是为高数据吞吐量应用优化的,这可能会以高时间延迟为代价.目前,对于低延迟的访问需求,HBase是更好的选择. 3.…
1. Hadoop的文件压缩需求 文件压缩对于大容量的分布式存储系统而言是必须的,它能带来两个好处: 1)减少了文件所需的存储空间: 2)加快了文件在网络上或磁盘间的传输速度. 2. Hadoop支持的压缩格式 首先看一下 Hadoop 常见压缩格式,如DEFLATE.Gzip.bzip2.LZO.LZ4.Snappy等. 1)gzip压缩 优点:压缩率比较高,而且压缩/解压速度也比较快:hadoop本身支持,在应用中处理gzip格式的文件就和直接处理文本一样:有hadoop native库:大…
一.目的 a. 减小磁盘占用 b. 加速网络IO 二.几个常用压缩算法 是否可切分:是指压缩后的文件能否支持在任意位置往后读取数据. 各种压缩格式特点: 压缩算法都需要权衡 空间/时间 :压缩率越高,就需要更多的压缩解压缩时间:压缩时有9个级别来控制:1为优化压缩速度,9为优化压缩率(如 gzip -1 file); 相比之下 gzip是一个空间/时间都比较适中的压缩算法:bzip2特点是压缩率高,且可切分:LZO/LZ4/Snappy压缩速度快,比gzip快一个数量级,且LZ4和Snappy又…
前言 通常在搜索打分完毕后,IndexSearcher会返回一个docID序列,但是仅仅有docID我们是无法看到存储在索引中的document,这时候就需要通过docID来得到完整Document信息,这个过程就需要对fdx/fdt文件进行读操作.为了更清楚地了解fdx/fdt文件的作用,本文把fdx/fdt文件的读和写整合到了一起,尽管这在Lucene中是两个分开的过程. 1. 索引生成阶段 索引生成阶段包含着一个复杂的过程,所以了解本文前最好对Lucene的索引架构有一定的了解,可以参考博…
目录 1.为什么要序列化? 2.什么是序列化? 3.为什么不用Java的序列化? 4.为什么序列化对Hadoop很重要? 5.Hadoop中定义哪些序列化相关的接口呢? 6.Hadoop 自定义Writable 接口 1.为什么要序列化? 一般来说,"活的"对象只存在内存里,关机断电就没有了.而且"活的"对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机. 然而序列化可以存储"活的"对象,可以将"活的"对象发送到远程…
Hadoop提供了大量的API对文件系统中的文件进行操作,主要包括: (1)读取文件 (2)写文件 (3)读取文件属性 (4)列出文件 (5)删除文件 1、读取文件 以下示例中,将hdfs中的一个文件读取出来,并输出到标准输出流中. package org.jediael.hadoopdemo.fsdemo; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration;…
如果我们想把文件上传到Hadoop集群中,使用put命令即可.下面的语句是将本地文件上传到hadoop集群的/目录下. hadoop fs -put fruit.txt /   下面介绍通过脚本将文件分发到Hadoop集群的方法.因为Hadoop本身就带有文件自动分发的功能,我们只需在启动hadoop作业的脚本文件中做相应的配置即可.可选的配置项有三个,每个适用的场景都不一样: -file:将本地文件分发到计算节点. -cacheFile:将HDFS中已经存在的文件发送到需要使用该文件的节点.…
来自:http://blog.csdn.net/dandingyy/article/details/7490046 众所周知,Hadoop对处理单个大文件比处理多个小文件更有效率,另外单个文件也非常占用HDFS的存储空间.所以往往要将其合并起来. 1,getmerge hadoop有一个命令行工具getmerge,用于将一组HDFS上的文件复制到本地计算机以前进行合并 参考:http://hadoop.apache.org/common/docs/r0.19.2/cn/hdfs_shell.ht…
* 文件操作 * 查看目录文件 * $ hadoop dfs -ls /user/cl * * 创建文件目录 * $ hadoop dfs -mkdir /user/cl/temp * * 删除文件 * $ hadoop dfs -rm /user/cl/temp/a.txt * * 删除目录与目录下所有文件 * $ hadoop dfs -rmr /user/cl/temp * * 上传文件 * 上传一个本机/home/cl/local.txt到hdfs中/user/cl/temp目录下 *…
Class org.apache.hadoop.io.compress .CompressionCodecFactory A factory that will find the correct codec for a given filename. Method CompressionCodec getCodec(Path file) Find the relevant compression codec for the given file based on its filename suf…
InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符.它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集. InputStreamReader(InputStream in) InputStreamReader(InputStream in, String charsetName)   OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节.它使用…
转:http://blog.csdn.net/xiaoshunzi111/article/details/48198105 由上图可知;写入文件分为三个角色,分别是clientnode  namenode  和datanode cliennode本质为java虚拟机.namenode 和datanode则是Hadoop数据集群存储块 第一步:create实际是客户端创建DistributedFileSystem实例化对象 第二步 create通过实例化对象录取调用对象中create()方法,此方…
Hadoop提供了大量的API对文件系统中的文件进行操作,主要包括: (1)读取文件 (2)写文件 (3)读取文件属性 (4)列出文件 (5)删除文件 1、读取文件 以下示例中,将hdfs中的一个文件读取出来,并输出到标准输出流中. package org.jediael.hadoopdemo.fsdemo; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration;…
Hadoop 命令行最常用指令篇:  1.ls (list directory) Usage: hadoop fs -ls [R] Option: -R => 递归显示 2.mkdir (make directory) Usage: hadoop fs -mkdir [-p] <paths> Takes path uri’s as argument and creates directories. Options: -p make parent file => 当给的路径含有不存在…
首先得好看有多少损坏的文件,其中需要使用Hadoop的fsck命令: 以下是官方解释 用法:  hadoop fsck  //路径 以上将会展示该路径下所有受损的文件 最后用-delete 可以清除掉所有受损的文件…
1.创建目录 #hdfs dfs -mkidr /test 2.查询目录结构 #hdfs dfs -ls / 子命令 -R递归查看//查看具体的某个目录:例如#hdfs dfs -ls /test 3.创建文件 #hdfs dfs -touchz /test/data.txt 4.查看文件内容 #hdfs dfs -cat /test/data.txt (-text和-cat效果一样) 5.复制文件 // .表示当前目录,也可以指定具体其它目录#hdfs dfs -copyToLocal /te…
FileSystem fs = FileSystem.get(conf); Path pattern = new Path(resultViewPath + "phone*"); Path dir = new Path(dest); if (!fs.exists(dir)) {      // 目标目录 fs.mkdirs(dir); } FileStatus[] status = fs.globStatus(pattern);   //  匹配正则表达式的文件集合 Path[] pa…
伪分布式配置: core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> hdfs-site.xml <configuration> <property> <name>d…
Create a directory in HDFS - mkdir The hadoop mkdir command is for creating directories in the hdfs. This is similar to the unix mkdir command. You can use the -p option for creating parent directories. Takes path uri’s as argument and creates direct…