实训笔记7.13

这篇具有很好参考价值的文章主要介绍了实训笔记7.13。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

7.13

一、座右铭

我的故事你说,我的文字我落,我值几两你定,我去何方我挑。

二、Hadoop的安装配置

九个核心文件的修改

三、Hadoop的HDFS的基本操作

3.1 HDFS的组成

NameNode

DataNode

SecondaryNameNode

3.2 HDFS的命令行操作方式

hdfs dfs -xxxx xxxxx

3.3 HDFS的JavaAPI操作方式

FileSystem类文章来源地址https://www.toymoban.com/news/detail-565493.html

四、代码示例

package com.sxuek;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

/**
 * HDFS查看某个路径下的所有文件和文件夹的信息
 */
public class Demo {
    public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(new URI("hdfs://192.168.68.101:9000"), conf, "root");
        /**
         *
         */
        FileStatus[] fileStatuses = fs.listStatus(new Path("/"));
        for (FileStatus fileStatus : fileStatuses) {
            System.out.println(fileStatus.getPath());
            System.out.println(fileStatus.getBlockSize());
            System.out.println(fileStatus.getPermission());
            System.out.println(fileStatus.getOwner());
            System.out.println(fileStatus.getGroup());
        }

    }
}

package com.sxuek;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

/**
 * HDFS的相关判断类型的JavaAPI操作
 */
public class Demo01 {
    public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(new URI("hdfs://192.168.68.101:9000"), conf, "root");
        boolean b = fs.isDirectory(new Path("/demo"));
        System.out.println(b);
        boolean b1 = fs.isFile(new Path("/demo"));
        System.out.println(b1);

        boolean exists = fs.exists(new Path("/a"));
        System.out.println(exists);
    }
}

package com.sxuek;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

/**
 * HDFS的创建相关的JavaAPI
 */
public class Demo02 {
    public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(new URI("hdfs://192.168.68.101:9000"), conf, "root");
        boolean mkdirs = fs.mkdirs(new Path("/a/b"));
        System.out.println(mkdirs);

        boolean newFile = fs.createNewFile(new Path("/a/a.txt"));
        System.out.println(newFile);

    }
}

package com.sxuek;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

/**
 * HDFS提供了一个可以借助JavaIO流读取数据的方法
 */
public class Demo03 {
    public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(new URI("hdfs://192.168.68.101:9000"), conf, "root");

        FSDataInputStream inputStream = fs.open(new Path("/jdk-8u371-linux-x64.tar.gz"));
        inputStream.seek(128*1024*1024);
        FileOutputStream fos = new FileOutputStream("c:/users/lenovo/desktop/block2");
        int read = 0;
        while ((read = inputStream.read()) != -1){
            fos.write(read);
        }
        System.out.println("第二个数据块读取完成");
    }
}

log4j.rootLogger=INFO,Console

# Console - 将日志打印到控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

到了这里,关于实训笔记7.13的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 实训笔记6.5

    我的故事你说,我的文字我落,我值几两你定,我去何方我挑。 Java基本语法 1、Java的安装和环境变量的配置 JDK、JRE、JVM的区别 环境变量的配置 2、Java的标识符、和保留字 包名:纯小写 类名:大驼峰命名法 方法名和属性名:小驼峰命名法 static final 修饰的属性名:全

    2024年02月08日
    浏览(43)
  • 实训笔记6.6

    我的故事你说,我的文字我落,我值几两你定,我去何方我挑。 1、方法和构造方法 1.1 Java方法 方法的声明和调用方式 方法的分类 方法的返回值问题 方法名 方法的形参列表问题 方法的重载问题 方法的JVM内存问题(方法的声明时机、方法的调用内存) 方法和方法之间可以相

    2024年02月08日
    浏览(34)
  • 粤嵌实训笔记二

    1、在Linux下,使用 gcc 来编译 gcc xxx.c -- 默认生成的可执行文件 名为 a.out gcc xxx.c -o xx -- 生成指定名字的可执行文件 xx 2、交叉编译 :在一个环境下编译生成 适用于 另一个环境下的可执行文件 3、为交叉编译工具创建软连接 sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-

    2024年02月03日
    浏览(40)
  • 实训笔记7.24

    1.1 涉及到一些框架核心组件 1.1.1 InputFotmat 1.1.2 MapTask 1.1. 3Partitioner 1.1.4 WritableComparable 1.1.5 Combiner(可选) 1.1.6 WritableComparator(GroupingComparator) 1.1.7 ReduceTask 1.1.8 OutputFormat SequenceFile文件是Hadoop提供的一种比较的特殊的文件,文件中存储的是key-value的二进制数据,而且SequenceFile文

    2024年02月16日
    浏览(36)
  • 实训笔记6.21

    我的故事你说,我的文字我落,我值几两你定,我去何方我挑。 2.1 JavaIO流 2.1.1 从三个角度分为六类 输入流和输出流 字节流和字符流 节点流和功能流 2.1.2 IO流的四大抽象基类 四大抽象基类 InputStream OutputStream Reader Writer InputStream、OutputStream: 所有格式的数据 Reader、Writer:

    2024年02月10日
    浏览(32)
  • 实训笔记7.19

    我的故事你说,我的文字我落,我值几两你定,我去何方我挑。 2.1 HDFS上传数据的流程 2.2 HDFS下载数据的流程 2.1~2.2:客户端Client 主节点NameNode 从节点DataNode 2.3 HDFS中NameNode和SecondaryNameNode工作机制(涉及到HDFS的元数据管理操作) 一个概念和两个文件:元数据、edits编辑日志文

    2024年02月16日
    浏览(34)
  • 实训笔记8.22

    1.1 DDL 1.1.1 Hive中数据表的分类问题 Hive中数据表的分类只是用来告诉我们Hive底层在HDFS上存储的文件的规则和规范 1.1.2 特殊的数据类型 array、map、struct Hive数据表可以指定底层的存储格式的分隔符问题row format 1.2 DML Hive中默认不支持批量的删除和更新操作 增加数据 装载数据 追

    2024年02月11日
    浏览(33)
  • 实训笔记6.26

    我的故事你说,我的文字我落,我值几两你定,我去何方我挑。 2.1 Java多线程 2.1.1 一些概念知识 程序、进程、线程 单核CPU和多核CPU 并行和并发 2.1.2 多线程的创建方式 继承Thread类,重写run方法 实现Runnable接口,重写run方法 实现Callable接口,重写call方法 使用线程池 缓存线程

    2024年02月11日
    浏览(35)
  • 实训笔记9.4

    git官网 1.1 建立仓库 git init 1.2 添加到暂存区 git add 文件名称 git add . 1.3 提交到历史区 git commit -m \\\"提交信息\\\" 1.4 查看 1.4.1 查看当前版本库状态 git status 1.4.2 查看版本日志信息 git log git log --oneline 单行模式 git log --oneline --graph ——单行带图形 1.4.3 查看版本的变更历史 git reflog

    2024年02月09日
    浏览(34)
  • 实训笔记8.25

    将海量的数据通过某种技术采集到大数据环境中进行存储和管理,为后期的大数据处理分析做准备 常见的数据:网站/软件的运行日志、记录的日志,软件的结构化数据、爬虫数据、传感器采集数据… Flume是apache开源的顶尖项目,专门是采集和聚合海量的日志数据。但是随着

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包