HDFS

NameNode元数据管理机制

泪湿孤枕 提交于 2020-03-05 10:36:49
副本的生成一般有两种: 1.客户端直接生成多个副本,缺点就是需要网络传输,比较影响效率;或者是在存储过程中,出现某个副本失败,那么整个存储就是失败; 2.client只生成block,副本是异步进行生成;如果block没有复制成功,会向NN汇报,NN重新指定一个datanode; 为什么 HDFS 存储小数据会浪费? 因为 datanode上不会变化, namenode 会占用, namenode 空间是一定的,如果存储多个小文件,会过多占用(无论大小占用 namenode与数量有关好像) NN管理机制流程 Client向NN申请上传文件; NN向Client返回DN; Client向DN写入block数据(分割是有client管理) NN元数据的存储,可以放到磁盘中,但是访问慢,放到内存中,如果NN党宕机,则数据都会丢失,如何解决这个问题? //磁盘存储fsimage //内存中用于client的查询,这样很快 //edits log //内存需要与fsimage同步,保持数据一致性,是内存每存1条数据就更新到fsimage,还是隔一段时间在加? 在edits log存满之前进行把内存元数据与fsimage同步 //edits与内存是同步的,在edits存满时候与fsimage合并,他们的格式不一样,这个工作是由NN来操作吗,那么就增加了NN的负荷

Programmatically reading contents of text file stored in HDFS using Java

岁酱吖の 提交于 2020-03-05 07:37:09
问题 How do I run this simple Java program to read bytes from a text file stored in directory/words in HDFS? Do I need to create a jar file for the purpose? import java.io.*; import java.net.MalformedURLException; import java.net.URL; import org.apache.hadoop.*; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; public class filesystemhdfs { public static void main(String args[]) throws MalformedURLException, IOException { byte[] b=null; InputStream in=null; in=new URL("hdfs:/

HDFS-分布式文件系统

大兔子大兔子 提交于 2020-03-05 05:51:36
HDFS Hadoop分布式文件系统(HDFS[Hadoop Distributed File System])是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System)。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。 设计思想:分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析 应用:为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务 HDFS Architecture HDFS采用Master/Slave主从结构,每个HDFS集群包括一个单独的NameNode,用作管理文件系统的命名空间以及控制客服端访问权限的Master服务端,集群中包含一定数量的DataNode,并且至少含有一个。用于节点存储数据。HDFS就是一个文件系统并允许存储用户数据。在内部,一个文件并划分为一个或多个的块,并存储于这些DateNode集合中。NameNode执行文件系统的操作,例如打开,关闭,重命名文件和生成文件目录,并生成集群中DataNode的映射关系

azkaban hdfs plugin 配置

一个人想着一个人 提交于 2020-03-05 04:31:53
http://blog.javachen.com/2014/08/25/install-azkaban.html azkaban 的hdfs 插件配置azkaban的官方文档 http://azkaban.github.io/azkaban/docs/2.5/#plugins 描述的很简单,网上也有很多教程,但是配置到最后去浏览器上查看都是如下这个毫无提示信息的错误 没有办法,只能去下载了azkaban与azkaban-plugin的源码来一点点排查. azkaban 源码地址: github.com/azkaban/azkaban azkaban-plugin 源码地址: github.com/azkaban/azkaban-plugins 前面的安装步骤就不说了,请参考上面的地址. 第一个出错的问题点排查 在azkaban-web 启动的时候,我们会看到如下这部分信息 1 2015/07/30 14:21:39.730 +0800 INFO [HdfsBrowserServlet] [Azkaban] Initializing hadoop security manager azkaban.security.HadoopSecurityManager_H_2_0 2 2015/07/30 14:21:39.737 +0800 INFO

初识Azkaban

≯℡__Kan透↙ 提交于 2020-03-05 04:31:00
先说下hadoop 内置工作流的不足 (1)支持job单一 (2)硬编码 (3)无可视化 (4)无调度机制 (5)无容错机制 在这种情况下Azkaban就出现了 1)Azkaban是什么 Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。 2)Azkaban的功能特点 ①Web用户界面 ②方便上传工作流 ③方便设置任务之间的关系 ④工作流调度 ⑤认证/授权 ⑥能够杀死并重新启动工作流 ⑦模块化和可插拔的插件机制 ⑧项目工作区 ⑨工作流和任务的日志记录和审计 3)Azkaban的架构 MySQL实例 – Azkaban使用MySQL来存储项目和执行 Azkaban Web服务器 – Azkaban使用Jetty作为Web服务器,用作控制器以及提供Web界面 Azkaban执行服务器 – Azkaban执行服务器执行提交工作流 4)Azkaban三种运行模式 ①solo server mode H2 web server和executor server运行在一个进程里 ②two server mode MySQL(主从结构) web server和executor server运行在不同的进程

Hadoop2.2.0 入门教程(三)之HDFS SHELL脚本

