赞
踩
如果没有可以阅读这篇文章:https://blog.csdn.net/2202_75334392/article/details/132863607?spm=1001.2014.3001.5501
然后
启动Hadoop
1. hadoop fs
2. hadoop dfs
3. hdfs dfs
hadoop fs适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统
hadoop dfs只能适用于HDFS文件系统
hdfs dfs跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统
常用命令 功能
-help [cmd] 显示命令的帮助信息
学习HDFS的相关指令,都可以通过-help查询语法,比如:
-appendToFile <localsrc> ... <dst>从本地追加信息到HDFS文件系统上
-ls(r) <path> 显示当前目录下所有文件
-du(s) <path> 显示目录中所有文件大小
-count[-q] <path> 显示目录中文件数量
-mv <src> <dst> 移动多个文件到目标目录
-cp <src> <dst> 复制多个文件到目标目录
-rm(r) 删除文件(夹)
-rmdir 删除空文件夹
-put <localsrc> <dst> 本地文件复制到hdfs
-copyFromLocal <localsrc> ... <dst> 同put
-moveFromLocal 从本地文件移动到hdfs,本地的文件将被删除
-get <src> <localdst> 复制文件到本地,可以忽略crc校验
-getmerge <src> <localdst> 将源目录中的所有文件排序合并到一个文件中
-cat <src> 在终端显示文件内容
-text <src> 在终端显示文件内容
-copyToLocal [-ignoreCrc] <src> <localdst> 复制到本地
-moveToLocal <src> <localdst> 移动到本地,暂未
-mkdir <path> 创建文件夹
-touchz <path> 创建一个空文件
本地Linux的准备工作:
- [atguigu@hadoophww ~]$ cd /usr/local/hadoop
- [atguigu@hadoophww hadoop]$ mkdir wcinput
- [atguigu@hadoophww hadoop]$ cd wcinput
- [atguigu@hadoophww wcinput]$ vim word.txt
word.txt中可以输入实验心得
HDFS上的准备工作:
- [atguigu@hadoophww wcinput]$ hadoop fs -mkdir /wordcount
- [atguigu@hadoophww wcinput]$ hadoop fs -put word.txt /wordcount
WEBUI查看
上传大文件
上传一个超过128M的文件,验证下HDFS的分块。
[atguigu@hadoophww wcinput]$ hadoop fs -put hadoop-3.1.3.tar.gz /hww/hadoop
以此为例,来看下大型文件的分块和存储位置。
查看HDFS文件存储路径(根据每个人配置的时候,选定的datanode路径进行查询)
- [atguigu@hadoophww subdir0]$
- cd /usr/local/hadoop/tmp/dfs/data/current/BP-891536792-192.168.116.80-1661602338471/current/finalized/subdir0/subdir0
- [atguigu@hadoophww subdir0]$ cat blk_1073741848>>tmp.tar.gz
- [atguigu@hadoophww subdir0]$ cat blk_1073741849>>tmp.tar.gz
- [atguigu@hadoophww subdir0]$ cat blk_1073741850>>tmp.tar.gz
- [atguigu@hadoophww subdir0]$ sudo tar -zxvf tmp.tar.gz
[atguigu@hadoophww ~]$ hadoop fs -get /hww/hadoop/hadoop-3.1.3.tar.gz /usr/local/hadoop/tmp
- [atguigu@hadoophww ~]$ cd /usr/local/hadoop/share/hadoop/mapreduce
- [atguigu@hadoophww mapreduce]$ hadoop jar hadoop-mapreduce-examples-3.1.3.jar wordcount /wordcount /output2
- [atguigu@hadoophww mapreduce]$ hadoop fs -ls /output2
- [atguigu@hadoophww mapreduce]$ hadoop fs -cat /output2/part-r-00000
看到Map和Reduce都执行百分百的时候,说明mapreduce程序执行成功。
查看下结果
- #!/bin/bash
- if [ $# -lt 1 ]
- then
- echo "No Args Input..."
- exit ;
- fi
- case $1 in
- "start")
- echo " =================== 启动 hadoop集群 ==================="
-
- echo " --------------- 启动 hdfs ---------------"
- ssh hadoop102 "/opt/module/hadoop-3.1.4/sbin/start-dfs.sh"
- echo " --------------- 启动 yarn ---------------"
- ssh hadoop103 "/opt/module/hadoop-3.1.4/sbin/start-yarn.sh"
- echo " --------------- 启动 historyserver ---------------"
- ssh hadoop102 "/opt/module/hadoop-3.1.4/bin/mapred --daemon start historyserver"
- ;;
- "stop")
- echo " =================== 关闭 hadoop集群 ==================="
-
- echo " --------------- 关闭 historyserver ---------------"
- ssh hadoop102 "/opt/module/hadoop-3.1.4/bin/mapred --daemon stop historyserver"
- echo " --------------- 关闭 yarn ---------------"
- ssh hadoop103 "/opt/module/hadoop-3.1.4/sbin/stop-yarn.sh"
- echo " --------------- 关闭 hdfs ---------------"
- ssh hadoop102 "/opt/module/hadoop-3.1.4/sbin/stop-dfs.sh"
- ;;
- *)
- echo "Input Args Error..."
- ;;
- esac
2.查看三台服务器Java进程脚本:jpsall
- #! /bin/bash
-
-
- for host in hadoop102 hadoop103 hadoop104 hadoop100
- do
-
- echo --------- $host ----------
-
- ssh $host jps
-
- done
3,分发/home/atguigu/bin目录,保证自定义脚本在三台机器上都可以使用
[root@hadoop102 bin]# xsync /usr/local/hadoop/bin
4.xsync集群分发脚本
(1)需求:循环复制文件到所有节点的相同目录下
(2)需求分析:
(a)scp:需要多次执行
(b)期望脚本:
xsync要同步的文件名称
(c)期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)
- [atguigu@hadoop102 ~]$ echo $PATH
-
- /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/atguigu/.local/bin:/home/atguigu/bin:/opt/module/jdk1.8.0_212/bin
(3)脚本实现
(a)在/home/atguigu/bin目录下创建xsync文件
[root@hadoop102 bin]# vim xsync
(b)修改脚本 xsync 具有执行权限
[root@hadoop102 bin]# chmod +x xsync
(c)测试脚本
[root@hadoop102 bin]# xsync /usr/local/hadoop/bin
将新增的对应文档都传输到集群的机器当中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。