导语
  在之前的分享中我们知道HDFS有三种模式:单机模式、伪集群模式和集群模式。

文章目录

  • HDFS 配置和启动
  • 启动 HDFS
  • HDFS 使用
    • HDFS Shell
    • HDFS API

单机模式:Hadoop 仅作为库存在,可以在单计算机上执行 MapReduce 任务,仅用于开发者搭建学习和试验环境。

伪集群模式:此模式 Hadoop 将以守护进程的形式在单机运行,一般用于开发者搭建学习和试验环境。

集群模式:此模式是 Hadoop 的生产环境模式,也就是说这才是 Hadoop 真正使用的模式,用于提供生产级服务。

HDFS 配置和启动

  HDFS 和数据库相似,是以守护进程的方式启动的。使用 HDFS 需要用 HDFS 客户端通过网络 (套接字) 连接到 HDFS 服务器实现文件系统的使用。

  在Docker Hadoop环境搭建 博客中,我们已经配置好了 Hadoop 的基础环境,容器名为 hadoop_single。如果你上次已经关闭了该容器或者关闭了计算机导致容器关闭,请启动并进入该容器。

  进入该容器后,我们确认一下 Hadoop 是否存在:

hadoop version

  可以安装一个小工具用来修改密码方便

yum install -y passwd sudo

  设置 hadoop 用户密码

passwd hadoop

  修改 hadoop 安装目录所有人为 hadoop 用户

chown -R hadoop /usr/local/hadoop

  然后用文本编辑器修改 /etc/sudoers 文件,在

root    ALL=(ALL)       ALL

  行,之后添加

hadoop  ALL=(ALL)       ALL

  然后退出容器。关闭并提交容器 hadoop_single 到镜像 hadoop_proto:

docker stop hadoop_single
docker commit hadoop_single hadoop_proto

  创建新容器 hdfs_single :

docker run -d --name=hdfs_single --privileged hadoop_proto /usr/sbin/init

启动 HDFS

  现在进入刚建立的容器:

docker exec -it hdfs_single su hadoop

  现在应该是 hadoop 用户:

whoami

  生成 SSH 密钥:

ssh-keygen -t rsa

  一直按回车键就可以了,然后将生成的密钥添加到信任列表

ssh-copy-id hadoop@172.17.0.2

  查看容器 IP 地址:

ip addr | grep 172

  在启动 HDFS 以前我们对其进行一些简单配置,Hadoop 配置文件全部储存在安装目录下的 etc/hadoop 子目录下,所以我们可以进入此目录:

cd $HADOOP_HOME/etc/hadoop

  这里我们修改两个文件:core-site.xml 和 hdfs-site.xml

  在 core-site.xml 中,我们在 标签下添加属性:

<property><name>fs.defaultFS</name><value>hdfs://<你的IP>:9000</value>
</property>

  在 hdfs-site.xml 中的 标签下添加属性:

<property><name>dfs.replication</name><value>1</value>
</property>

  格式化文件结构:

hdfs namenode -format

  然后启动 HDFS:

start-dfs.sh

  到此为止,HDFS 守护进程已经建立,由于 HDFS 本身具备 HTTP 面板,我们可以通过浏览器访问http://你的容器IP:9870/来查看 HDFS 面板以及详细信息:

  如果出现这个页面,说明 HDFS 配置并启动成功。

  注意:如果你使用的不是含有桌面环境的 Linux 系统,没有浏览器,可以跳过这个步骤。如果你使用的是 Windows 系统但是没有使用 Docker Desktop ,那么这个步骤对你来说将难以实现。

HDFS 使用

HDFS Shell

  回到 hdfs_single 容器,以下命令将用于操作 HDFS:

# 显示根目录 / 下的文件和子目录,绝对路径
hadoop fs -ls /
# 新建文件夹,绝对路径
hadoop fs -mkdir /hello
# 上传文件
hadoop fs -put hello.txt /hello/
# 下载文件
hadoop fs -get /hello/hello.txt
# 输出文件内容
hadoop fs -cat /hello/hello.txt

  HDFS 最基础的命令如上所述,除此之外还有许多其他传统文件系统所支持的操作。

HDFS API

  HDFS 已经被很多的后端平台所支持,目前官方在发行版中包含了 C/C++ 和 Java 的编程接口。此外,node.js 和 Python 语言的包管理器也支持导入 HDFS 的客户端。

   <dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>3.1.4</version></dependency>
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
public class Application {public static void main(String[] args) {try {// 配置连接地址Configuration conf = new Configuration();conf.set("fs.defaultFS", "hdfs://172.17.0.2:9000");FileSystem fs = FileSystem.get(conf);// 打开文件并读取输出Path hello = new Path("/hello/hello.txt");FSDataInputStream ins = fs.open(hello);int ch = ins.read();while (ch != -1) {System.out.print((char)ch);ch = ins.read();}System.out.println();} catch (IOException ioe) {ioe.printStackTrace();}}
}

大数据-HDFS 配置与使用相关推荐

