大数据Hadoop学习二
HDFS存储原理
HDFS的Shell操作
进程启停管理
一键启停脚本
Hadoop HDFS组件内置了HDFS集群的一键启停脚本
执行原理:
在执行此脚本的机器上,启动SecondaryNameNode
读取core-site.xml内容(fs.defaultFS项),确认NameNode所在机器,启动NameNode
读取workers内容,确认DataNode所在机器,启动全部DataNode
执行原理:
在执行此脚本的机器上,关闭SecondaryNameNode
读取core.site.xml内容(fs.defaultFS项),确认NameNode所在机器,关闭NameNode
读取workers内容,确认DataNode所在机器,关闭全部DataNode
单进程启停
1.$HADOOP_HOME/sbin/hadoop-daemon.sh,此脚本可以单独控制所在机器的进程的启停
用法:
hadoop-daemon.sh (start status|stop)(namenode secondarynamenode datanode)
2.$HADOOP_HOME/bin/hdfs,此程序也可以用以单独控制所在机器的进程的启停
用法:
hdfs --daemon (start|status|stop)(namenode secondarynamenode datanode)
文件系统操作命令
HDFS文件系统基本信息
与linux系统一样,均使用/作为根目录的组织形式


需要根据协议头(file:///或hdfs://node1:8020/)区分
使用的时候不需要使用协议头(可省略)
如果需要提供Linux路径的参数,会自动识别为file://
如果需要提供HDFS路径的参数,会自动识别为hdfs://
除非明确需要写或者不写会有BUG,否则一般不用谢协议头
关于HDFS文件系统的操作命令,Hadoop提供了两套命令体系
hadoop命令(老版本),用法:
hadoop fs [generic options]
hdfs命令(新版本),用法:
hdfs dfs [generic options]
1.创建文件夹
hadoop fs -mkdir [-p] <path> ...
hdfs dfs -mkdir [-p] <path> ...
path为待创建的目录
-p选项的行为与Linux mkdir -p一致,它会沿着路径创建父目录
例如:
hadoop fs -mkdir -p /itcast/bigdata
hdfs fs -mkdir -p /itheima/hadoop
2.查看指定目录下的内容
hadoop fs -ls [-h] [-R] [<path> ...]
hadf fds -ls [-h] [-R] [<path> ...]
path指定目录路径
-h 人性化显示文件size
-R 递归查看指定目录及其子目录

3.上传文件到HDFS指定目录下
hadoop fs -put [-f] [-p] <localsrc> ... <dst>
hdfs dfs -put [-f] [-p] <localsrc> ... <dst>
-f 覆盖目标文件(已存在下)
-p 保留访问和修改时间,所有权和权限
localsrc 本地文件系统(客户端所在机器)
dst 目标文件系统(HDFS)
localsrc ... dst 从Linux上的某位置上传到HDFS的位置
例如:
hadoop fs -put words.txt /itcast
hdfs dfs -put file:///etc/profile hdfs://node1:8020/itcast

4.查看HDFS文件内容
hadoop fs -cat <src> ...
hdfs dfs -cat <src> ...
读取指定文件全部内容,显示在标准输出控制台
例如:
hadoop fs -cat /itcast/words.txt
hdfs dfs -cat /itcast/profile
读取大文件可以使用管道符配合more
hadoop fs -cat <src> | more
hdfs dfs -cat <src> | more

结果显示出后,可以空格翻页

查看完后,点击q退出该页面即可
5.下载HDFS文件
hadoop fs -get [-f] [-p] <src> ... <localdst>
hdfs dfs -get [-f] [-p] <src> ...<localdst>
下载文件到本地文件系统指定目录,localdst必须是目录
-f 覆盖目标文件(已存在下)
-p 保留访问和修改时间,所有权和权限
src ...localdst是从hdfs向Linux下载
可以先删除上面我们Linux本地的文件

下载到Linux当前目录就打一个.即可

6.拷贝HDFS文件
hadoop fs -cp [-f] <src> ... <dst>
hdfs dfs -cp [-f] <src> ... <dfs>
-f覆盖目标文件(已存在下)
这里执行的cp不是Linux中的cp而是HDFS中的
src ... dst指的是从HDFS到HDFS复制

cp和Linux中的操作一样兼具改名的操作

7.追加数据到HDFS文件中(对于文件内容只能是删除和追加不能修改某一行)
hadoop fs -appendToFile <localsrc> ... <dst>
hdfs dfs -appendToFile <localsrc> ... <dst>
将所有给定本地文件的内容追加到给定dst文件
dst如果文件不存在,将创建该文件
如果

8.HDFS数据移动操作
hadoop fs -mv <src> ... <dfs>
hdfs dfs -mv <src> ... <dfs>
移动文件到指定文件夹下
可以使用该命令移动数据,重命名文件的名称

当然也可以同步完成改名操作

9.HDFS数据删除操作
hadoop fs -rm -r [-skipTrash] URI [URI ...]
hdfs dfs -rm -r [-skipTrash] URI [URI ...]
删除指定路径的文件或文件夹
-skipTrash跳过回收站,直接删除(回收站功能默认是关闭的,如果要开启需要在core-site.xml内配置:
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>120</value>
</property>
1440指数据保留时间为一天
120是指整个回收站检查的时间间隔为120分钟
以上配置不需要重启集群,在那个机器配置的,在哪个机器执行命令就生效,回收站默认位置:/user/用户名(hadoop)/.Trash
)


删除指定的文件夹要加-r


删除文件

其他命令:(命令官方指导文件)
https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-common/FileSystemShell.html
HDFS WEB浏览
除了使用命令操作HDFS文件系统外,在HDFS的WEB UI上也可以查看HDFS文件系统的内容


在以上页面是没有权限对文件和文件夹操作的,但是如果想要操作就要配置core-site.xml(但是不推荐以上做法,如果给高权限,会有很大的安全问题,造成数据泄露或丢失)
添加以下内容:
<property>
<name>hadoop.http.staticuser.user</name>
<value>hadoop</value>
</property>
HDFS超级用户
Superuser不同(超级用户不同)
Linux的超级用户是root
HDFS文件系统的超级用户:是启动namenode的用户(也就是现在我们使用的hadoop系统)
如果想要修改权限的话,在HDFS中也可以使用和Linux一样的授权语句:chown和chmod

HDFS客户端-Jetbrians产品插件
了解在Jetbrians产品中安装使用BigData Tools插件
BigData Tools插件可以帮助我们方便的操作HDFS,比如
IntelliJ IDEA(JAVA IDE)
PyCharm (Python IDE)
DataGrip (SQL IDE)
以上均可使用BigData Tool插件
在此演示IntelliJ IDEA

配置windows
配合插件使用

完成解压

配置环境变量


然后将下载好的hadoop.dll和winutils.exe放入bin文件夹

完成以上内容记得重启IDE软件
配置插件

输入相应的内容,点击测试连接(验证是否连接成功)

然后点击确定配置就生效了

右键点击文件夹可以完成文件的上传

双击可以直接查看文件内容
当然也可以修改(ctrl+s保存即可)(本质是直接上传并覆盖)


浙公网安备 33010602011771号