HDFS 초보 학습 의 총화
4990 단어 hdfs
HDFS 의 셸 이 HDFS 를 조작 하 는 많은 셸 명령 은 Liux 의 셸 명령 과 비슷 하 다.예 를 들 어 ls, cat 등등.그 중 HDFS 에 있 는 파일 을 지정 하려 면그럼 이렇게 써 도 돼 요.hdfs://192.168.1.1(hadop 클 러 스 터 ip): 9000 (기본 포트)/parent/child /parent/child .hdfs dfs -ls/ (모든 파일 목록/디 렉 터 리 아래) hdfs dfs -appendToFile
public class HdfsTest {
private FileSystem fileSystem;
@Before
public void getFileystem() throws Exception {
Configuration conf = new Configuration();
URI uri;
uri = new URI("hdfs://115.28.138.100:9000");
fileSystem = FileSystem.get(uri, conf, "hadoop");
}
@Test
public void testAdd() throws Exception {
fileSystem.mkdirs(new Path("hdfs://115.28.138.100:9000/niubia"));
}
@Test
public void testDelete() throws Exception{
fileSystem.delete(new Path("hdfs://115.28.138.100:9000/niubia"),false);
}
@Test
public void TestRead() throws Exception{
FSDataInputStream fsDataInputStream=fileSystem.open(new Path("hdfs://115.28.138.100:9000/a.txt"));
FileOutputStream fileOutputStream=new FileOutputStream("D:\\eclipseforee\\eclipse\\a.txt");
IOUtils.copy(fsDataInputStream, fileOutputStream);
}
}
4. 파일 읽 기 먼저 FileSystem 의 open 방법 을 호출 합 니 다. 사실은 Distributed FileSystem 의 open 방법 입 니 다.rpc 를 통 해 파일 의 첫 번 째 block 의 location 메 시 지 를 가 져 옵 니 다. 복사 본 수가 1 보다 많 기 때문에 여러 개의 location 매개 변수 가 되 돌 아 옵 니 다.그들 은 토폴로지 구조 에 따라 클 라 이언 트 와 가 까 운 것 을 앞 에 놓 았 다.이 어 스 트림 대상 인 DFSInputStream (FSDataInputStream 을 포 장 했 음) 을 되 돌려 줍 니 다.이렇게 하나씩 읽 으 면 클 라 이언 트 에 게 방 불 이라는 흐름 은 연속 적 인 것 과 같다.그 중에서 만약 에 어떤 블록 전송 이 실패 하면 두 번 째 클 라 이언 트 와 가 까 운 블록 을 가 져 와 서 읽 고 실패 블록 이 있 는 datanode 를 기록 하여 namenode 에 보고 합 니 다.나머지 block 은 읽 을 때 이 datanode 를 건 너 뜁 니 다.
5. 파일 쓰기
클 라 이언 트 가 hdfs 에 데 이 터 를 쓸 때 먼저 클 라 이언 트 에 블록 크기 의 데 이 터 를 캐 시 하고 이어서 namenode 에 게 알려 줍 니 다. namenode 는 블록 을 할당 합 니 다.이 어 클 라 이언 트 가 이 블록 이 있 는 datanode 를 찾 아 전송 합 니 다.복사 본 수가 1 보다 많 으 면 예 를 들 어 3 이면 클 라 이언 트 가 기록 한 datanode 는 블록 을 다른 datanode 에 기록 하고 이 datanode 는 이 작업 을 반복 하 며 복사 본 수가 3 일 때 중단 합 니 다.이 과정 에서 클 라 이언 트 는 항상 연결 을 유지 합 니 다.
6. 기타
HDFS 의 HA 는 쉽게 말 하면 두 개의 namenode, 즉 두 개의 클 러 스 터 가 datanode 를 공유 하지만 이 두 클 러 스 터 의 파일 은 공유 되 지 않 습 니 다.
HDFS 휴지통 은/user/사용자 이름/. Trash 에 있 습 니 다.
작은 문 서 는 어떻게 해결 합 니까?일반적으로 HDFS 는 작은 파일 을 저장 하 는 데 익숙 하지 않다. 작은 파일 이 많 을 수록 namenode 의 fsimage 가 크 고 fsimage 는 메모리 에 있 기 때문이다.그래서 작은 문서 문 제 를 해결 해 야 한다. 방법 은 프로그램 을 큰 파일 로 통합 하거나 archive (여러 개의 작은 파일 을 패키지 로 만 드 는 것) 또는 Sequence File, 예 를 들 어 HBase 의 compact 나 MR 의 Combine FileInput Format 등 을 제어 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
hadoop의hdfs 파일 작업은 hdfs에 파일을 업로드합니다텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.