  1. 大数据——HDFS的常用命令

    标题大数据--HDFS的常用命令 hdfs常用命令行: (1)查看帮助hdfs dfs -help (2)查看当前目录信息hdfs dfs -ls /(3)上传文件hdfs dfs -put /本地路 ...

  2. 彻底理解大数据 HDFS 分布式文件系统,这篇就够了

    来源:https://www.cnblogs.com/cainiao-chuanqi/p/11420490.html 文件系统的基本概述 文件系统定义:文件系统是一种存储和组织计算机数据的方法,它使得 ...

  3. 大数据-HDFS文件系统是什么

    导语   Hadoop中附带了一个HDFS(Hadoop分布式文件系统)的分布式文件系统,专门用来存储超级大文件使用,它为整个的Hadoop应用生态圈提供了基础的文件存储功能. 文档目录 HDFS 特 ...

  4. 大数据HDFS凭啥能存下百亿数据?

    前言 大家平时经常用的百度网盘存放电影.照片.文档等,那有想过百度网盘是如何存下那么多文件的呢?难到是用一台计算机器存的吗?那得多大磁盘啊?显然不是的,那本文就带大家揭秘. 分布式存储思想 既然一台机 ...

  5. hdfs 备份数配置_大数据||HDFS HA配置详解

    根据HA架构图,规划HA的分布式集群服务器 HA集群规划 配置参考图 根据官方文档配置HA 部分说明 Architecture 在典型的ha集群中,两台独立的机器被配置为namenode.在任何时间点 ...

  6. 大数据 - HDFS单机环境搭建(一)

    一.服务器 操作系统:CentOS Linux release 7.6.1810 (Core) 二.JAVA JDK1.8:oraclce官网下载jdk-8u261-linux-x64.tar.gz ...

  7. 【博学谷学习记录】超强总结,用心分享 | 狂野大数据HDFS的动态扩容和缩容~个人学习复习记录~PART-05

    概念 1.在不影响当前集群正常运行的情况下,对集群的主机的数量进行增加或者减少 一.操作步骤-动态上线 1.准备一台机器node4,该机器要满足以下条件 IP:194.168.88.164 设置主机名 ...

  8. 【博学谷学习记录】超强总结,用心分享 | 狂野大数据HDFS的JavaAPI操作~个人学习复习记录~PART-03

    一.配置 需要先在Windows配置对应版本的hadoop环境 二.涉及的主要类 Configuration:该类的对象封装了客户端或服务器的配置 FileSystem:该类的对象是一个文件系统对象, ...

  9. 大数据HDFS应用开发

    目录 1 HDFS 的 Shell 操作(开发重点) 1.1 HDFS读写流程 2 HDFS的常见Shell操作 2.1 ls:查询指定路径信息 2.2 put:从本地上传文件 2.3 cat:查看H ...

最新文章

  1. C++ 值传递、指针传递、引用传递
  2. WindowsService服务程序开发
  3. Qt文档阅读笔记-Timer QML Type 官方解析与实例
  4. 第十三次CCF CSP认证(2018年3月)真题URL映射
  5. 百度文库文档下载操作流程
  6. python列表偏移量为什么可以有-1_Python颜色条标记的偏移量为+1,而不是指定的值...
  7. 电脑tf卡检测不到_为什么电脑不识别TF卡?
  8. C51语言编程闹钟代码,C51定时闹钟程序
  9. 如何将IE浏览器设置为默认浏览器
  10. 信息搜集-读取微信聊天记录
  11. 浅淡深度学习的发机机——张量计算
  12. /给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[
  13. 长沙公积金和商贷组合贷款
  14. 拆字在线版-扌斥字在纟戋片反
  15. 金融错配程度/信贷错配程度/资本错配程度/资本资源错配程度(1998-2021年)
  16. 《用微信测试公众号慰问你的好兄弟/姐妹》:用java简单实现微信公众号消息推送(入门且详细且有效)
  17. もし私はあなたの恋人(1)作者xuanyang
  18. Debian系统源码安装usb网卡驱动
  19. JS解混淆-AST还原案例
  20. paraview vtk文件乱码_如何在ParaView中为一系列传统VTK文件设置自定义时间步长值?...

热门文章

  1. 解析xml_QT开发(四十四)——流方法解析XML
  2. python ide是什么意思_初学Python使用什么IDE会更好?
  3. UITableView 优化
  4. nodejs+mongodb+vue前后台配置ueditor
  5. ecshop3.0.0注入
  6. 开源 java CMS - FreeCMS2.5 标签 infoPage
  7. 又拍云,音视频CDN加速利器
  8. cocos2d-js 越来越慢的定时器schedule 制作不变慢的定时器
  9. c#遍历一个文件夹下的所有文件包括子文件夹【原】
  10. 将DHCP从win2000转移到2003上