我的梦境 提交于 2020-03-04 12:14:00
HDFS Shell hadoop fs -help: HDFS的帮助命令 hadoop fs -ls:查看文件或目录的命令 for example: hadoop fs -ls / 查看/(根目录下得文件或目录) for example: hadoop fs -lsr / 递归查看/(根目录下的所有文件和目录) 这个我们使用了绝对路径 / 感觉像是在对linux/Unix系统的文件系统进行操作,实际上,这儿是对HDFS文件系统进行操作,只是Hadoop简化了我们的操作,这儿的/代表的是HDFS配置的hdfs://hadoop:9000(与实际配置相关) hadoop fs -ls :后面没有路径,那么就默认到/user/{当前用户名}/ 这个目录下(注意,用户名只认小写) hadoop fs -mkdir hdfs路径: 创建文件夹: for example: hadoop fs -mkdir /user/king-pan 创建我的 ls 默认的路径 hadoop fs -put localPathFile HDFSPathFile:上传文件到HDFS文件系统上 for example: hadoop fs -put /Users/King-pan/classes.jar /user/classes.jar :把本机上的/Users/King-pan/classes.jar

初涉MapReduce程序

♀尐吖头ヾ 提交于 2020-03-04 11:17:51
一 MapRecuce_WordCount 程序测试 上次的hadoop中的hdfs文件系统中,我们把hadoop根目录下面的conf下的所有.xml文件上传到了hdfs文件系统中,下面我们就通过mapreduce程序来对单词进行一下统计 首先我们进入到hadoop的根目录下面,然后执行如下的命令 hadoop jar hadoop-examples-1.2.1.jar wordcount /opt/data/temp/input/ /opt/data/temp/output/ 之后我们再查看下文件系统,你会发现在文件系统中多出了一个output的目录,如下图,表示已经成功了,上面这个命令 主要是用于单词的统计. 接下来我们查看一下统计的结果: 上面是通过命令的方式去查看的,当然我们也可以通过文件系统去查看,结果是一样的. 二 MapRecuce_WordCount程序解析 下面就上面这个图我稍微解析下。 首先是客户将数据我自己的本地文件上传到我们的hdfs分布式文件系统中,当我们的用户运行前面的jar测试程序的时候,首先到hdfs文件系统中拿到这些文件,因为文件系统中有两个文件,每个文件对应一个MapReduce程序,每个程序分别解析文件当中的单词,也就是从Map到sorter的过程,然后会对解析的这些单词进行排序处理,也就是从sorter到Reduc的过程

大数据教程(8.4)移动流量分析案例

人走茶凉 提交于 2020-03-04 11:15:10
前面分享了使用mapreduce做wordcount单词统计的实现与原理。本篇博主将继续分享一个移动流量分析的经典案例,来帮助在实际工作中理解和使用hadoop平台。 一、需求 以下是一个移动流量的日志,我们需要根据日志分析出每个手机号对应的上行流量、下行流量、总流量。 1363157985066 13726230503 00-FD-07-A4-72-B8:CMCC 120.196.100.82 i02.c.aliimg.com 24 27 2481 24681 200 1363157995052 13826544101 5C-0E-8B-C7-F1-E0:CMCC 120.197.40.4 4 0 264 0 200 1363157991076 13926435656 20-10-7A-28-CC-0A:CMCC 120.196.100.99 2 4 132 1512 200 1363154400022 13926251106 5C-0E-8B-8B-B1-50:CMCC 120.197.40.4 4 0 240 0 200 1363157993044 18211575961 94-71-AC-CD-E6-18:CMCC-EASY 120.196.100.99 iface.qiyi.com 视频网站 15 12 1527 2106 200 1363157995074

大数据教程(8.2)wordcount程序原理及代码实现/运行

早过忘川 提交于 2020-03-04 11:05:49
上一篇博客分享了mapreduce的编程思想,本节博主将带小伙伴们了解wordcount程序的原理和代码实现/运行细节。通过本节可以对mapreduce程序有一个大概的认识,其实hadoop中的map、reduce程序只是其中的两个组件,其余的组件(如input/output)也是可以重写的,默认情况下是使用默认组件。 一、wordcount统计程序实现: WordcountMapper (map task业务实现) package com.empire.hadoop.mr.wcdemo; import java.io.IOException; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; /** * KEYIN: 默认情况下,是mr框架所读到的一行文本的起始偏移量,Long, * 但是在hadoop中有自己的更精简的序列化接口,所以不直接用Long,而用LongWritable * VALUEIN:默认情况下,是mr框架所读到的一行文本的内容,String,同上,用Text * KEYOUT

[原创]安装Sqoop并验证

扶醉桌前 提交于 2020-03-04 07:31:44
1. 下载包并配置 下载 hadoop-0.20.2-CDH3B4.tar.gz 、 sqoop-1.2.0-CDH3B4.tar.gz , 并解压,将 Hadoop-0.20.2-CDH3B4 目录下 hadoop-core-0.20.2-CDH3B4.jar 复制到 Sqoop-1.2.0-CDH3B4 的 lib 目录下。修改 Sqoop-1.2.0-CDH3B4/bin/ configure-sqoop, 注释掉对 ZOOKEEPER_HOME 的检查 2. 配置环境变量 export SQOOP_HOME=/home/admin/sqoop-1.2.0-CDH3B4 export PATH=$PATH:$SQOOP_HOME/bin 3. 测试安装 [admin@server1 ~]$ sqoop help usage: sqoop COMMAND [ARGS] Available commands: codegen Generate code to interact with database records create-hive-table Import a table definition into Hive eval Evaluate a SQL statement and display the results export Export an HDFS