Hadoop大数据——
随着计算机技术的发展,互联网的普及,信息的积累已经到了一个非常庞大的地步,信息的增长也在不断的加快。
信息更是爆炸性增长,收集,检索,统计这些信息越发困难,必须使用新的技术来解决这些问题。
大数据由巨型数据组成,这些数据集大小超出人类在可接受时间下的收集,使用,管理和处理能力。
把数据集合并进行分析可得出许多额外的信息和数据关系性,可用来察觉商业趋势,判定研究质量,避免疾病扩散,打击犯罪或测定及时交通路况等,这样的用途正是大型数据集盛行的原因。
从各种各样类型的数据中,快速获得有价值信息的能力,适用于大数据的技术,包括大规模并行处理数据库,数据挖掘电网,分布式文件系统,分布式数据库,云计算平台,互联网,和可扩展的存储系统。
大数据特性——
数量:TB/EB级,记录/日志,事物,表&文件
速度:批处理,实时,多进程,数据流
种类:结构化,非结构化,多因素,概率性
价值:统计学,事件性,相关性,假设性
真实性:可信性,真伪性,来源&信誉,有效性,可审计性
大数据与Hadoop——
Hadoop是一种分析和处理海量数据的软件平台,开源,使用Java开发,可以提供一个分布式基础架构。
特点:高扩展性,高可靠性,高效性,高容错性,低成本
Hadoop起源——
03年开始,Google陆续发表了几篇论文,GFS,MapReducs,BigTable。
GFS是一个可扩展的分布式文件系统,用于大型的,分布式的,对大量数据进行访问的应用,他运行于廉价的平台硬件上,提供容错功能。
Mapreduce是针对分布式并行计算的一套编程模型,由MAP和reducs组成,,Map是影设,把指令分发到多个worker上去,reducs是规约,把Map的worker计算出来的结果合并。
bigtable:存储结构化数据,bigtable是建立在GFS,scheduler,lockserver和Mapreduce之上的,每个table都是一个多维的稀疏图。
这三大技术被称为Google的三驾马车,虽然Google没有公布这三个产品的源码,但是他发布了这三个产品的详细设计论文,
Yahoo资助Hadoop按照这三篇论文的开源Java实现,不过在性能上Hadoop比Google要差很多。
GFS-----> HDFS
Mapreduce--------> Mapreduce
bigtable-------> Hbase
Hadoop常用组件——
hdfs(hadoop分布式文件系统)
mapreduce(分布式计算框架)
zookeeper(分布式协作服务)
hbase(分布式列存数据库)
hive(基于Hadoop的数据仓库)
sqoop(数据同步工具)
pig(基于Hadoop的数据流系统)
mahout(数据挖倔算法库)
flume(日志收集工具)
Hadoop核心组件——
processing:spark,mapreduce(分布式计算框架)
resource management:yarn(集群资源管理系统)
storage:hdfs(分布式文件系统)
hdfs角色及概念——
是Hadoop体中数据存储管理的基础,他是一个高度容错的系统,用于低成本的通用硬件上运行。
角色和概念:
client---(切分文件,访问hdfs,与namednode交互,获取文件位置信息,与datanode交互,读取和写入数据)
namenode---(master节点,管理hdfs的名称空间和数据块映射信息,配置副本策略,处理所有客户端请求)
secondary namenode---(定期合并fsimage和fsedits,推送给namenode,紧急情况下,可辅助恢复namenode,它并非是热备份)
datanode---(数据存储节点,存储实际的数据,汇报存储信息给namenode)
block:每块缺省64mb大小,每块可以多个副本
mapreduce结构——
源自Google的mapreduce论文,java实现的分布式计算框架。
角色及概念:
jobtracker--(master节点,只有一个,管理所有作业,任务/作业的监控,错误处理等,将任务分解成一系列任务,并分派给tasktracker)
tasktracker--(slave节点,一般是多台,运行map task和reduce task,并与jobtracker交互,汇报任务状态)
map task--(解析每条数据记录,传递给用户编写的map(),并执行,将输出结果写入本地磁盘,如果为map-only作业,直接写入hdfs)
reducer task--(从map task的执行结果中,远程读取输入数据,对数据进行排序,将数据按照分组传递给用户编写的reduce函数执行)
yarn结构——
yarn是Hadoop的一个通用的资源管理系统,yarn的核心思想是将jobtracker和tasktacker进行分离。
由下面极大构成组件:
resourcemanager:一个全局的资源管理器
nodemanager:每个节点(RM)代理
applicationmaster:表示每个应用
每一个applicationmaster有多个container在nodemanager上运行。
yarn角色:
resourcemanager--(处理客户端请求,启动/监控applicationmaster,监控nodemanager,资源分配与调度)
nodemanager--(单个节点上的资源管理,处理来自resourcemanager和applicationmaster的命令)
applicationmaster--(数据切分,为应用程序申请资源,并分配给内部任务,任务监控与容错)
container--(对任务运行环境的抽象,封装了cpu,内存等,多维资源以及环境变量,启动命令等任务运行相关的信息资源分配与调度)
client--(用户与yarn交互的客户端程序,提交应用程序,监控应用程序状态,杀死应用程序等)
————————————————————————————————————————————————————————————————————————————————————————————————————————————
Hadoop安装配置——
Hadoop的部署模式有三种
单机
伪分布式(伪分布式的安装和完全分布式安装一样,区别是所有角色都安装在一台机器上,使用本地磁盘,一般生产环境都会使用完全分布式,伪分布式一般用学习和测试方面的功能,所以这次为分布式就不搭建了)
完全分布式
Hadoop单机模式安装配置:
Hadoop的单机模式安装非常简单,只需要配置好环境变量即可运行,这个模式一般用来学习和测试。(配置时注意把主机名和对应的ip地址加到hosts文件上,dns是不管用的)
获取软件:http://hadoop.apache.org
安装配置java环境,安装jps工具:安装openjdk和openjdk-devel
设置环境变量,启动运行:hadoop-env.sh JAVA_HOME=""
[root@x ~]# yum -y install java-1.8.0-openjdk-devel.x86_64(安装Java开发包)
[root@x ~]# java -version(安装jdk后运行命令要能看见版本信息)
openjdk version "1.8.0_131"
[root@x ~]# jps(jps要可以看见pid号)
1527 Jps
[root@x ~]# tar -xvf hadoop-2.8.4.tar.gz(解压)
[root@x ~]# mv hadoop-2.8.4 /usr/local/hadoop(移动到/usr/local/hadoop下)
[root@x ~]# rpm -qa | grep openjdk(查看openjdk的安装信息)
[root@x ~]# rpm -ql java-1.8.0-openjdk-devel-1.8.0.131-11.b12.el7.x86_64(查看openjdk安装到哪个目录下)
..........
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/bin
..........
[root@x]# cd /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre/(Java的家目录)
[root@x hadoop]# cd /usr/local/hadoop/etc/hadoop/(到Hadoop的配置目录下)
[root@x hadoop]# vim hadoop-env.sh(修改配置Java环境变量)
export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre"
(Java的家目录)
export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop"(修改Hadoop的配置文件路径)
[root@x bin]# ./hadoop version(到/usr/local/hadoop/bin目录执行命令,可以看到版本信息就说明没问题了)
Hadoop 2.8.4
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 17e75c2a11685af3e043aa5e604dc831e5b14674
Compiled by jdu on 2018-05-08T02:50Z
Compiled with protoc 2.5.0
From source with checksum b02a59bb17646783210e979bea443b0
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.8.4.jar
模块简介:
[root@x hadoop]# ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar
An example program must be given as the first argument.
Valid program names are:
aggregatewordcount:
aggregatewordhist:
bbp:
dbcount:
distbbp:
grep:(支持正则表达式,匹配关键字)
join:
multifilewc:
pentomino:
pi:
randomtextwriter:
randomwriter:
secondarysort:
sort:
sudoku:
teragen:
terasort:
teravalidate:
wordcount:(统计模块,统计每个词出现的频率,把要分析的文件结果放到指定的某个文件下)
wordmean:
wordmedian:
wordstandarddeviation:
实例:
[root@x hadoop]# ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /root/xx/passwd /root/output(运行wordcount统计模块,我提前在root/xx/复制了、etc/passwd这个文件,现在就是分析这个文件,并把分析结果放到root/output这个文件)
[root@x ~]# cat output/part-r-00000 (统计每个词出现的频率)
Daemon:/var/lib/rpcbind:/sbin/nologin 1
Management:/:/sbin/nologin 1
Network 1
SSH:/var/empty/sshd:/sbin/nologin 1
User:/var/ftp:/sbin/nologin 1
abrt:x:173:173::/etc/abrt:/sbin/nologin 1
[root@x hadoop]# ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar grep /root/xx/passwd /root/xxx 'uuid'(运行grep正则匹配模式,匹配root/xx/passwd/这个文件的uuid这个关键字,把内容保存到root/xxx文件里)
[root@x ~]# cat xxxx/part-r-00000(查看结果root出现了4次)
4 root
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
Hadoop伪分布式
Hadoop-env.sh(配置环境变量)
JAVA_HOME
HADOOP_CONF_DIR
Xml文件配置格式(name和value是对应的,且只能修改变量值,关键字不可修改)
<configuration>
<property>(关键配置)
<name>关键字</name>
<value>变量值</value>
<description>描述</description>(描述写也可以,不写就dd)
</property>
<property>(常用配置)
<name>关键字</name>
<value>变量值</value>
</property>
</configuration>
cd /usr/local/hadoop/etc/hadoop/
core-site.xml 详细介绍:http://hadoop.apache.org/docs/r2.8.4/hadoop-project-dist/hadoop-common/core-default.xml
hdfs-site.xml 详细介绍:http://hadoop.apache.org/docs/r2.8.4/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
dfs.replication:设置数据存放多少份
dfs.namenode.name.dir:存映射关系数据的路径
dfs.datanode.data.dir:真实存放数据的路径
dfs.namenode.http-address:namenode
dfs.namenode.secnodary.http-address:namenode的辅助
dfs.webhdfs.enabled:默认正常情况会打开调用,在互联网下为了安全起见要关闭
dfs.permissions.enabled:设置hdfs的一个权限,默认打开,
mapred-default.xml: 详细介绍:http://hadoop.apache.org/docs/r2.8.4/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
mapreduce.framework.name:使用什么样的集群管理系统,默认是local
mapreduce.jobtracker.http.address:jobtracker的ip地址
mapreduce.jobhistory.address:
mapreduce.jobhistory.webapp.address:
yarn-default.xml 详细介绍:http://hadoop.apache.org/docs/r2.8.4/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
yarn.resourcemanager.hostname:(配了这个值,倒数1到5的值都不用配置,不配置hostname,后面的都要配置)
yarn.nodemanager.aux-services:
yarn.nodemanager.aux-services.mapreduce_shuffle.class:(使用什么样的类)
yarn.resourcemanager.address:
yarn.resourcemanager.scheduler.address:
yarn.resourcemanager.resource-tracker.address:
yarn.resourcemanager.admin.address:
yarn.resourcemanager.webapp.address:
Deprecated Properties 详细介绍:http://hadoop.apache.org/docs/r2.8.4/hadoop-project-dist/hadoop-common/DeprecatedProperties.html
[root@x ~]# cd /usr/local/hadoop/etc/hadoop/
[root@x hadoop]# vim core-site.xml
<configuration>
<property>(关键配置)
<name>fs.defaultFs</name>(Hadoop运行起来使用哪个集群的文件系统)
<value>hdfs://x.sec.com:9000</value>(hdfs表示及群文件系统 namenode主机和端口号)
</property>
<property>(常用配置)
<name>hadoop.tmp.dir</name>(Hadoop数据存放地址)
<value>/vat/hadoop</value>(数据存放路径)
</property>
</configuration>
实例:常用的配置文件
[root@x hadoop]# vim hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.http-address</name>(namenode)
<value>x.sec.com:50070</value>(hosts文件里的域名或者ip地址:端口)
</property>
<property>
<name>dfs.namenode.secnodary.http-address</name>(namenode辅助)
<value>x.sec.com:50070</value>(namenode主机的域名或者ip地址:端口)
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</conoiguration>
[root@x hadoop]# cp mapred-site.xml.template mapred-site.xml(默认是template,复制一份)
[root@x hadoop]# vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>(集群管理系统用yarn)
</property>
<property>
<name>mapreduce.jobhistory.http.address</name>(jobhistory)
<value>x.sec.com:50030</value>(jobhistory主机的域名或者ip地址:端口)
</property>
</configuration>
[root@x hadoop]# vim yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>(resourcemanager.hostname)
<value>x.sec.com</value>(地址)
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
到此,伪分布式配置到此结束。
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
HDFS分布式文件系统:
分布式文件系统,是指文件系统管理的物理存储资源不一定直接链接在本地节点上,而是通过计算机网络与节点相连
分布式文件系统的设计基于客户机/服务器模式,一个典型的网络可能包括多个供多用户访问的服务器,对等特性允许一些系统扮演客户机和服务器的双重角色。
完全分布式Hadoop搭建配置
搭建前的准备:把所有主机的selinux和防火墙关闭,并安装jdk环境,在所有主机的hosts文件下,写上对应的主机名和ip地址,就算有dns也不会生效,一定要在hosts文件下把主机对应的ip地址写上。确保安装不会出错。注意:保证所有机器上的系统版本及Java版本的一致性,保证所有安装路径的一致性,还要配置ssh信任关系,主机xx(也就是namenode,secondarynamenode,resouremanager这角色的主机)不需要输入yes也要能成功其他主机。
[root@xx ~]# rm -rf /root/.ssh/known_hosts(把这里的公钥删除)
[root@xx ~]# ssh-keygen -t rsa(rsa加密方式,生成密钥对)
Enter file in which to save the key (/root/.ssh/id_rsa): (回车)
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y(yes)
Enter passphrase (empty for no passphrase):(回车)
Enter same passphrase again: (回车)
SHA256:uNb56uc2XhAD0O3lTgnPLykRcNq1mnH4isrG9j0UTGY root@xx
The key's randomart image is:
+---[RSA 2048]----+
| .ooo. . |
| .=Eo.. |
| .**Bo. |
| . =O* |
| . S +=.o |
| o ooo+ . |
| .o +..... |
| o+. o=. |
| ooo+*=o |
+----[SHA256]-----+
[root@xx ~]# cd /root/.ssh/(进入ssh的秘钥保存文件)
[root@xx .ssh]# scp -p ~/.ssh/id_rsa.pub 172.16.232.30:/root/.ssh/authorized_keys(把秘钥scp到其他客户机,也把这个公钥cp并覆盖到自己主机的authorized_keys,这样登录自己也可以免密码登录)
扩展:
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
准备4台服务器,并规划好主机对应的角色
主机xx:172.16.232.20 角色:namenode,secondarynamenode,resouremanager(master)
主机xxx:172.16.232.30 角色:datanode,nodemanager(节点)
主机xxxx:172.16.232.40 角色:datanode,nodemanager(节点)
主机xxxxx:172.16.232.50 角色:datanode,nodemanager(节点)
实例:
HDFS完全分布式系统配置
配置 Hadoop-env.sh
配置 core-site.xml
配置 hdfs-site.xml
[root@xx ~]# yum -y install java-1.8.0-openjdk-devel.x86_64(在所有主机上操作)
[root@xx ~]# jps(在所有主机上执行命令查看)
2132 Jps
[root@xx ~]# java -version
openjdk version "1.8.0_131"
配置 Hadoop-env.sh(配置环境变量)
[root@xx ~]# tar -xvf hadoop-2.8.4.tar.gz -C /usr/local/(把Hadoop解压到/usr/loacl/)
[root@xx local]# mv hadoop-2.8.4/ hadoop(到目录下重命名为hadoop)
[root@xx ~]# readlink -f $(which java)(找到jre的家目录)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre/bin/java
[root@xx ~]# cd /usr/local/hadoop/etc/hadoop/
[root@xx hadoop]# vim hadoop-env.sh (配置环境变量)
# The java implementation to use.
export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre"(把jre的家目录覆盖上去)
export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop"(Hadoop的配置文件目录,默认不是这个,要修改)
配置 core-site.xml
[root@xx hadoop]# vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://xx.sec.com:9000</value>(使用集群文件系统,namenode主机及端口)
</property>
<property>
<name>hadoop.tmp.dir</name>(Hadoop数据存放地址)
<value>/var/hadoop</value>(数据存放路径)
</property>
</configuration>
[root@xx hadoop]# mkdir /var/hadoop(var下默认是没有Hadoop这个文件夹的,要创建一个文件,且要在所有主机上创建这个文件夹)
[root@xxx ~]# mkdir /var/hadoop
[root@xxxx ~]# mkdir /var/hadoop
[root@xxxxx ~]# mkdir /var/hadoop
配置 hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.http-address</name>(namenode主机)
<value>xx.sec.com:50070</value>(地址,端口)
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>xx.sec.com:50090</value>
</property>
<property>
<name>dfs.replication</name>(数据冗余,备份)
<value>2</value>(备份两份)
</property>
</configuration>
[root@xx hadoop]# vim slaves(编辑这个文件,没有就创建一个,这个文件是namenode集群的主机节点,写上hosts文件里的节点主机,且这里面的主机,不用输入密码也能登录)
xxx.sec.com
xxxx.sec.com
xxxxx.sec.com
[root@xx ~]# scp -r /usr/local/hadoop/ 172.16.232.30:/usr/local/(把xx主机/usr/local/hadoop拷贝到所有集群接节点上)
[root@xx ~]# scp -r /usr/local/hadoop/ 172.16.232.40:/usr/local/
[root@xx ~]# scp -r /usr/local/hadoop/ 172.16.232.50:/usr/local/
[root@xx ~]# cd /usr/local/hadoop/bin/(到目录下)
[root@xx bin]# ./hadoop version(到所有节点上执行命令,出现以下版本信息就成功安装了完全分布式)
Hadoop 2.8.4
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 17e75c2a11685af3e043aa5e604dc831e5b14674
Compiled by jdu on 2018-05-08T02:50Z
Compiled with protoc 2.5.0
From source with checksum b02a59bb17646783210e979bea443b0
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.8.4.jar
[root@xx ~]# cd /usr/local/hadoop/
[root@xx hadoop]# ./bin/hdfs namenode -format(执行格式化操作namenode -format,只在master主机上操作)
.............
18/05/30 20:07:15 INFO common.Storage: Storage directory /var/hadoop/dfs/name has been successfully formatted.(存储目录格式化成功就说明成功了,没有就根据报错排错)
.............
[root@xx hadoop]# ./sbin/start-dfs.sh (也是只在master主机上执行)
[root@xx hadoop]# jps(执行jps后可以看到节点主机说明没问题了)
[root@xx hadoop]# jps
3442 Jps
3319 SecondaryNameNode
1548 ResourceManager
3132 NameNode
到其他客户机执行jps也要看到信息
[root@xxx hadoop]# jps
2070 DataNode
2238 Jps
[root@xxxx hadoop]# jps
1987 DataNode
2157 Jps
[root@xxxxx hadoop]# jps
2145 Jps
1986 DataNode
[root@xx hadoop]# ./bin/hdfs dfsadmin -report(在master主机执行命令,可以看到所有节点主机的信息就完成了)
Configured Capacity: 160982630400 (149.93 GB)
Present Capacity: 154619985920 (144.00 GB)
DFS Remaining: 154619961344 (144.00 GB)
............................
-------------------------------------------------
Live datanodes (3):
Name: 172.16.232.30:50010 (xxx.sec.com)
Hostname: xxx.sec.com
Decommission Status : Normal
Configured Capacity: 53660876800 (49.98 GB)
.............................
Name: 172.16.232.40:50010 (xxxx.sec.com)
Hostname: xxxx.sec.com
Decommission Status : Normal
Configured Capacity: 53660876800 (49.98 GB)
..............................
Name: 172.16.232.50:50010 (xxxxx.sec.com)
Hostname: xxxxx.sec.com
Decommission Status : Normal
Configured Capacity: 53660876800 (49.98 GB)
.............................
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-
HDFS使用
HDFS基本命令(格式其实就是./bin/hadoop fs -后面追加标准的shell命令)
./bin/hadoop fs -ls / 对应shell命令 ls /
./bin/hadoop/ fs -mkdir /xxx 对应shell命令 mkdir /xxx
./bin/hadoop/ fs -rmdir /xxx 对应shell命令 rmdir /xxx
[root@xx hadoop]# ./bin/hadoop fs(回车显示常用的命令)
Usage: hadoop fs [generic options]
[-appendToFile <localsrc> ... <dst>]
[-cat [-ignoreCrc] <src> ...]
[-checksum <src> ...]
[-chgrp [-R] GROUP PATH...]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-copyFromLocal [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
[-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] <path> ...]
[-cp [-f] [-p | -p[topax]] [-d] <src> ... <dst>]
[-createSnapshot <snapshotDir> [<snapshotName>]]
[-deleteSnapshot <snapshotDir> <snapshotName>]
[-df [-h] [<path> ...]]
[-du [-s] [-h] [-x] <path> ...]
[-expunge]
[-find <path> ... <expression> ...]
[-get [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-getfacl [-R] <path>]
[-getfattr [-R] {-n name | -d} [-e en] <path>]
[-getmerge [-nl] [-skip-empty-file] <src> <localdst>]
[-help [cmd ...]]
[-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [<path> ...]]
[-mkdir [-p] <path> ...]
[-moveFromLocal <localsrc> ... <dst>]
[-moveToLocal <src> <localdst>]
[-mv <src> ... <dst>]
[-put [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
[-renameSnapshot <snapshotDir> <oldName> <newName>]
[-rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ...]
[-rmdir [--ignore-fail-on-non-empty] <dir> ...]
[-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
[-setfattr {-n name [-v value] | -x name} <path>]
[-setrep [-R] [-w] <rep> <path> ...]
[-stat [format] <path> ...]
[-tail [-f] <file>]
[-test -[defsz] <path>]
[-text [-ignoreCrc] <src> ...]
[-touchz <path> ...]
[-truncate [-w] <length> <path> ...]
[-usage [cmd ...]]