Hadoop命令行,首先启动Hadoop服务,然后通过终端输入Hadoop相关命令进行操作,
如何使用Hadoop命令行
Hadoop环境准备
步骤 | 操作详情 |
---|---|
安装Hadoop | 从官网(https://hadoop.apache.org/releases/)下载适合你操作系统的稳定版本Hadoop安装包,解压到指定目录,例如在Linux系统中,将其解压到/usr/local/hadoop 目录下。 |
配置环境变量 | 编辑~/.bashrc (对于bash shell)或~/.zshrc (对于zsh shell)文件,添加以下内容:export HADOOP_HOME=/usr/local/hadoop<br>export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 然后执行 source ~/.bashrc (或对应的shell配置文件)使环境变量生效。 |
配置Hadoop核心文件 | 在$HADOOP_HOME/etc/hadoop 目录下,主要修改以下文件:core-site.xml:配置Hadoop的核心参数,如设置NameNode的地址等,示例如下: xml<property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property> hdfs-site.xml:用于HDFS的配置,可设置副本因子等。 xml<property><name>dfs.replication</name><value>3</value></property> mapred-site.xml:配置MapReduce相关参数,如JobTracker地址等。 |
HDFS相关命令
文件系统操作
命令 | 功能描述 | 示例 |
---|---|---|
hadoop fs -ls [路径] |
列出指定路径下的文件和目录信息,如果不指定路径,则列出当前用户的根目录。 | hadoop fs -ls / hadoop fs -ls /user/hadoop |
hadoop fs -mkdir [路径] |
创建目录。 | hadoop fs -mkdir /user/hadoop/data |
hadoop fs -rm -r [路径] |
递归删除文件或目录。 | hadoop fs -rm -r /user/hadoop/data |
hadoop fs -put [本地文件路径] [HDFS目标路径] |
将本地文件上传到HDFS指定路径。 | hadoop fs -put /home/hadoop/data.txt /user/hadoop/ |
hadoop fs -get [HDFS文件路径] [本地目标路径] |
将HDFS文件下载到本地指定路径。 | hadoop fs -get /user/hadoop/data.txt /home/hadoop/ |
文件权限管理
命令 | 功能描述 | 示例 |
---|---|---|
hadoop fs -chmod [权限模式] [路径] |
修改HDFS文件或目录的权限,权限模式与Linux类似,如755 表示所有者有读、写、执行权限,组用户有读、执行权限,其他用户有读、执行权限。 |
hadoop fs -chmod 755 /user/hadoop/data |
hadoop fs -chown [所有者]:[所属组] [路径] |
修改HDFS文件或目录的所有者和所属组。 | hadoop fs -chown hadoop:hadoop /user/hadoop/data |
查看文件内容
命令 | 功能描述 | 示例 |
---|---|---|
hadoop fs -cat [文件路径] |
显示HDFS文件的内容。 | hadoop fs -cat /user/hadoop/data.txt |
hadoop fs -head [文件路径] |
显示HDFS文件的前几行内容,默认是前1KB。 | hadoop fs -head /user/hadoop/data.txt |
hadoop fs -tail [文件路径] |
显示HDFS文件的后几行内容,默认是后1KB。 | hadoop fs -tail /user/hadoop/data.txt |
MapReduce相关命令
提交作业
命令 | 功能描述 | 示例 |
---|---|---|
hadoop jar [作业jar包路径] [主类名] [输入路径] [输出路径] |
提交MapReduce作业,作业jar包是包含MapReduce程序的jar文件,主类名是包含main 方法的类,输入路径和输出路径分别是HDFS上的路径。 |
假设有一个名为mywordcount.jar 的WordCount程序jar包,主类名为MyWordCount ,输入数据在/user/hadoop/input ,输出结果想保存到/user/hadoop/output ,则命令为:hadoop jar mywordcount.jar MyWordCount /user/hadoop/input /user/hadoop/output |
查看作业状态
命令 | 功能描述 | 示例 |
---|---|---|
hadoop job -list |
列出所有正在运行的作业。 | hadoop job -list |
hadoop job -status [作业ID] |
查看指定作业的状态,作业ID可以通过hadoop job -list 命令获取。 |
hadoop job -status job_1640968790560_0001 |
杀死作业
命令 | 功能描述 | 示例 |
---|---|---|
hadoop job -kill [作业ID] |
杀死指定的作业。 | hadoop job -kill job_1640968790560_0001 |
YARN相关命令(如果使用YARN资源管理器)
提交应用程序
命令 | 功能描述 | 示例 |
---|---|---|
yarn jar [作业jar包路径] [主类名] [输入路径] [输出路径] |
在YARN上提交应用程序,类似于Hadoop的作业提交命令,但适用于基于YARN的资源管理。 | 假设有一个名为yarnwordcount.jar 的WordCount程序jar包,主类名为YarnWordCount ,输入数据在/user/yarnuser/input ,输出结果想保存到/user/yarnuser/output ,则命令为:yarn jar yarnwordcount.jar YarnWordCount /user/yarnuser/input /user/yarnuser/output |
查看应用程序状态
命令 | 功能描述 | 示例 |
---|---|---|
yarn application -list |
列出所有正在运行的YARN应用程序。 | yarn application -list |
yarn application -status [应用程序ID] |
查看指定YARN应用程序的状态,应用程序ID可以通过yarn application -list 命令获取。 |
yarn application -status application_1640968790560_0001 |
杀死应用程序
命令 | 功能描述 | 示例 |
---|---|---|
yarn application -kill [应用程序ID] |
杀死指定的YARN应用程序。 | yarn application -kill application_1640968790560_0001 |
相关问题与解答:
问题1:在执行hadoop jar
命令提交作业时,出现“ClassNotFoundException”异常是什么原因?
解答:这通常是因为指定的主类名在作业jar包中不存在或者没有正确设置类路径,请确保主类名拼写正确,并且该类在jar包中能够被找到,如果主类依赖其他外部jar包,需要将这些外部jar包也添加到类路径中,可以使用-libjars
选项来指定外部jar包的路径。hadoop jar myjob.jar MyMainClass -libjars lib1.jar,lib2.jar input_path output_path
。
问题2:如何查看HDFS集群中某个节点的磁盘使用情况?
解答:可以使用hdfs dfsadmin -report
命令查看HDFS集群的整体状态,其中包括各个节点的磁盘使用情况等信息,该命令会显示 NameNode 的信息、集群中 DataNode 的数量、每个 DataNode 的详细信息(如所在主机、版本、容量、剩余空间等),如果想查看更详细的某个节点的磁盘使用情况,可以结合操作系统的命令,如在Linux系统中,
到此,以上就是小编对于怎么使用hadoop命令行的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/13465.html