1、Linux是单用户、多任务的操作系统。❌
2、使用shutdown -k 5 表示5分钟后关闭计算机。❌
3、Linux内核版本又分为稳定版和开发板,两种版本是相互关联的。⭕
4、Windows server的服务器市场占有率比Linux的更大。❌
5、Windows是封闭的,系统的可定制性很差,而Linux是开源的,可定制性强。⭕
6、没有安装操作系统的计算机,通常被称为裸机。⭕
7、操作系统的作用主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用。⭕
8、关于虚拟机的描述是否正确虚拟机【Virtual Machine】指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。⭕
9、C语言的可移植性比最开始Unix中的B语言可移植性更差。❌
10、VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器,有三种模式,分别是一般模式、编辑模式和指令模式。✔
11、Linux系统中一切皆文件。⭕
12、Linux使用ls -all命令将列出当前目录中的文件和子目录名。❌
13、Linux版本有:Ubuntu、RedHat、Fedora、openSUSE、Linux Mint、Debian、Manjaro、Mageia、CentOS、Arch⭕
14、显示当前登录用户账户的命令:whoami⭕
15、Linux在终端下输入Ctrl + C 作用是:停止进程⭕
16、Linux中home目录存放普通用户的主目录,在Linux中每个用户都有一个目录,一般该目录是以用户的账户命名。⭕
17、Linux文件权限一共10位长度,分成四段,第三段表示的内容是文件所有者所在组的权限。⭕
18、在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的命令:mkdir -p⭕
19、Linux查看文件的命令,若查看的文件较大应使用 less 命令比较高效。⭕
20、对名为fido的文件用chmod 551 fido 进行了修改,则它的许可权是:-r-xr-x--x⭕
21、用ls -al命令列出下面的文件列表,是软链接的是:lrwxr--r-- hel users 2024 Sep 12 08:12 cheng -> /home/hel/test。⭕
22、在VIM编辑器的一般模式中,
y3y 表示从光标所在行开始往后复制3行
yw 表示复制一个词
Shift + ^ 表示移动到行头
dd 表示删除光标所在行
23、在VIM的指令模式中,可以通过/?执行搜索、:w / ZZ进行保存、:q退出、ZZ表示没有修改文件直接退出,如果修改了文件保存后退出。 :wq! 表示强制保存并退出。
24、改变文件所有者的命令为:chown⭕
25、userdel -r + 用户名 可以删除一个用户并同时删除用户的主目录。⭕
26、cat f1.txt > f2.txt 可以把f1.txt 复制为 f2.txt。⭕
将cat f1.txt所得到的内容,覆盖到f2.txt中(将f2.txt内容全部替换为cat f1.txt的内容)。
27、Linux中权限最大的账户是:root⭕
28、使用 ln -s 可以为指定的文件建立一个软链接。⭕
ln -s 指定文件的绝对路径 软链接名
29、/etc/passwd 文件用来存储创建的用户信息和相关的参数。⭕
30、使用 groupmod 命令可以更改指定组的相关信息。⭕
groupmod 组名 用户名 ————>即可修改指定用户的所属组
31、在Linux下用来查看网络设备信息所使用的命令是:ifconfig⭕
32、在Linux下使用echo 将"aaa"追加到bbb.txt所使用的追加符号是:>>⭕
echo "aaa" >> bbb.txt
33、使用 rm -rf /tmp/* 即可删除目录 /tmp 下的所有文件及子目录。⭕
-r:递归、-f:强制执行
34、Linux存放基本命令的目录是:/bin⭕
35、使用命令:vi /etc/inittab 查看该文件的内容,不想保存所修改的内容:在末行模式下,输入 :q!⭕
考察指令模式::w 保存、:q:退出、:! 强制执行、:set nu 显示行号、:set nonu 关闭行号
36、Linux系统是参照Unix系统演变而来的。⭕
UNIX————>MINIX—————>LINUX
37、在Linux中使用 tar -c :建立一个打包文件【产生.tar打包文件】,tar -x:解开一个打包文件。【解包.tar文件、⭕
-c:产生.tar打包文件
-x: 解压.tar打包文件
-v: 显示详细过程
-f: 指定压缩后的文件名
-z: 打包同时压缩
38、指定su命令相当于su root,输入密码即可切换为root用户。⭕
【su 用户名】 只能获得用户操作权限,不能获得用户的环境变量
【su -用户名】可以获得用户操作权限和环境变量
39、Linux系统安全管理的内容包括:普通用户的系统安全、文件系统的安全、进程安全、文件内容的安全。⭕
40、文件权限对应的数字:r——4,w——2,x——1,- ——0⭕
41、rwx------的数字表示是700,rwxr-x---的数字表示是750,rw-rw-r-x的数字表示是665,rwxr-x-wx的数字表示是753。⭕
42、find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示。
find -name:按照指定的文件名查找模式查找文件
find -user:查找属于指定用户名所有文件
find -size:按照指定的文件大小查找文件
43、gzip houge.txt 表示压缩文件,将houge.txt文件压缩为houge.txt.gz文件,源文件不会保留⭕
gunzip houge.txt.gz 表示解压houge.txt.gz,解压后产生一个houge.txt文件,houge.txt.gz压缩文件不会保留。⭕
44、关于drwxr-xr-x的描述:
该文件的所有者对文件有可读、可写‘可执行的权限
所有者的同组用户对该文件有可读、可执行权限
其他用户拥有该文件的可读、可执行权限
45、groupadd——新增组,groupdel——删除组,groupmod——修改组,cat /etc/group 可以查看我们创建了哪些组
46、passwd jinghang 表示设置【修改】用户jinghang的密码
id zhangsan 表示查看用户zhangsan是否存在
usermod -g root jinghang 表示修改用户jinghang 所在的组为root
47、在/data/old 目录下创建一个 oldboy.txt 文件,但是执行如下命令后报错
[root@oldboyedu ~] cd /data/old
-bash: cd: /data/old: No such file or directory
Q1:为何出现这样的错误 ? Q2:如何解决这个错误 ?
A1:因为要进入的文件目录不存在
A2:创建目录:
mkdir -p /data/old
cd /data/old
touch oldboy.txt
48、列出至少10个Linux中常用的命令,并说明他们的含义 ?
mkdir 创建目录
touch 创建一个空文件
useradd 添加一个新用户
echo 输出内容到控制台
userdel 删除用户
chown 修改文件或者目录的所有者
chmod 修改文件或者目录的操作权限
rm -rf 强制递归删除目录
rmdir 删除一个空的目录
ln -s 创建一个软链接
groupadd 添加一个组
49、解释以下内容的含义:
drwxr-xr-x 3 root root 4096 12月 12 15:23 test
d 表示该文件是一个目录,而非一个文件 rwxr-xr-x 表示该目录所属用户拥有可读、可写、可执行的权限,
该目录所属用户的所属组拥有可读、可执行的权限,
其他用户拥有可读、可执行的权限
root root 该目录所属用户为root用户,该目录所属组为root组 4096 该目录的大小为4096Kb 12月 12 15:23 表示该目录的创建时间为 十二月十二号 的下午三点二十三分 test 表示该目录的名称为test
50、假设你是系统管理员,需要增加一个新的用户账号zheng,为新用户设置初始密码,用户账号chang进行了违规操作,需要删除用户账号chang并删除用户目录
需要增加一个新的用户账号zheng
useradd zheng
为新用户设置初始密码
passwd zheng
删除用户账号chang并删除用户目录
userdel -r chang
1、每分钟清空/tmp/内容
*/1 * * * * /bin/rm -rf /tmp/*
2、每个星期三的下午6点和8点的第5到15分钟之间备份 /home/jinghang 文件夹下的数据到/opt/software
5-15 18,20 * * 3 /bin/cp /home/jinghang/* /opt/software
3、Linux如何查看进程和杀死进程 ?
ps -aux 查看所有用户所有进程
ps -ef 查看子父进程之间的关系
ps -aux | grep 进程名称
kill -9 pid (进程号)
killall 进程名称
4、Linux如何安装软件 ? 有几种方式,相关参数有什么含义 ?
rpm 安装本地软件包
rpm -qa 软件包名 查询RPM软件包的安装状态
rpm -qi 软件包
rpm -e 软件包 卸载RPM软件
rpm -ihv 软件包名 安装软件,显示详细信息和安装的进度条
-i install 安装 -v 显示详细信息 -h 展示安装的进度条
yum -y 【选项】 软件名 -y:对所有提问默认为yes
install 安装rpm软件包
update 更新rpm软件包
check-update 检查是否有可用的更新rpm软件包
remove 删除指定的rpm软件包
list 显示软件包信息
clean 清理yum 过期的缓存 yum clean all
deplist 显示yum软件包的所有依赖关系
5、在Shell 中的特殊变量 $1、$0、$@、$#、$*、$?分别表示什么含义 ? $@、$*有区别吗?
$n(n代表数字)
$1 表示获取脚本中第一个参数
$0 可以获取运行脚本的名称
$# 可以获取所有输入参数的个数
$* 这个变量代表命令行中所有的参数
$@ 这个变量也代表命令行中所有的参数
$? 返回执行命令的状态 0: 一般表示命令执行成功,非0:一般表示执行不成功
$* $*把所有的参数看成一个整体
$@ $@把每个参数区分对待
6、Shell编程语言是一门解释性语言,Java是编译型语言。⭕
7、Linux中crontab可以设置定时任务,-e 表示编辑定时任务,-l:表示获取定时任务列表,-r 表示删除定时任务⭕
8、ps aux 可以查看所有用户所有进程⭕
9、top -d 5 表示5秒钟更新一次进程的状态信息。⭕
10、在shell 中创建变量a=3,该变量在整个针对所有会话和所有用户都可以访问。❌
11、在shell中创建变量可以以数字开头,例如0a=1 该变量是有效的。❌
12、在shell中使用unset可以撤销readonly修饰的变量。❌
13、【-r file.txt】执行后使用echo $? 返回结果为0,说明该文件有可读权限;返回结果为1,说明该文件没有可读权限。⭕
14、一个bash shell脚本的第一行是:#!/bin/bash 或者 #!/bin/env bash⭕
15、export 用来定义shell 的环境变量⭕
16、显示用户的主目录的命令是:echo $HOME⭕
17、以下对于shell 用户变量的定义,不对的是:0_Linux=2.6.30⭕
18、统计/root文件夹下的文件的个数的命令是:ls -l /root | grep "^-" | wc -l⭕
19、【-e /home/jinghang/cls.txt】表示判断/home/jinghang/cls.txt目录中的文件是否存在的命令。⭕
20、echo $RANDOM | md5sum | cut -c 1-8 表示 使用RANDOM函数获取随机数字,然后通过MD5加密,剪切加密后的数字串的前8位字符。⭕
21、编写一个脚本计算1~100之间所有偶数的和
#!/bin/bash :<
22、以下关于条件判断描述不正确的是
A. -lt 小于 两个整数之间比较
B. -gt 大于 两个整数之间比较
C. -ne 不等于 两个整数之间比较e
D. -ge 大于 两个整数之间比较
23、shell中自定义函数可以return一个返回值,返回的值只能是一个数字,并且在0~255之间。
24、以下关于运算符表达式的计算不能得到5的是
A. expr 2 + 3
B. expr 2+3
C. echo $[2+3]
D. echo $[ 2 + 3 ]
25、【$a == $b】和【$a -eq $b】有什么区别 ?
【$a == $b】——用于字符串比较,【$a -eq $b】——用于数字比较
26、下列运行脚本的方式不正确的是()
A. sh shell01.sh
B. bash shell01.sh
C. bash /home/jinghang/shell01.sh
D. 不需要给脚本添加(chmod +x shell01.sh)执行权限,直接使用相对路径运行脚本 ./shell01.sh
27、下列关于RPM描述不正确的是()
A. rpm -ihv rpm软件包 命令可以安装软件包
B. rpm -ihv rpm软件包 命令可以下载并安装软件包
C. rpm -e rpm软件包 命令可以卸载软件包
D. rpm -qa 查询所安装的所有rpm软件包
28、以下关于Linux的命令描述正确的是()
A. mount 命令用来挂载设备
B. umount 命令用来卸载设备
C. du 查看指定目录的磁盘占用情况
D. fdisk -l 查看磁盘分区详情
29、下列关于shell常用的判断条件描述正确的是()
A. -f 文件存在并且是一个常规的文件(file)
B. -e 文件存在(existence)
C. -d 文件存在并是一个目录(directory)
D. -dir 文件存在并是一个目录(directory)
30、下列关于Shell中的数组操作正确的是()
A. 创建数组一个元素包含1~6的数组 arr=(1,2,3,4,5,6)
B. 读取数组中的第一个元素echo ${arr[0]}
C. 读取获取数组的长度echo ${#arr[@]}
D. 读取获取数组中的所有元素 echo ${arr[*]}[/*]
31、以下哪些是shell中的文本处理工具
A. awk
B. sed
C. sort
D. cut
32、下列关于正则表达式的描述正确的是()
A. \d 单字符匹配表示匹配数字0~9
B. [^a-z] 单字符匹配表示不匹配a-z之间的字符
C. . 匹配除了换行符之外的任意字符
D. ^ 匹配以...开头
33、以下哪些是shell的解释器( )
A. /bin/bash
B. /bin/tcsh
C. /bin/csh
D. /bin/bsh
1、下面属于Linux系统发行版本的是
A. Centos
B. Mac
C. Ubuntu
D. Red Hat
2、下面的命令描述正确的是
A. 创建一个名称为test组的命令:groupadd test
B. 改用户Tom设置密码命令:passwd Tom
C. 删除用户名为Tom的命令:userdel Tom
D. 切换当前用户帐户为 admin的命令:su admin
【3】、搜索文件内容的命令是
A. grep
B. cd
C. ls
D. find
4、修改文件权限的命令是
A. chown
B. chgrp
C. chuser
D. chmod
5、使用shutdown -r 命令
A. 并不真正使系统关机,而只是给用户提出警告
B. 关闭计算机
C. 重启计算机
D. 是计算机休眠
【6】、某客户端在采用ping命令检测网络连接故障时,发现可以ping通127.0.0.1及本机的IP地址,但无法ping通同一网段内其他工作正常的计算机的IP地址,说明该客户端的故障是
A. TCP/IP协议不能正常工作
B. 本机网卡不能正常工作
C. 本机网络接口故障
D. 本机DNS服务器地址设置错误
7、查看网络是否通畅命令是:ping
8、为了保证windows用户和Linux主机间用户能够正常地进行映射,用户必需保证在这两个系统上拥有相同的帐号。❌
9、HDFS中的一个块设计的大小为128M,是因为程序为了减小寻址开销,减低namenode的元数据存储。⭕
10、YARN服务功能中的Container对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。⭕
11、ResourceManager可以启动并监控ApplicationMaster。⭕
12、Hadoop的三种运行模式一般指单机版、伪分布式版和全分布式版。⭕
13、Hadoop1.x和Hadoop2.x区别之一,后则将mapreduce中的资源调度模块拆分为yarn。⭕
14、Hadoop 2.x中默认50070是hdfs的web管理端口,19888是JobHistory的web管理 端口,8080是yarn的web管理端口。❌
15、Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(conf); FSDataOutputStream fis = fs.open("/123"); 以上代码没有任何错误。❌
16、MapReduce是一个分布式的运算程序编程框架。⭕
17、NameNode是主节点,不可以存储以下数据
A. 元数据的文件名
B. 元数据的文件目录结构
C. 存储文件块数据
D. 元数据的文件属性
18、在当前目录下解压归档文件this.tar.gz我们可以使用命令:tar -zxvf this.tar.gz
19、下面对HDFS描述错误的是( )
A. 文件切分成块,默认大小100M,以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定,默认2
B. NameNode是主节点(master),存储文件的元数据
C. DataNode在本地文件系统存储文件块数据
D. HDFS可以完成创建、删除、移动或重命名文件夹等操作
20、下列那个命令不可以从linux本地文件系统中上传文件到hdfs文件系统上的命令
A. Hdfs dfs -put
B. Hdfs dfs -moveFromLocal
C. Hdfs dfs -copyFromLocal
D. Hdfs dfs -get
21、[linux] 表示主机名与IP地址映射关系的文件是( )
A. /etc/host.conf
B. /etc/hostname
C. /etc/hosts
D. /etc/resolv.conf
22、hdfs的核心服务( )
A. namenode和datanode、secondarynamenode
B. resourcemanager和yarn
C. yarn和hdfs
D. resourcemanager和nodemanager
23、下面描述正确的选项有( )
A. 启动hdfs命令 start-yarn.sh
B. 启动yarn命令:start-dfs.sh
C. 启动hdfs命令 start-dfs.sh
D. 启动yarn命令:start-yarn.sh
24、HDFS的特点有哪些
A. 高可靠性
B. 高容错性
C. 低容量
D. 低扩展
25、下列属于hadoop的发行版本的是()
A. Apache
B. Cloudera
C. Hortonworks
D. Centos
26、Hadoop是依据以下哪些论文内容作为框架的基本思想()
A. GFS
B. DFS
C. Map-Reduce
D. BigTable
27、配置hadoop时我们需要添加相关配置,自定义配置时修改的.xml文件有哪些()
A. yarn-site.xml
B. mapred-site.xml
C. hdfs-site.xml
D. core-site.xml
28、以下关于单点启动hdfs相关服务命令正确的是()
A. hadoop-daemon.sh start namenode
B. hadoop-daemon.sh start datanode
C. hadoop-daemon.sh start secondarynamenode
D. hadoop-daemon.sh start yarn
29、列出常用的hdfs文件操作的命令,并说明含义,至少列出11个
Hadoop fs | hdfs dfs 命令分类
本地文件 -> HDFS
-put 将本地数据上传至hdfs
-copyFromLocal 将本地文件数据拷贝到hdfs
-moveFromLocal 将本地文件数据移动到hdfs,成功后本地数据会删除
-appendToFile 追加一个本地文件到hdfs已经存在的文件末尾
HDFS与HDFS之间
-ls 查看hdfs文件目录
-mkdir 在HDFS上创建目录
-rm 删除文件或者文件夹
-rmr 递归删除
-cp 从一个目录拷贝文件至另一目录
-mv 在HDFS目录中移动文件
-chown 修改文件所属用户权限
-chmod 修改文件所属读写权限
-du -h 文件夹暂用的空间大小
-df -h 查看系统分区情况
-cat 查看文件
HFDS -> 本地
-get 从hdfs下载文件至本地
-getmerge 合并hdfs目录下的文件至本地
-copyToLocal 从hdfs拷贝文件至本地
30、是否可以自行搭建Hadoop集群?请自行设计一个hadoop集群,并简述基本搭建流程。
是的,只要对Hadoop环境足够熟悉,你完全可以这么做。
这个答案不唯一,完全可以按照日常搭集群的步骤写
设计集群可以做如下设计 3台(hadoop默认的副本数是3)
hadoop01 hadoop02 hadoop03 namenode resourcemanager secondarynamenode datanode datanode datanode nodemanager nodemanager nodemanager historyserver Ⅰ、修改静态ip、修改主机名
Ⅱ、安装JDK并配置环境变量(/etc/profile)
Ⅲ、关闭防火墙
Ⅳ、配置hosts文件,方便hadoop通过主机名访问(/etc/hosts)
Ⅴ、设置ssh免密码登录
Ⅵ、解压缩hadoop安装包,并配置环境变量
Ⅶ、修改配置文件、设置java jdk路径和相关的节点配置($HADOOP_HOME/etc/hadoop)
Ⅷ、第一次启动需要格式化hdfs文件系统 (hadoop namenode -format)
Ⅸ、启动hadoop集群,可单点启动,可群起 ($HADOOP_HOME/sbin/start-dfs.sh $HADOOP_HOME/sbin/start-yarn.sh)
Ⅹ、使用jps查看节点进程
31、如何重启Namenode?如果一个namenode或者datanode使用命令无法停止,怎么办?
方式一:输入stop-dfs.sh,再输入start-dfs.sh
方式二:输入hadoop-demains.sh stop namename ,再输入hadoop-demains.sh start namename
如果采用命令的方式无法停止NameNode或者DataNode,则可以使用kill -9 + 进程id强制杀死进程后再重新启动
35、HDFS默认的Block块大小是多少?为什么块的大小不能设置太小,也不能设置太大?
(1)默认的块大小是128M,
(2)因为HDFS的块设置太小,会增加寻址时间,程序一直在找块的开始位置;
如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。
导致程序在处理这块数据时,会非常慢。其实HDFS块的大小设置主要取决于磁盘传输速率。
36、谈谈你对hdfs的理解?
HDFS(Hadoop Distributed File System),
它是一个分布式文件系统,用于存储文件,通过目录树来定位文件;
适合一次写入,多次读出的场景,且不支持文件的修改;
具有高容错性,可以构建在廉价的服务器上,主要是为了解决海量数据的存储问题
37、hdfs分布式文件系统中,namenode、datanode、senconarynamenode作用分别是什么?
NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等;
DataNode(dn):在本地文件系统存储文件块数据,以及数据块的校验;
Secondary NameNode(2nn):用来辅助namenode,并不是namenode的热备,主要工作完成Fsimage和edits用户编辑日志的合并工作
38、以下哪些命令可以实现服务器之间的文件分发
A. cp -r
B. scp -r
C. rsync -av
D. sync -av
39、以下关于ssh说法正确的是
A. SSH 为 [url=https://baike.baidu.com/item/Secure%20Shell]Secure Shell[/url] 的缩写,是一个网络安全协议
B. ssh-keygen -t rsa 可以生成公钥和私钥
C. 要实现免密登录我们需要将本机的公钥通过 ssh-copy-id 主机名 将公钥给其他服务器
D. ssh采用的是对称加密
Key,value从map( )方法输出,被outputCollector收集通过getPartitioner( )方法获取分区号,在进入环形缓冲区。默认情况下,环形缓冲区大小值为100MB。当map输入的数据进入环形缓冲区的量达到80MB以上时,那么开始执行溢写过程,溢写过程中如果有其他数据进入,那么由剩余的百分之20反向写入。溢写过程会根据key,value先进行分区,后进行排序,最终maptask溢写文件经过归并排序后落入本地磁盘,reduceTask将多个mapTask下相同分区的数据copy到不同的reduceTask中进行归并排序后一次读取一组数据给reduce( )函数。
默认的块大小是128M,
因为HDFS的块设置太小,会增加寻址时间,程序一直在块的开始位置;
如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数据时,会非常慢。其实HDFS块的大小设置主要取决于磁盘传输速率。
第一个副本在客户端所处的的节点上。如果客户端在集群外【意思就是执行上传的服务器不属于集群的节点】,则随机在机架上选一个;
第二个副本和第一个副本位于相同机架随机节点上;
第三个副本位于不同机架,随机节点。
优点:
该策略减少了机架间的写流量、通常可以提高写性能。机架故障大的机会远小于节点故障的机会。所以此策略不会影响数据的可靠性和可用性保证。
集群处于安全模式,不能执行重要操作(写操作),集群属于只读状态。但是严格来说,只是保证HDFS元数据信息的访问,而不保证文件的访问。集群启动完成后,自动退出安全模式,如果集群处于安全模式,想要完成写操作,需要离开安全模式。
SafeMode模式相关的命令 功能描述 bin/hdfs dfsadmin -safemode get 查看安全模式状态 bin/hdfs dfsadmin -safemode enter 进入安全模式状态 bin/hdfs dfsadmin -safemode leave 离开安全模式状态 bin/hdfs dfsadmin -safemode wait 等待安全模式状态 对于全新创建的HDFS集群,NameNode启动后不会进入安全模式,因为没有Block信息
Combiner的意义就是对每一个MapTask的输出进行局部汇总,以减小网络传输量
Ⅰ、客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否存在,父目录是否存在。
Ⅱ、NameNode返回是否可以上传
Ⅲ、客户端请求第一个Block上传到哪几个DataNode服务器上。
Ⅳ、NameNode返回3个DataNode节点,分别为dn1、dn2、dn3。
Ⅴ、客户端通过FsDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。
Ⅵ、dn1、dn2、dn3逐级应答客户端。
Ⅶ、客户端开始往dn1上传第一个Block(先从磁盘读取数据放到一个本地内存缓存),以Packet为单位,dn1收到一个Packet就会传给dn2,dn2传给dn3;dn1每传一个packet会放入一个应答队列等待应答。
Ⅷ、当一个Block传输完成之后,客户端再次请求NameNode上传第二个Block的服务器。
7、HDFS的web管理url中的端口50070是不能修改的。❌
8、Hadoop2.x版本中的数据块副本数可以设置为1024。【副本数设置为1024来存储数据没有意义】❌
9、NodeManager主动向ResourceManager发送心跳,NameNode也是主动向DataNode发送心跳。❌
NameNode是接收DataNode发送的心跳及块状态的。
10、ReduceTask是负责从MapTask上远程读取输入数据后对数据排序,将数据分组传递给用户编写的reduce进行处理。⭕
11、MapReduce是一个分布式的运算程序编程框架,适合处理大量的离线数据,有良好的扩展性和高容错性。⭕
12、Secondary NameNode就是NameNode出现问题时的备用节点,必要时可以直接取代NameNode。❌
Secondary NameNode主要功能是辅助NameNode将Fsimage和Edits文件合并。
13、HDFS是分布式的海量文件存储系统。⭕
14、web页面访问http://192.168.153.88:50070可以查看hadoop的datanode存活和数据存储的URL地址。⭕
15、NameNode全权管理数据块的复制,它周期性地从集群中地每个DataNode接收心跳信号和块状态报告(Blockreport),接收到心跳信号意味着该DataNode节点工作正常。⭕
16、ResourceManager负责对NodeManager资源进行统一管理和调度。⭕
17、Hadoop1.x 和 Hadoop2.x 区别之一,后者将mapreduce中资源调度模块拆分为yarn。⭕
18、下面哪些是对reduceTask阶段任务正确理解:
A、对多个mapTask任务输出key、value,按照不同地分区通过网络copy到不同地reduceTask节点处理
B、对多个mapTask任务的输出进行合并、排序。再reduce函数中实现自己的逻辑,对输入的key、value处理,转换成新的key、value输出。
C. outputformat把reducer输出的key,value保存到文件中。
D. reduceTask阶段不会根据key进行分组和排序
19、执行一个job, 如果这个job的输出路径已经存在,那么程序会
A. 覆盖这个输出路径
B. 抛出警告,但是能够继续执行
C. 抛出一个异常,然后退出程序的执行
D. 会抛出文件路径已存在的异常
20、对mapreduce数据类型理解正确
A. 数据类型都实现Writable接口
B. hadoop的序列化中数据可以被序列化进行网络传输和文件存储
C. Mapreduce中的数据类型和java一模一样
D. Mapreduce中的数据类型完全覆写java中基本类型
21、下面对Combiner描述正确的是
A. 合理利用Combiner可以提高程序执行效率
B. Combiner的作用可以减少对本地磁盘的访问次数。
C. Combiner过程设置则执行,否则不执行,默认过程中没有执行Combiner
D. 任何情况下我们都能够使用Combiner,不会对业务又任何影响
22、Container封装节点上多维度资源包括
A. 内存
B. CPU
C. 磁盘
D. 网络
23、对ApplicationMaster描述正确的是( )
A. ApplicationMaster是HDFS组件
B. 负责协调来自ResourceManager分配的资源
C. 通过NodeManager监视任务的执行和资源使用
D. ApplicationMaster是一个长应用,分配的任务执行完毕后,不会消失(释放)
24、下列说法正确的是()
A. mapreduce总体上分为maptask阶段和reducetask阶段
B. shfflue阶段由maptask的后半部分和reducetask的前半部分组成
C. shfflue阶段可能会造成数据倾斜
D. shfflue阶段不会对数据进行排序和分区
25、下列说法正确的是 ( )
A. inputformat阶段会对文件进行切片,切片过程是物理上的切片
B. inputformat阶段会对文件进行切片切片规则,单个文件切一片,当单个文件的大小超过128M的1.1倍时,默认按照128M进行切片
C. 切片的数量决定了maptask的数量,maptask任务并行执行
D. inputformat会将文件转换为key value输出到mapper类的map()方法
26、关于hadoop的序列化,下列描述正确的是()
A. 序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。
B. 使用hadoop的序列化时我们必须实现Writable接口
C. hadoop序列化的优点紧凑、快速、支持多语言操作,只对必要的数据进行序列化
D. hadoop序列化是一个重量级的序列化框架,会附带很多额外的信息
27、下列描述正确的是( )
A. ReduceTask默认值就是1,所以输出文件个数为一个
B. 如果数据分布不均匀,就有可能在Reduce阶段产生数据倾斜
C. 具体多少个ReduceTask,需要根据集群性能而定。
D. ReduceTask的数量越多越好,这样处理数据执行的效率越高
28、下面对MapReduce描述错误的是( )
A. 适合海量离线数据计算、分析处理
B. 具有很好的容错性和扩展性
C. 启动开销小、可以使用很少的磁盘来效率提高 ,执行快
D. Shuffle连接Mapper和Reducer
29、下面描述正确的是( )
A. NameNode是一个中心服务器(master端),负责管理文件系统的名字空间、元数据的存储、以及客户端对文件的访问
B. DataNode负责元数据操作,文件内容相关的数据流经过会DataNode.
C. 副本存放在那些DataNode上由NameNode和DataNode协商控制分配
D. DataNode全权管理数块的存储,接受心跳信号和块状态报告
30、下列描述错误的是( )
A. Hadoop在完全参照GSF项目的基础上演变而来
B. Hadoop充分吸收google三大论文的思想
C. Hadoop解决了大数据中海量数据的存储和海量数据的计算问题
D. Hadoop现目前属于apache 基金组织,属于top项目之一
31、关于ssh协议中的免登录,下列理解错误的是( )
A. 可以用命令 ssh-keygen -t rsa 生成公私密钥对
B. ssh协议是一种采用的是非对称加密
C. 可以用 ssh-copy-id 命令来发送公钥到别的服务器
D. ssh的私钥不是必须保留在服务器上,可以进行分发,保证数据的安全性。
32、默认的SecondaryNamenode web管理端口是 ( )
A. 50070
B. 8020
C. 50090
D. 22
33、下面关于Shuffle过程的分区描述正确的是( )
A. 可以通过继承Partitioner类实现自定义分区
B. 默认情况,MapReduce没有使用分区
C. 设置不设置分区和不分区都一样。
D. mapreduce中只能通过继承Partitioner类实现将数据结果输出到多个文件
34、在整个maprduce运行阶段,数据是以( )形式存在的
A. key/value
B. LongWritable
C. Text
D. IntWritable
35、下面不属于Shuffle操作的是( )
A. 排序
B. 归并排序
C. 分组
D. reduceTask key value的输出
36、Java 语言中提供了一个( )线程,自动回收动态分配的内存。
A. 异步
B. 消费者
C. 守护
D. 垃圾收集
37、[linux] 表示主机名与IP地址映射关系的文件是( )
A. /etc/host.conf
B. /etc/hostname
C. /etc/hosts
D. /etc/resolv.conf
38、Hadoop项目主要包括四个模块,下面那个是描述错误( )
A. Hadoop Common :为其他Hadoop模块提供基础设施,是其他模块的公共部分。
B. Hadoop DFS:高可靠、高吞吐量的分布式文件系统,解决海量数据的存储问题
C. Hadoop MapReduce:分布式的离线并行计算框架,解决海量数据的分析和计算问题
D. Hadoop YARN:新的MapReduce框架,监控DFS
39、元数据中包含两个文件是( )
A. newedits和imaging
B. fsimage和imaging
C. fsimage和edits
D. 两个fsimage
40、在执行MapReduce过程中用哪个方法提交作业 ( )
A. JoB.addCacheFile()
B. JoB.waitForCompletion()
C. JoB.setMapperClass()
D. JoB.setJarByClass()
41、在shuffle过程中,环形缓冲区的内存达到一定数值将执行溢写操作,这个数值的大小是(默认情况下)( )
A. 100
B. 90
C. 80
D. 60
42、关于 SecondaryNameNode 哪项是正确的( )
A. 它是 NameNode 的热备,必要时可以取代namenode
B. 它对内存没有要求
C. 它是辅助NameNode ,它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间和压力,提高NameNode的整体性能
D. 都不正确
43、下列那个配置描述是错误的( )
A. fs.defaultFS是定义hdfs集群的命名空间
B. dfs.replication是定义hdfs文件系统副本数
C. dfs.datanode.data.dir是定义hdfs文件系统元数据存放目录
D. dfs.namenode.name.dir是定义hdfs文件系统元数据存放目录
44、下面对fsimage和edits描述错误的是( )
A. FsImage文件:HDFS文件系统元数据的一个永久性的检查点,其中包含HDFS文件系统的所有目录和文件inode的序列化信息。
B. Edits文件:存放HDFS文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到Edits文件中。
C. DataNode启动时会加载fsimage和edits文件到内存.
D. SecondaryNode实时的辅助备份fsimage和edits,辅助NameNode,协助其完成元数据和编辑文件的合并工作
45、下列那些不属于mapreduce的基本类型( )
A. BooleanWritable
B. LongWritable
C. NullWritable
D. Integer
1、Yarn的默认配置是不允许JVM重用,但用户可以通过配置来允许JVM重用,一个task运行在一个JVM上,开启重用的话,该
task在JVM上运行完毕后,JVM继续运行其他task。⭕
2、Hadoop集群添加节点有两种方式,
①静态添加:关闭Hadoop集群,配置相应配置,重启集群。
②动态添加:不关闭Hadoop集群,配置相关配置,刷新节点即可。⭕
3、一个集群里可以添加多个ResourceManager,但是只会有一个处于【active】存活状态,其他的处于【standby】状态。⭕
4、在整个工作流程当中,ResourceManager和NodeManager都是通过心跳保持联系的。⭕
5、DataNode负责接收客户端发送过来的信息,然后将文件存储信息位置发送给提交的客户端,由客户端直接与DataNode进行
联系,进行部分文件的运算与操作。❌
负责接收客户端发送过来的信息,然后将文件存储信息位置发送给提交请求的客户端的是NameNode。
6、Hadoop的三种运行模式一般指单机模式(本地模式)、伪分布式和完全分布式。⭕
7、Namenode是一个中心服务器(master端),负责管理文件系统的名字空间以及客户端对文件的访问请求。⭕
8、HDFS中的一个块设计的大小为128M,是因为程序为了减小寻址开销,减低namenode的元数据存储。⭕
9、kill -9 命令可以向一个进程发送信号,强行终止进程的运行。⭕
10、Zookeeper分布式集群中,选举机制,谁的服务器ID最大,就选谁作为Leader。❌
11、Zookeeper得特性中得数据更新得原子性,表示一次数据的更新操作要么成功要么失败,不存在成功了一半这种状态。⭕
12、实现高可用最关键的策略是消除单点故障。HA严格来说应该分为各个组件的HA机制即:HDFS的HA和YARN的HA。⭕
13、Zookeeper中观察者角色既能完成非事务性操作,也可以参与Leader的投票选举。❌
14、NameNode机器发生意外,如宕机,或者机器需要升级等,集群将无法使用。⭕
15、HDFS高可用模式下,无论是处于Active的namenode还是处于standby的namenode都可以将edits编辑日志写入journal文件管理系统中。❌
16、Yarn的HA高可用中,可以同时有两个resourcemanager处于active状态。❌
Yarn的HA高可用中,只能有一个resourcemanager处于active状态,其他的resourcemanager的是standby状态
17、MapReducer框架在Reducer阶段给用户提供以下哪些方法
A. setup()
B. reduce()
C. map()
D. cleanup()
18、下面的命令描述正确的是
A. 创建一个名称为test组的命令:groupadd test
B. 改用户Tom设置密码命令:passwd Tom
C. 删除用户名为Tom的命令:userdel Tom
D.切换当前用户账户为admin的命令:su admin
19、为了能够使用ls程序列出目录的内容,并且能够使用cd进入该目录,操作者需要有( )该目录的权限。
A. 读
B. 写
C. 执行
D. 递归
20、下面描述正确的是( )
A. HDFS将数量众多的廉价机器使得硬件错误称为常态。
B. HDFS支持多种软硬件平台中的可移植性。
C. HDFS上的一个文件大小是G或T数量级的,支持的文件数量达到千万数量级。
D. HDFS上的文件可以任意修改。
21、YARN服务描述正确的是( )
A. YARN总体上仍然是Master/Master结构
B. YARN服务组件不包括ApplicationMaster
C. YARN总体上仍然是Master/Slave结构
D. ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManager启动可以占用一定资源的任务。
22、YARN服务组件包括( )
A. NameManager
B. ApplicationMaster
C. Container
D.ResourceManager
23、Secondary NameNode描述正确的是( )
A. Secondary NN 通知NameNode切换edit编辑日志
B. Secondary NN 从NameNode获得fsimage和edit编辑日志进行合并
C. Secondary NN 将fsimage和edit 文件载入内存,然后开始合并文件
D. Secondary NN 将新合并的fsimage(此时文件名还不叫Fsimage)发回给NameNode
24、生成RSA密钥对的命令是( )
A. ssh-keygen -t rsa
B. ssh-keygen -t rsa -P ""
C. ssh -t rsa -P "
D. keygen -t rsa
使用A项,需要连续三次回车,获得私钥和公钥。
使用B项,只需要一次回车即可获得私钥和公钥。
25、对NodeManager服务描述正确的是( )
A. 整个集群有多个NodeManager、NodeManager负责单节点资源管理和使用
B. NodeManager管理当前节点的Container资源抽象
C. 通过心跳机制定时地向ResourceManager汇报本节点上的资源使用情况
D. NodeManager服务器跟ResourceManager毫无关系
26、HDFS文件块描述正确的是( )
A. Hadoop2.x版本文件切分成块(默认大小128M),以块为单位。
B. Hadoop2.x版本文件切分成块(默认大小256M),以块为单位。
C. Hadoop2.x版本文件切分成块(默认大小64M),以块为单位。
D. 文件关闭之后不能修改文件内容,只能完成追加操作。
27、配置机架感知的下面哪项正确( )
A. 如果一个机架出问题,不会影响数据读写
B. 写入数据的时候会写到不同机架的DataNode中
C. MapReduce会根据机架获取离自己比较近的网络数据
D. 随机找寻DataNode节点进行数据的存储。
28、Client端上传文件的时候下列哪项正确
A. 数据经过NameNode传递给DataNode
B. Client端将文件切分为Block块,namenode匀速上传文件后,与datanode建立连接,依次将数据传到DataNode中落盘。
C. Client只上传数据到一台DataNode,然后由NameNode负责Block复制工作
D. 当某个DataNode失败,客户端会继续传给其它DataNode
29、以下描述HDFS的计数器描述正确的是 ( )
A. 计数器相当于是一个全局变量
B. 计数器的值在job运行过程中是不稳定的
C. 枚举类型计数器比字符串类型计数器更加灵活
D. 计数器每次增加的值一般都是1
30、以下哪些是Yarn的调度器描述正确的是( )
A. FIFO 先进先出
B. 公平调度器 (Fair Scheduler)
C. 容量调度器(Capacity Scheduler)
D. Hadoop 2.7.2 默认的是公平调度器 (Fair Scheduler)
解析:Hadoop 2.7.2 默认的是容量调度器(Capacity Scheduler)
31、下列关于正则表达式的描述正确的是()
A. \d 单字符匹配表示匹配数字0~9
B. [^a-z] 单字符匹配表示不匹配a-z之间的字符
C. . 匹配除了换行符之外的任意字符
D. ^ 匹配以...开头
32、以下哪些命令可以实现服务器之间的文件分发( )
A. cp -r
B. scp -r
C. rsync -av
D. xsync -av
33、下列说法正确的是
A. inputformat阶段会对文件进行切片,切片过程是物理上的切片
B. inputformat阶段会对文件进行切片切片规则,单个文件切一片,当单个文件的大小超过128M的1.1倍时,默认按照128M进行切片
C. 切片的数量决定了maptask的数量,maptask任务并行执行
D. inputformat会将文件转换为key value输出到mapper类的map()方法
34、下列是继承自FileInputFormat的类的是( )
A. CombineTextInputFormat
B. TextInputFormat
C. NLineInputFormat
D. KeyValueTextInputFormat
35、下列属于hadoop的发行版本的是( )
A. Apache
B. Cloudera
C. Hortonworks
D. Centos
36、关于hadoop的压缩格式下列描述正确的是( )
A. DEFLATE,hadoop自带,支持切片,和文本处理一样,不需要修改
B. bzip2,hadoop自带,支持切片,和文本处理一样,不需要修改
C. LZO,需要安装才能使用,支持切片,和文本处理一样,不需要修改
D. Snappy,需要安装才能使用,不支持切片,和文本处理一样,不需要修改
37、Shuffle中的Partitioner设置分区发生在哪个过程( )
A. 溢写过程
B. 本地Merge
C. reduce阶段
D. map阶段
由Map输出的以
形式传输的数据,经过outputCollector的getPatition方法获得分区,然后写入环形缓冲区,进入下一个阶段。
38、在执行MapJoin过程中用哪个方法提交缓存文件小表数据 ( )
A. Job.addCacheFile()
B. Job.waitForCompletion()
C. Job.setMapperClass()
D. Job.setJarByClass()
39、运行WordCount命令( )
A. hadoop jar hadoop-examples-2.7.2.jar wordcount /data/input /data/output
B. hadoop fs -hadoop-examples-2.7.2.jar wordcount /data/input /data/output
C. hadoop fs -hadoop-examples-2.7.2/jar wordcount /data/input /data/output
D. hadoop jar hadoop-examples-2.7.2/jar wordcount /data/input /data/output
40、HDFS和YARN均是( )架构
A. 单一
B. 主从
C. 多服务交换
D. 链式
41、hdfs系统的模块启动脚本是( )
A. dfs-start.sh
B. start-dfs.sh
C. hdfs-daemon.sh start namenode
D. hadoop-daemon.sh start datanode
42、hdfs HA中JournalNodes的数量至少几个( )
A. 1
B. 2
C. 3
D. 5
43、ZKFC是由哪个框架提供的服务进程( )
A. hadoop
B. zookeeper
C. Linux
D. Flume
44、检查是否已安装NTP服务命令正确的是( )
A. rmp -qa ntp
B. rpm -a ntp
C. rpm -q ntp
D. rpm -qa ntp
45、下列那个命令不可以查看hadoop的日志文件( )
A. Cat hadoop-root-datanode-hadoop01.log
B. less hadoop-root-datanode-hadoop01.log
C. More hadoop-root-datanode-hadoop01.log
D. Text hadoop-root-datanode-hadoop01.log
46、下面那个不是Hadoop Safe Mode命令( )
A. hadoop dfsadmin -safemode get
B. hadoop dfsadmin -safemode wait
C. hadoop dfsadmin -safemode out
D. hadoop dfsadmin -safemode enter
47、通常情况下,下列那个不属于短应用程序( )
A. ApplicationMaster
B. YarnChild
C. Container
D. ResourceManager
48、Hadoop 由开源的( )程序所编写
A. C语言
B. JAVA
C. C++语言
D. Linux
49、zookeeper集群的角色和作用?
Leader:
Zookeeper集群工作的核心,事务请求(写操作)的唯一调度和处理者,保证集群事务处理的顺序性,集群内各个服务器的调度者;对于 create, setData, delete 等有写操作的请求,则需要统一转发给leader 处理.leader 需要决定编号、执行操作,这个过程称为一个事务。
Follower:
处理客户端非事务(读操作)请求,转发事务请求给Leader,参与集群Leader选举投票。
Observer:
对于访问量比较大的集群,可以新增观察者角色, 处理客户端非事务(读操作)请求,不参与leader的选举投票。
50、Zookeeper有哪几种节点类型?
永久(Persistent):客户端和服务器端断开连接后,创建的节点不删除
临时(Ephemeral):客户端和服务器端断开连接后,创建的节点自己删除
(1)永久化目录节点 客户端与Zookeeper断开连接后,该节点依旧存在
(2)永久化顺序编号目录节点 客户端与Zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号 (3)临时目录节点 客户端与Zookeeper断开连接后,该节点被删除
(4)临时顺序编号目录节点 客户端与Zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号。
51、简答描述以下TextInputFormat怎么进行文件切分?
TextInputFormat根据文件大小将文件拆分成splits,如果单个文件较小小于128的1.1倍,则每个文件为一个split,并将文件按行分割形成
对,如果单个文件较大。超过block块(128M)默认大小得1.1倍,则会将文件切分为多个split。这一步由MapReduce框架自动完成,其中偏移量包括了回车所占的字符数。将分割好的 对交给用户定义的map方法进行处理,在map方法中根据业务逻辑处理 后生成新的 对输出。
52、简单描述MapReduce不合适对哪些场景的使用?
(1).MapReduce不适合做低延迟数据访问场景的使用。
(2).MapReduce不适合存储大量小文件。
(3).MapReduce不支持多用户写入及任意修改文件。
53、yarn有哪几部分组成,作用分别是什么?调度器主要有哪三种,hadoop默认的是哪一种?
由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成;
ResourceManager:处理客户端请求、监控NodeManager、启动或监控ApplicationMaster、资源的分配与调度
NodeManager:管理单个节点上的资源、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令
ApplicationMaster:负责数据的切分、为应用程序申请资源并分配给内部的任务、任务的监控与容错
Container:Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。
FIFO、Capacity Scheduler(容量调度器)和Fair Scheduler(公平调度器)。
Hadoop2.7.2默认的资源调度器是Capacity Scheduler(容量调度器)
54、请简述ZooKeeper的选举机制?
半数机制:集群中半数以上机器存活,集群可用。所以Zookeeper适合安装奇数台服务器。
(1)全新集群选举: 假设目前有5台服务器,每台服务器均没有数据,它们的编号分别是1,2,3,4,5,按编号依次启动,它们的选举过程如下: 服务器1启动,给自己投票,然后发投票信息,由于其它机器还没有启动所以它收不到反馈信息,服务器1的状态一直属于LOOKING。 服务器2启动,给自己投票,同时与之前启动的服务器1交换结果,由于服务器2的编号大所以服务器2胜出,但此时投票数没有大于半数,所以两个服务器的状态依然是LOOKING。 服务器3启动,给自己投票,同时与之前启动的服务器1,2交换信息,由于服务器3的编号最大所以服务器3胜出,此时投票数正好大于半数,所以服务器3成为领导者,服务器1,2成为Follower。 服务器4启动,给自己投票,同时与之前启动的服务器1,2,3交换信息,尽管服务器4的编号大,但之前服务器3已经胜出,所以服务器4只能成为Follower。 服务器5启动,后面的逻辑同服务器4成为Follower。
(2)非全新集群选举 对于运行正常的zookeeper集群,中途有机器down掉,需要重新选举时,选举过程就需要加入数据ID、服务器ID和逻辑时钟。 其中: 数据ID:数据新的version就大,数据每次更新都会更新version。 服务器ID:就是我们配置的myid中的值,每个机器一个。 逻辑时钟:这个值从0开始递增,每次选举对应一个值。 如果在同一次选举中,这个值是一致的。 这样选举的标准就变成: 逻辑时钟小的选举结果被忽略,重新投票; 统一逻辑时钟后,数据id大的胜出; 数据id相同的情况下,服务器id大的胜出; 根据这个规则选出leader。
55、使用Java编写代码,将hdfs上/a.txt文件下载到本地
提示信息:Configuration、FileSystem、FSDataInputStream、FileOutputStream、IOUtils(IOUtils.copyBytes、IOUtils.closeStream)
public void customGet() throws IOException { Configuration configuration = new Configuration(); FileSystem fileSystem = FileSystem.get( URI.create("hdfs://jinghang100:9000"), configuration, "jinghang" ); //设置HDFS数据文件的路径 Path hdfsPath = new Path("/a.txt"); //使用HDFS文件系统对象打开文件 FSDataInputStream inputStream = fileSystem.open(hdfsPath); //指定要下载到本地的文件路径 String localPath = "C:\\Users\\Administrator\\Desktop\\filetest\\a.txt"; //将hdfs系统文件下载值本地 FileOutputStream outputStream = new FileOutputStream(localPath); IOUtils.copyBytes(inputStream,outputStream,configuration,true); IOUtils.closeStream(inputStream); IOUtils.closeStream(outputStream); fileSystem.close(); }