±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcnblogs,ÎÄÕÂÖ÷Òª½éÉÜÁËʲôÊÇHDFS£¬ÃüÁîÐнӿڣ¬Java½Ó¿Ú£¬Êý¾ÝÁ÷£¬Í¨¹ýFlumeºÍSqoopµ¼ÈëÊý¾Ý£¬Í¨¹ýdistcp²¢Ðи´ÖƵÈÏà¹Ø¡£
|
|
ѧϰÍêHadoopȨÍþÖ¸ÄÏÓÐÒ»¶Îʱ¼äÁË£¬ÏÖÔÚÔٻع˺Í×ܽáÒ»ÏÂHDFSµÄ֪ʶµã¡£
1¡¢HDFSµÄÉè¼Æ
HDFSÊÇʲô£ºHDFS¼´Hadoop·Ö²¼Ê½Îļþϵͳ£¨Hadoop Distributed Filesystem£©£¬ÒÔÁ÷ʽÊý¾Ý·ÃÎÊģʽÀ´´æ´¢³¬´óÎļþ£¬ÔËÐÐÓÚÉÌÓÃÓ²¼þ¼¯ÈºÉÏ£¬ÊǹÜÀíÍøÂçÖпç¶ą̀¼ÆËã»ú´æ´¢µÄÎļþϵͳ¡£
HDFS²»ÊʺÏÓÃÔÚ£ºÒªÇóµÍʱ¼äÑÓ³ÙÊý¾Ý·ÃÎʵÄÓ¦Ó㬴洢´óÁ¿µÄСÎļþ£¬¶àÓû§Ð´È룬ÈÎÒâÐÞ¸ÄÎļþ¡£
2¡¢HDFSµÄ¸ÅÄî
HDFSÊý¾Ý¿é£ºHDFSÉϵÄÎļþ±»»®·ÖΪ¿é´óСµÄ¶à¸ö·Ö¿é£¬×÷Ϊ¶ÀÁ¢µÄ´æ´¢µ¥Ôª£¬³ÆÎªÊý¾Ý¿é£¬Ä¬ÈÏ´óСÊÇ64MB¡£
ʹÓÃÊý¾Ý¿éµÄºÃ´¦ÊÇ£º
Ò»¸öÎļþµÄ´óС¿ÉÒÔ´óÓÚÍøÂçÖÐÈÎÒâÒ»¸ö´ÅÅ̵ÄÈÝÁ¿¡£ÎļþµÄËùÓп鲻ÐèÒª´æ´¢ÔÚͬһ¸ö´ÅÅÌÉÏ£¬Òò´ËËüÃÇ¿ÉÒÔÀûÓü¯ÈºÉϵÄÈÎÒâÒ»¸ö´ÅÅ̽øÐд洢¡£
¼ò»¯ÁË´æ´¢×ÓϵͳµÄÉè¼Æ£¬½«´æ´¢×Óϵͳ¿ØÖƵ¥ÔªÉèÖÃΪ¿é£¬¿É¼ò»¯´æ´¢¹ÜÀí£¬Í¬Ê±ÔªÊý¾Ý¾Í²»ÐèÒªºÍ¿éһͬ´æ´¢£¬ÓÃÒ»¸öµ¥¶ÀµÄϵͳ¾Í¿ÉÒÔ¹ÜÀíÕâЩ¿éµÄÔªÊý¾Ý¡£
Êý¾Ý¿éÊʺÏÓÃÓÚÊý¾Ý±¸·Ý½ø¶øÌṩÊý¾ÝÈÝ´íÄÜÁ¦ºÍÌá¸ß¿ÉÓÃÐÔ¡£
²é¿´¿éÐÅÏ¢


