一. 简介 想要使用HDFS API,需要导入依赖hadoop-client.如果是CDH版本的Hadoop,还需要额外指明其仓库地址: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance…
一. 简介 想要使用 HDFS API,需要导入依赖 hadoop-client.如果是 CDH 版本的 Hadoop,还需要额外指明其仓库地址: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins…
客户端需要指定ns名称,节点配置,ConfiguredFailoverProxyProvider等信息. 代码示例: package cn.itacst.hadoop.hdfs; import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URI; import org.apache.hadoop.conf.Configuration; impor…
package com.duking.util; import java.io.IOException; import java.util.Date; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.BlockLocation; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileStatus…
阿里封神谈hadoop学习之路   封神 2016-04-14 16:03:51 浏览3283 评论3 发表于: 阿里云E-MapReduce >> 开源大数据周刊 hadoop 学生 spark 摘要: 在大数据时代,要想个性化实现业务的需求,还是得操纵各类的大数据软件,如:hadoop.hive.spark等.笔者(阿里封神)混迹Hadoop圈子多年,经历了云梯1.ODPS等项目,目前base在E-Mapreduce.在这,笔者尽可能梳理下hadoop的学习之路. 引言 当前,越来越多的同…
package com.luogankun.hadoop.hdfs.api; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.…
HDFS shell操作及HDFS Java API编程 1.熟悉Hadoop文件结构. 2.进行HDFS shell操作. 3.掌握通过Hadoop Java API对HDFS操作. 4.了解Hadoop文件操作原理. 1.查看HDFS的NameNode和DataNode目录结构. 2.通过HDFS shell进行文件上传,目录创建等操作. 3.通过Java API进行文件增删查改操作. Hdfs shell 操作: 查看hdfs根目录: Hdfs dfs -ls / 创建文件夹 Hdfs d…
HDFS Java API 搭建Hadoop客户端与Java访问HDFS集群…
一. 简介 二.API的使用         2.1 FileSystem         2.2 创建目录         2.3 创建指定权限的目录         2.4 创建文件,并写入内容         2.5 判断文件是否存在         2.6 查看文件内容         2.7 文件重命名         2.8 删除目录或文件         2.9 上传文件到HDFS         2.10 上传大文件并显示上传进度         2.11 从HDFS上下载文件…
(实践机器:blog-bench) 本文用作博文<Hadoop学习之路>实践过程中遇到的问题记录. 本文所学习的博文为博主“扎心了,老铁” 博文记录.参考链接https://www.cnblogs.com/qingyunzong/category/1169344.html 问题一: <Hadoop学习之路(四)Hadoop集群搭建和简单应用>执行start-dfs.sh时,报错3个: 1. 报错现象: 原因:hadoop默认ssh采用的是22端口号,但是我们公司内部机器为了安全已修…
HDFS API的高级编程 HDFS的API就两个:FileSystem 和Configuration 1.文件的上传和下载 package com.ghgj.hdfs.api; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class HDFS_GET_AND_PUT { public st…
1.HDFS前言 HDFS:Hadoop Distributed File System,Hadoop分布式文件系统,主要用来解决海量数据的存储问题. 设计思想 分散均匀存储 dfs.blocksize = 128M 备份冗余存储 dfs.replication = 3 在大数据系统中作用 为各类分布式运算框架(如:MapReduce,spark,hive.....)提供数据存储服务. 重点概念 数据切块.副本存放.元数据 2.HDFS的概念和特性 概念 首先,它是个文件系统.用于存储文件,通过…
1. 显示当前目录结构 # 显示当前目录结构 hadoop fs -ls <path> # 递归显示当前目录结构 hadoop fs -ls -R <path> # 显示根目录下内容 hadoop fs -ls / 2. 创建目录 # 创建目录 hadoop fs -mkdir <path> # 递归创建目录 hadoop fs -mkdir -p <path> 3. 删除操作 # 删除文件 hadoop fs -rm <path> # 递归删除…
一.Hbase shell 1.Region信息观察 创建表指定命名空间 在创建表的时候可以选择创建到bigdata17这个namespace中,如何实现呢? 使用这种格式即可:'命名空间名称:表名' 针对default这个命名空间,在使用的时候可以省略不写 create 'bigdata17:t1','info','level' 此时使用list查看所有的表 如果只想查看bigdata17这个命名空间中的表,如何实现呢? 可以使用命令list_namespace_tables list_nam…
随着信息技术的高度发展,数据量越来越多,当一个操作系统管辖范围存储不下时,只能将数据分配到更多的磁盘中存储,但是数据分散在多台磁盘上非常不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,因此诞生了分布式文件系统.HDFS(Hadoop Distribute File System)是一种能运行在通用硬件上的分布式文件系统,具有高度容错的特点,适合部署在廉价的机器上. 由于hadoop1和hadoop2版本差异较大,本文以下部分如未标记特殊说明则默认指的是hadoop2版本 HDFS基本概…
HDFS是Hadoop应用程序使用的主要分布式存储.HDFS集群主要由管理文件系统元数据的NameNode和存储实际数据的DataNodes组成,HDFS架构图描述了NameNode,DataNode和客户端之间的基本交互.客户端联系NameNode进行文件元数据或文件修改,并直接使用DataNodes执行实际的文件I / O. Hadoop支持shell命令直接与HDFS进行交互,同时也支持JAVA API对HDFS的操作,例如,文件的创建.删除.上传.下载.重命名等. HDFS中的文件操作主…
本人一直在做NET开发,接触这行有6年了吧.毕业也快四年了(6年是因为大学就开始在一家小公司做门户网站,哈哈哈),之前一直秉承着学要精,就一直一门心思的在做NET(也是懒吧).最近的工作一直都和大数据清洗相关,想着要学学真正的大数据懒,不然都不好意思说自己是做数据清洗的. 目前关于hadoop的学习资料已经非常多了,写出来只当作是自己学习经历的笔记,如果顺便还能帮助下后面的学习者,那当然是再好不过了.所以 目前起的是我(小强)的学习之路. 以下是我现在的学习步骤,所以学到哪写到哪,不是系统学习的…
介绍 Hadoop分布式文件系统(HDFS)设计的运行环境是商用的硬件系统.他和现存的其他分布式文件系统存在很多相似点.不过HDFS和其他分布式文件系统的区别才是他的最大亮点,HDFS具有高容错的特性并且可以部署在廉价硬件,HDFS提供对应用数据的高吞吐访问,适用于数据量大的应用系统.HDFS放松了POSIX的要求以允许文件系统数据的流访问. 远景和目标 硬件故障 硬件故障是常态而不是异常情况,一个HDFS实例可能会使用成百上千的服务器,每个服务器保存整个文件系统的一部分数据,事实上,整个系统由…
HDFS的API操作 创建maven工程并导入jar包 注意 由于cdh版本的所有的软件涉及版权的问题,所以并没有将所有的jar包托管到maven仓库当中去,而是托管在了CDH自己的服务器上面,所以我们默认去maven的仓库下载不到,需要自己手动的添加repository去CDH仓库进行下载. 要用CDH的jar包,要先添加一个repository:https://www.cloudera.com/documentation/enterprise/release-notes/topics/cdh…
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上. Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算. Hadoop原本来自于谷歌一款名为MapReduce的编程模型包.谷歌的MapReduce框架可以把一个应用程序分解为许多并行计算指令,跨大量的计算节点运行非常…
MapReduce是什么 首先让我们来重温一下 hadoop 的四大组件: HDFS:分布式存储系统 MapReduce:分布式计算系统 YARN:hadoop 的资源调度系统 Common:以上三大组件的底层支撑组件,主要提供基础工具包和 RPC 框架等 MapReduce 是一个分布式运算程序的编程框架,是用户开发“基于 Hadoop 的数据分析应用” 的核心框架 MapReduce 核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布 式运算程序,并发运行在一个 Hadoo…
一.HDFS的相关基本概念 1.数据块 1.在HDFS中,文件诶切分成固定大小的数据块,默认大小为64MB(hadoop2.x以后是128M),也可以自己配置. 2.为何数据块如此大,因为数据传输时间超过寻到时间(高吞吐率). 3.文件的存储方式,按大小被切分成若干个block,存储在不同的节点上,默认情况下每个block有三个副本. 2.复制因子 就是一个block分为多少个副本,默认情况下是3个 3.fsimage文件作用: fsimage是元数据镜像文件(保存文件系统的目录树). 4.ed…
一.MapReduce概述 Hadoop MapReduce是一个分布式计算框架,用于编写批处理应用程序.编写好的程序可以提交到Hadoop集群上用于并行处理大规模的数据集. MapReduce作业通过将输入的数据集拆分为独立的块,这些块由map以并行的方式处理,框架对map的输出进行排序,然后输入到reduce中.MapReduce框架专门用于<key,value>键值对处理,它将作业的输入视为一组<key,value>对,并生成一组<key,value>对作为输出.…
ZooKeeper的使用一般都接触不到,因为平时工作甚少直接使用ZK.但是通过手动操作一下ZK,还是能对其中的门道了解各一二. shell 常用命令 help 查看所有支持的命令 [zk: localhost:2181(CONNECTED) 0] help ZooKeeper -server host:port cmd args stat path [watch] set path data [version] ls path [watch] delquota [-n|-b] path ls2…
流量统计项目案例 样本示例 需求 1. 统计每一个用户(手机号)所耗费的总上行流量.总下行流量,总流量 2. 得出上题结果的基础之上再加一个需求:将统计结果按照总流量倒序排序 3. 将流量汇总统计结果按照手机归属地不同省份输出到不同文件中 第一题 import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.h…
本文测试文本: tom 20 8000 nancy 22 8000 ketty 22 9000 stone 19 10000 green 19 11000 white 39 29000 socrates 30 40000    MapReduce中,根据key进行分区.排序.分组 MapReduce会按照基本类型对应的key进行排序,如int类型的IntWritable,long类型的LongWritable,Text类型,默认升序排序    为什么要自定义排序规则?现有需求,需要自定义key类…
MapReduce自带的分区器是HashPartitioner 原理:先对map输出的key求hash值,再模上reduce task个数,根据结果,决定此输出kv对,被匹配的reduce任务取走. 自定义分分区需要继承Partitioner,复写getpariton()方法 自定义分区类: 注意:map的输出是<K,V>键值对 其中int partitionIndex = dict.get(text.toString()),partitionIndex是获取K的值 附:被计算的的文本 Dea…
程序使用的测试文本数据: Dear River Dear River Bear Spark Car Dear Car Bear Car Dear Car River Car Spark Spark Dear Spark 1编写主要类 (1)Maper类 首先是自定义的Maper类代码 public class WordCountMap extends Mapper<LongWritable, Text, Text, IntWritable> { public void map(LongWrit…
一.使用HDFS FileSystem详解 HDFS依赖的第三方包: hadoop 1.x版本: commons-configuration-1.6.jar commons-lang-2.4.jar commons-loggin-1.1.1.jar hadoop-core-1.2.1.jar log4j-1.2.15.jar hadoop2.x版本: hadoop-mapreduce-client-core-2.2.0.jar hadoop-common-2.2.0.jar hadoop-map…
FSDateinputStream 对象 FileSystem对象中的open()方法返回的是FSDateInputStream对象,改类继承了java.io.DateInoutStream接口.支持随机访问 Seekable接口 支持在文件中找到指定位置,并提供一个查询当前位置相对于文件起始位置偏移量的查询方法. public interface Seekable{ //seek()可以移到文件中任意一个绝对位置 void seek(long pos); long getPos(); bool…