HDFSµÄÈý¸ö½Úµã£ºNamenode£¬Datanode£¬Secondary Namenode
Namenode£ºHDFSµÄÊØ»¤½ø³Ì£¬ÓÃÀ´¹ÜÀíÎļþϵͳµÄÃüÃû¿Õ¼ä£¬¸ºÔð¼Ç¼ÎļþÊÇÈçºÎ·Ö¸î³ÉÊý¾Ý¿é£¬ÒÔ¼°ÕâЩÊý¾Ý¿é·Ö±ð±»´æ´¢µ½ÄÇЩÊý¾Ý½ÚµãÉÏ£¬ËüµÄÖ÷Òª¹¦ÄÜÊǶÔÄÚ´æ¼°IO½øÐм¯ÖйÜÀí¡£
Datanode£ºÎļþϵͳµÄ¹¤×÷½Úµã£¬¸ù¾ÝÐèÒª´æ´¢ºÍ¼ìË÷Êý¾Ý¿é£¬²¢ÇÒ¶¨ÆÚÏònamenode·¢ËÍËûÃÇËù´æ´¢µÄ¿éµÄÁÐ±í¡£
Secondary Namenode£º¸¨Öúºǫ́³ÌÐò£¬ÓëNameNode½øÐÐͨÐÅ£¬ÒԱ㶨ÆÚ±£´æHDFSÔªÊý¾ÝµÄ¿ìÕÕ¡£
HDFS Federation£¨Áª°îHDFS£©£º
ͨ¹ýÌí¼ÓnamenodeʵÏÖÀ©Õ¹£¬ÆäÖÐÿ¸önamenode¹ÜÀíÎļþϵͳÃüÃû¿Õ¼äÖеÄÒ»²¿·Ö¡£Ã¿¸önamenodeά»¤Ò»¸öÃüÃû¿Õ¼ä¾í£¬°üÀ¨ÃüÃû¿Õ¼äµÄÔ´Êý¾ÝºÍ¸ÃÃüÃû¿Õ¼äϵÄÎļþµÄËùÓÐÊý¾Ý¿éµÄÊý¾Ý¿é³Ø¡£
HDFSµÄ¸ß¿ÉÓÃÐÔ£¨High-Availability£©
HadoopµÄ2.x·¢Ðа汾ÔÚHDFSÖÐÔö¼ÓÁ˶Ը߿ÉÓÃÐÔ£¨HA£©µÄÖ§³Ö¡£ÔÚÕâһʵÏÖÖУ¬ÅäÖÃÁËÒ»¶Ô»î¶¯-±¸Óã¨active-standby£©namenode¡£µ±»î¶¯namenodeʧЧ£¬±¸ÓÃnamenode¾Í»á½Ó¹ÜËüµÄÈÎÎñ²¢¿ªÊ¼·þÎñÓÚÀ´×Ô¿Í»§¶ËµÄÇëÇ󣬲»»áÓÐÃ÷ÏÔµÄÖжϡ£
¼Ü¹¹µÄʵÏÖ°üÀ¨£º
namenodeÖ®¼äͨ¹ý¸ß¿ÉÓõĹ²Ïí´æ´¢ÊµÏÖ±à¼ÈÕÖ¾µÄ¹²Ïí¡£
datanodeͬʱÏòÁ½¸önamenode·¢ËÍÊý¾Ý¿é´¦Àí±¨¸æ¡£
¿Í»§¶ËʹÓÃÌØ¶¨µÄ»úÖÆÀ´´¦ÀínamenodeµÄʧЧÎÊÌ⣬ÕâÒ»»úÖÆ¶ÔÓû§ÊÇ͸Ã÷µÄ¡£
¹ÊÕÏ×ªÒÆ¿ØÖÆÆ÷£º¹ÜÀí׎«»î¶¯namenode×ªÒÆ¸ø±¸ÓÃnamenodeµÄת»»¹ý³Ì£¬»ùÓÚZooKeeper²¢ÓÉ´ËÈ·±£ÓÐÇÒ½öÓÐÒ»¸ö»î¶¯namenode¡£Ã¿Ò»¸önamenodeÔËÐÐ×ÅÒ»¸öÇáÁ¿¼¶µÄ¹ÊÕÏ×ªÒÆ¿ØÖÆÆ÷£¬Æä¹¤×÷¾ÍÊǼàÊÓËÞÖ÷namenodeÊÇ·ñʧЧ²¢ÔÚnamenodeʧЧʱ½øÐйÊÕÏÇл»¡£
3¡¢ÃüÁîÐнӿÚ
Á½¸öÊôÐÔÏ fs.default.name ÓÃÀ´ÉèÖÃHadoopµÄĬÈÏÎļþϵͳ£¬ÉèÖÃhdfs URLÔòÊÇÅäÖÃHDFSΪHadoopµÄĬÈÏÎļþϵͳ¡£dfs.replication
ÉèÖÃÎļþϵͳ¿éµÄ¸±±¾¸öÊý
ÎļþϵͳµÄ»ù±¾²Ù×÷£ºhadoop fs -help¿ÉÒÔ»ñÈ¡ËùÓеÄÃüÁî¼°Æä½âÊÍ
³£ÓõÄÓУº
hadoop fs -ls / ÁгöhdfsÎļþϵͳ¸ùĿ¼ÏµÄĿ¼ºÍÎļþ
hadoop fs -copyFromLocal <local path> <hdfs
path> ´Ó±¾µØÎļþϵͳ½«Ò»¸öÎļþ¸´ÖƵ½HDFS
hadoop fs -rm -r <hdfs dir or file> ɾ³ýÎļþ»òÎļþ¼Ð¼°Îļþ¼ÐϵÄÎļþ
hadoop fs -mkdir <hdfs dir>ÔÚhdfsÖÐн¨Îļþ¼Ð
HDFSµÄÎļþ·ÃÎÊȨÏÞ£ºÖ»¶ÁȨÏÞ£¨r£©£¬Ð´ÈëȨÏÞ£¨w£©£¬¿ÉÖ´ÐÐȨÏÞ£¨x£©
4¡¢HadoopÎļþϵͳ
HadoopÓÐÒ»¸ö³éÏóµÄÎļþϵͳ¸ÅÄHDFSÖ»ÊÇÆäÖеÄÒ»¸öʵÏÖ¡£Java³éÏó½Ó¿Úorg.apache.hadoop.fs.FileSystem¶¨ÒåÁËHadoopÖеÄÒ»¸öÎļþϵͳ½Ó¿Ú¡£¸Ã³éÏóÀàʵÏÖHDFSµÄ¾ßÌåʵÏÖÊÇ
hdfs.DistributedFileSystem
5¡¢Java½Ó¿Ú
×î¼òµ¥µÄ´ÓHadoop URL¶ÁÈ¡Êý¾Ý £¨ÕâÀïÔÚEclipseÉÏÁ¬½ÓHDFS±àÒëÔËÐУ©
package filesystem;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;
public class URLCat {
static {
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
public static void main(String[] args) throws
MalformedURLException, IOException {
InputStream in = null;
String input = "hdfs://192.168.92.138:9000/user/test.txt";
try {
in = new URL(input).openStream();
IOUtils.copyBytes(in, System.out, 4096,false);
}finally {
IOUtils.closeStream(in);
}
}
} |
ÕâÀïµ÷ÓÃHadoopµÄIOUtilsÀ࣬ÔÚÊäÈëÁ÷ºÍÊä³öÁ÷Ö®¼ä¸´ÖÆÊý¾Ý£¨inºÍSystem.out£©×îºóÁ½¸ö²ÎÊýÓÃÓÚµÚÒ»¸öÉèÖø´ÖƵĻº³åÇø´óС£¬µÚ¶þ¸öÉèÖýáÊøºóÊÇ·ñ¹Ø±ÕÊý¾ÝÁ÷¡£
»¹¿ÉÒÔͨ¹ýFileSystem API¶ÁÈ¡Êý¾Ý
´úÂëÈçÏ£º
package filesystem;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class FileSystemCat {
public static void main(String[] args) throws
IOException {
String uri = "hdfs://192.168.92.136:9000/user/test.txt";
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(uri),conf);
InputStream in = null;
try {
in = fs.open(new Path(uri));
IOUtils.copyBytes(in, System.out, 1024,false);
}finally {
IOUtils.closeStream(in);
}
}
} |
ÕâÀïµ÷ÓÃopen()º¯ÊýÀ´»ñÈ¡ÎļþµÄÊäÈëÁ÷£¬FileSystemµÄget()·½·¨»ñÈ¡FileSystemʵÀý¡£
ʹÓÃFileSystem APIдÈëÊý¾Ý
´úÂëÈçÏ£º
package filesystem;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.util.Progressable;
public class FileCopyWithProgress {
public static void main(String[] args) throws
Exception {
String localSrc = "E:\\share\\input\\2007_12_1.txt";
String dst = "hdfs://192.168.92.136:9000/user/logs/2008_10_2.txt";
InputStream in = new BufferedInputStream(new
FileInputStream(localSrc));
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(dst),conf);
OutputStream out = fs.create(new Path(dst),new
Progressable() {
public void progress() {
System.out.print("*");
}
});
IOUtils.copyBytes(in, out, 1024,true);
}
} |
FileSystemµÄcreate()·½·¨ÓÃÓÚн¨Îļþ,·µ»ØFSDataOutputStream¶ÔÏó¡£
Progressable()ÓÃÓÚ´«µÝ»Øµô´°¿Ú£¬¿ÉÒÔÓÃÀ´°ÑÊý¾ÝдÈëdatanodeµÄ½ø¶È֪ͨ¸øÓ¦Óá£
ʹÓÃFileSystem APIɾ³ýÊý¾Ý
´úÂëÈçÏ£º
package filesystem;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class FileDelete {
public static void main(String[] args) throws
Exception{
String uri = "hdfs://192.168.92.136:9000/user/1400.txt";
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(uri),conf);
fs.delete(new Path(uri));
}
} |
ʹÓÃdelete()·½·¨À´ÓÀ¾ÃÐÔɾ³ýÎļþ»òĿ¼¡£
FileSystemµÄÆäËüһЩ·½·¨£º
public boolean mkdirs(Path f) throws IOException
ÓÃÀ´´´½¨Ä¿Â¼£¬´´½¨³É¹¦·µ»Øtrue¡£
public FileStatus getFileStates(Path f) throws FIleNotFoundException
ÓÃÀ´»ñÈ¡Îļþ»òĿ¼µÄFileStatus¶ÔÏó¡£
public FileStatus[ ] listStatus(Path f)throws IOException
ÁгöĿ¼ÖеÄÄÚÈÝ
public FileStatus[ ] globStatu(Path pathPattern) throws
IOException ·µ»ØÓëÆä·¾¶Æ¥ÅäÓÚÖ¸¶¨Ä£Ê½µÄËùÓÐÎļþµÄFileStatus¶ÔÏóÊý×飬²¢°´Â·¾¶ÅÅÐò
6¡¢Êý¾ÝÁ÷
HDFS¶ÁÈ¡Îļþ¹ý³Ì£º

¹ý³ÌÃèÊö£º
£¨1£©¿Í»§¶Ëµ÷ÓÃFileSyste¶ÔÏóµÄopen()·½·¨ÔÚ·Ö²¼Ê½ÎļþϵͳÖдò¿ªÒª¶ÁÈ¡µÄÎļþ¡£
£¨2£©·Ö²¼Ê½Îļþϵͳͨ¹ýʹÓÃRPC£¨Ô¶³Ì¹ý³Ìµ÷Óã©À´µ÷ÓÃnamenode£¬È·¶¨ÎļþÆðʼ¿éµÄλÖá£
£¨3£©·Ö²¼Ê½ÎļþϵͳµÄDistributedFileSystemÀà·µ»ØÒ»¸öÖ§³ÖÎļþ¶¨Î»µÄÊäÈëÁ÷FSDataInputStream¶ÔÏó£¬FSDataInputStream¶ÔÏó½Ó×Å·â×°DFSInputStream¶ÔÏ󣨴洢×ÅÎļþÆðʼ¼¸¸ö¿éµÄdatanodeµØÖ·£©£¬¿Í»§¶Ë¶ÔÕâ¸öÊäÈëÁ÷µ÷ÓÃread()·½·¨¡£
£¨4£©DFSInputStreamÁ¬½Ó¾àÀë×î½üµÄdatanode£¬Í¨¹ý·´¸´µ÷ÓÃread·½·¨£¬½«Êý¾Ý´Ódatanode´«Êäµ½¿Í»§¶Ë¡£
£¨5£© µ½´ï¿éµÄÄ©¶Ëʱ£¬DFSInputStream¹Ø±ÕÓë¸ÃdatanodeµÄÁ¬½Ó£¬Ñ°ÕÒÏÂÒ»¸ö¿éµÄ×î¼Ñdatanode¡£
£¨6£©¿Í»§¶ËÍê³É¶ÁÈ¡£¬¶ÔFSDataInputStreamµ÷ÓÃclose()·½·¨¹Ø±ÕÁ¬½Ó¡£
HDFSÎļþдÈëµÄ¹ý³Ì£º

¹ý³ÌÃèÊö£º
дÎļþ¹ý³Ì·ÖÎö£º
£¨1£© ¿Í»§¶Ëͨ¹ý¶ÔDistributedFileSystem¶ÔÏóµ÷ÓÃcreate()º¯ÊýÀ´Ð½¨Îļþ¡£
£¨2£© ·Ö²¼Ê½Îļþϵͳ¶Ônamenod´´½¨Ò»¸öRPCµ÷Óã¬ÔÚÎļþϵͳµÄÃüÃû¿Õ¼äÖÐн¨Ò»¸öÎļþ¡£
£¨3£©Namenode¶Ôн¨Îļþ½øÐмì²éÎÞÎóºó£¬·Ö²¼Ê½Îļþϵͳ·µ»Ø¸ø¿Í»§¶ËÒ»¸öFSDataOutputStream¶ÔÏó£¬FSDataOutputStream¶ÔÏó·â×°Ò»¸öDFSoutPutstream¶ÔÏ󣬸ºÔð´¦ÀínamenodeºÍdatanodeÖ®¼äµÄͨÐÅ£¬¿Í»§¶Ë¿ªÊ¼Ð´ÈëÊý¾Ý¡£
£¨4£©FSDataOutputStream½«Êý¾Ý·Ö³ÉÒ»¸öÒ»¸öµÄÊý¾Ý°ü£¬Ð´ÈëÄÚ²¿¶ÓÁС°Êý¾Ý¶ÓÁС±£¬DataStreamer¸ºÔð½«Êý¾Ý°üÒÀ´ÎÁ÷ʽ´«Êäµ½ÓÉÒ»×énamenode¹¹³ÉµÄ¹ÜÏßÖС£
£¨5£©DFSOutputStreamά»¤×ÅÈ·È϶ÓÁÐÀ´µÈ´ýdatanodeÊÕµ½È·ÈÏ»ØÖ´£¬ÊÕµ½¹ÜµÀÖÐËùÓÐdatanodeÈ·ÈϺó£¬Êý¾Ý°ü´ÓÈ·È϶ÓÁÐɾ³ý¡£
£¨6£©¿Í»§¶ËÍê³ÉÊý¾ÝµÄдÈ룬¶ÔÊý¾ÝÁ÷µ÷ÓÃclose()·½·¨¡£
£¨7£©namenodeÈ·ÈÏÍê³É¡£
namenodeÈçºÎÑ¡ÔñÔÚÄǸödatanode´æ´¢¸´±¾£¿
ÐèÒª¶Ô¿É¿¿ÐÔ£¬Ð´Èë´ø¿íºÍ¶ÁÈ¡´ø¿í½øÐÐȨºâ¡£Ä¬Èϲ¼¾ÖÊÇ£ºÔÚÔËÐпͻ§¶ËµÄ½ÚµãÉϷŵÚÒ»¸ö¸´±¾£¨Èç¹û¿Í»§¶ËÔËÐÐÔÚ¼¯ÈºÖ®Í⣬ÔòÔÚ±ÜÃâÌôÑ¡´æ´¢Ì«Âú»ò̫æµÄ½ÚµãµÄÇé¿öÏÂËæ»úÑ¡ÔñÒ»¸ö½Úµã¡££©µÚ¶þ¸ö¸´±¾·ÅÔÚÓëµÚÒ»¸ö²»Í¬ÇÒËæ»úÁíÍâÑ¡ÔñµÄ»ú¼ÜÖнڵãÉÏ¡£µÚÈý¸ö¸´±¾ÓëµÚ¶þ¸ö¸´±¾·ÅÔÚͬһ¸ö»ú¼ÜÉÏ£¬ÇÒËæ»úÑ¡ÔñÁíÒ»¸ö½Úµã¡£ÆäËü¸´±¾·ÅÔÚ¼¯ÈºÖÐËæ»úÑ¡ÔñµÄ½ÚµãÖУ¬¾¡Á¿±ÜÃâÔÚͬһ¸ö»ú¼ÜÉÏ·ÅÌ«¶à¸´±¾¡£
Ò»¸ö¸´±¾¸öÊýΪ3µÄ¼¯Èº·ÅÖÃλÖÃÈçͼ£º

HDFSÒ»ÖÂÐÔ£ºHDFSÔÚдÊý¾ÝÎñ±ØÒª±£Ö¤Êý¾ÝµÄÒ»ÖÂÐÔÓë³Ö¾ÃÐÔ£¬Ä¿Ç°HDFSÌṩµÄÁ½ÖÖÁ½¸ö±£Ö¤Êý¾ÝÒ»ÖÂÐԵķ½·¨
hsync()·½·¨ºÍhflush()·½·¨¡£
hflush: ±£Ö¤flushµÄÊý¾Ý±»ÐµÄreader¶Áµ½£¬µ«ÊDz»±£Ö¤Êý¾Ý±»datanode³Ö¾Ã»¯¡£
hsync: Óëhflush¼¸ºõÒ»Ñù£¬²»Í¬µÄÊÇhsync±£Ö¤Êý¾Ý±»datanode³Ö¾Ã»¯¡£
7¡¢Í¨¹ýFlumeºÍSqoopµ¼ÈëÊý¾Ý
¿ÉÒÔ¿¼ÂÇʹÓÃһЩÏֳɵŤ¾ß½«Êý¾Ýµ¼Èë¡£
Apache FluemÊÇÒ»¸ö½«´ó¹æÄ£Á÷Êý¾Ýµ¼ÈëHDFSµÄ¹¤¾ß¡£µäÐÍÓ¦ÓÃÊÇ´ÓÁíÍâÒ»¸öϵͳÖÐÊÕ¼¯ÈÕÖ¾Êý¾Ý²¢ÊµÏÖÔÚHDFSÖеľۼ¯²Ù×÷ÒÔ±ãÓÃÓÚºóÆÚµÄ·ÖÎö²Ù×÷¡£
Apache SqoopÓÃÀ´½«Êý¾Ý´Ó½á¹¹»¯´æ´¢É豸ÅúÁ¿µ¼ÈëHDFSÖУ¬ÀýÈç¹ØÏµÊý¾Ý¿â¡£SqoopÓ¦Óó¡¾°ÊÇ×éÖ¯½«°×ÌìÉú²úµÄÊý¾Ý¿âÖеÄÊý¾ÝÔÚÍí¼äµ¼ÈëHiveÊý¾Ý²Ö¿âÖнøÐзÖÎö¡£
8¡¢Í¨¹ýdistcp²¢Ðи´ÖÆ
distcp·Ö²¼Ê½¸´ÖƳÌÐò£¬Ëü´ÓHadoopÎļþϵͳ¼ä¸´ÖÆ´óÁ¿Êý¾Ý£¬Ò²¿ÉÒÔ½«´óÁ¿µÄÊý¾Ý¸´ÖƵ½Hadoop¡£
µäÐÍÓ¦Óó¡¾°ÊÇÔÚHDFS¼¯ÈºÖ®¼ä´«ÊäÊý¾Ý¡£
% hadoop distcp hdfs://namenode1/foo hdfs://namenode2/bar
9¡¢Hadoop´æµµ
HDFSÖÐÿ¸öÎļþ¾ù°´¿é·½Ê½´æ´¢£¬Ã¿¸ö¿éµÄÔªÊý¾Ý´æ´¢ÔÚnamenodeµÄÄÚ´æÖУ¬Òò´ËHadoop´æ´¢Ð¡Îļþ»á·Ç³£µÍЧ¡£ÒòΪ´óÁ¿µÄСÎļþ»áºÄ¾¡namenodeÖеĴ󲿷ÖÄÚ´æ¡£HadoopµÄ´æµµÎļþ»òHARÎļþ£¬½«Îļþ´æÈëHDFS¿é£¬¼õÉÙnamenodeÄÚ´æÊ¹Óã¬ÔÊÐí¶ÔÎļþ½øÐÐ͸Ã÷µØ·ÃÎÊ¡£
Hadoop´æµµÊÇͨ¹ýarchive¹¤¾ß¸ù¾ÝÒ»×éÎļþ´´½¨¶øÀ´µÄ¡£ÔËÐÐarchiveÖ¸Á
% hadoop archive -archiveName files.har /my/files
/my
ÁгöHARÎļþµÄ×é³É²¿·Ö£º
% hadoop fs -ls /my/files.har
files.harÊÇ´æµµÎļþµÄÃû³Æ£¬Õâ¾äÖ¸Áî´æ´¢ HDFSÏÂ/my/filesÖеÄÎļþ¡£
HARÎļþµÄ×é³É²¿·Ö£ºÁ½¸öË÷ÒýÎļþÒÔ¼°²¿·ÖÎļþµÄ¼¯ºÏ¡£
´æµµµÄ²»×㣺
н¨Ò»¸ö´æµµÎļþ»á´´½¨ÔʼÎļþµÄÒ»¸ö¸±±¾£¬Òò´ËÐèÒªÓëÒª´æµµµÄÎļþÈÝÁ¿Ïàͬ´óСµÄ´ÅÅ̿ռ䡣
Ò»µ©´æµµÎļþ£¬²»ÄÜ´ÓÖÐÔö¼Ó»òɾ³ýÎļþ¡£
|