运行hadoop jar

1.
拷贝文件,注意端口号
hadoop jar first-hadoop-0.0.1-SNAPSHOT.jar ch03.FileCopyWithProgress Hello.class hdfs://localhost:9000/user/a.txt

hadoop jar first-hadoop-0.0.1-SNAPSHOT.jar ch03.FileCopyWithProgress Hello.class /user/a.txt


2.
运行jar里的Hello
hadoop jar first-hadoop-0.0.1-SNAPSHOT.jar hello.Hello


3.结果

12/04/12 23:59:12 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
12/04/12 23:59:12 INFO mapred.FileInputFormat: Total input paths to process : 1
12/04/12 23:59:12 INFO mapred.JobClient: Running job: job_201204122244_0006
12/04/12 23:59:13 INFO mapred.JobClient: map 0% reduce 0%
12/04/12 23:59:28 INFO mapred.JobClient: map 100% reduce 0%
12/04/12 23:59:40 INFO mapred.JobClient: map 100% reduce 100%
12/04/12 23:59:45 INFO mapred.JobClient: Job complete: job_201204122244_0006
12/04/12 23:59:45 INFO mapred.JobClient: Counters: 30
12/04/12 23:59:45 INFO mapred.JobClient: Job Counters
12/04/12 23:59:45 INFO mapred.JobClient: Launched reduce tasks=1
12/04/12 23:59:45 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=18796
12/04/12 23:59:45 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0
12/04/12 23:59:45 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0
12/04/12 23:59:45 INFO mapred.JobClient: Launched map tasks=2
12/04/12 23:59:45 INFO mapred.JobClient: Data-local map tasks=2
12/04/12 23:59:45 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=10227
12/04/12 23:59:45 INFO mapred.JobClient: File Input Format Counters
12/04/12 23:59:45 INFO mapred.JobClient: Bytes Read=1996
12/04/12 23:59:45 INFO mapred.JobClient: File Output Format Counters
12/04/12 23:59:45 INFO mapred.JobClient: Bytes Written=506
12/04/12 23:59:45 INFO mapred.JobClient: FileSystemCounters
12/04/12 23:59:45 INFO mapred.JobClient: FILE_BYTES_READ=696
12/04/12 23:59:45 INFO mapred.JobClient: HDFS_BYTES_READ=2166
12/04/12 23:59:45 INFO mapred.JobClient: FILE_BYTES_WRITTEN=64709
12/04/12 23:59:45 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=506
12/04/12 23:59:45 INFO mapred.JobClient: Map-Reduce Framework
12/04/12 23:59:45 INFO mapred.JobClient: Map output materialized bytes=702
12/04/12 23:59:45 INFO mapred.JobClient: Map input records=23
12/04/12 23:59:45 INFO mapred.JobClient: Reduce shuffle bytes=702
12/04/12 23:59:45 INFO mapred.JobClient: Spilled Records=92
12/04/12 23:59:45 INFO mapred.JobClient: Map output bytes=598
12/04/12 23:59:45 INFO mapred.JobClient: Total committed heap usage (bytes)=337780736
12/04/12 23:59:45 INFO mapred.JobClient: CPU time spent (ms)=1480
12/04/12 23:59:45 INFO mapred.JobClient: Map input bytes=1330
12/04/12 23:59:45 INFO mapred.JobClient: SPLIT_RAW_BYTES=170
12/04/12 23:59:45 INFO mapred.JobClient: Combine input records=0
12/04/12 23:59:45 INFO mapred.JobClient: Reduce input records=46
12/04/12 23:59:45 INFO mapred.JobClient: Reduce input groups=2
12/04/12 23:59:45 INFO mapred.JobClient: Combine output records=0
12/04/12 23:59:45 INFO mapred.JobClient: Physical memory (bytes) snapshot=324440064
12/04/12 23:59:45 INFO mapred.JobClient: Reduce output records=46
12/04/12 23:59:45 INFO mapred.JobClient: Virtual memory (bytes) snapshot=1121619968
12/04/12 23:59:45 INFO mapred.JobClient: Map output records=46


4.获取结果文件
-getmerge <src> <localdst>

拷贝到本地
hadoop fs -getmerge hdfs://localhost:9000/user/c.txt c.txt
hadoop fs -getmerge /user/c.txt c.txt


直接查看
hadoop fs -cat /user/c.txt/part-00000


5.hadoop存储文件目录/tmp/hadoop-root/dfs/data/current
<think>好的,我现在需要帮助用户解决在node01上运行Hadoop WordCount任务时的配置或操作问题。用户的具体问题是如何正确上传wordcount-1.0-SNAPSHOT.jar到node01的家目录并在Hadoop运行WordCountJob。 首先,我需要回顾用户提供的引用内容。引用[1]提到了运行WordCount的命令,使用hadoop jar命令,并指定输入输出路径。引用[2]则涉及数据准备步骤,包括创建文件、上传到HDFS以及IDEA写程序的部分。用户现在的问题集中在Jar包的上传和运行步骤,可能需要更详细的指导。 接下来,我需要考虑用户可能的操作步骤。首先,如何将本地的Jar文件上传到node01的家目录。常见的方法有使用scp命令或者sftp工具,比如FileZilla。用户可能对scp命令不熟悉,需要给出具体的命令示例。例如,scp命令需要本地路径、远程主机的用户名和IP地址,以及目标路径。 然后,上传完成后,用户需要运行Hadoop任务。根据引用[1],运行命令是hadoop jar加上Jar包路径、主类名、输入和输出目录。但用户可能没有明确主类名是否需要在命令中指定,或者是否需要其他参数。这里需要提醒用户检查Jar包是否包含主类信息,或者是否需要手动指定。 另外,用户需要注意HDFS上的输入和输出路径是否正确。输入目录是否存在数据文件,输出目录是否为空,否则任务会失败。引用[2]中提到需要将数据上传到HDFS的/wordcount/目录,用户需要确认自己的输入路径是否与此一致,或者根据实际情况调整。 可能的错误点包括:Jar包上传路径错误,Hadoop命令权限问题,输入输出路径不存在,或者输出目录已存在。需要提醒用户检查这些方面,并提供相应的解决步骤,比如创建目录、删除已存在的输出目录等。 最后,用户可能需要验证任务是否成功,查看输出文件的内容是否正确。可以指导用户使用hdfs dfs -cat命令来查看结果。 总结步骤应该是: 1. 上传Jar包到node01的家目录,使用scp或sftp。 2. 确保输入数据已经上传到HDFS的正确路径。 3. 运行hadoop jar命令,指定Jar包、主类(如果需要)、输入和输出路径。 4. 处理可能的错误,如输出目录存在、权限问题等。 5. 检查输出结果。 需要确保每个步骤的命令准确,并且注意事项明确,比如输出目录必须不存在,Hadoop服务是否正常运行等。同时,根据引用内容中的示例,用户可能需要调整自己的路径和命令参数,因此需要给出具体的例子,如使用/data/in和/data/out这样的路径,或者用户自己的路径。 可能还需要提醒用户关于Jar包的正确性,是否包含所有依赖,或者是否需要重新编译。如果用户自己打包的Jar有问题,可能导致任务失败,但这个问题可能超出了当前问题范围,属于开发环节的问题。 总之,回答需要分步骤详细说明上传和运行过程,结合用户提供的引用内容,给出具体的命令和注意事项,确保用户能够按照步骤操作并解决问题。</think>### 分步解决方案:上传并运行Hadoop WordCount任务 #### **步骤1:上传JAR文件到node01家目录** **方法1:使用`scp`命令(本地到远程)** 在本地终端执行以下命令(假设node01的IP为`192.168.1.100`,用户名为`hadoop`): ```bash scp wordcount-1.0-SNAPSHOT.jar hadoop@192.168.1.100:~/ ``` - 输入node01的密码后,JAR文件会上传到`/home/hadoop/`目录[^2]。 **方法2:使用SFTP工具(如FileZilla)** 1. 连接node01的SFTP服务(IP、用户名、密码)。 2. 将本地JAR文件拖拽到远程家目录中。 --- #### **步骤2:确认HDFS输入数据已准备** 确保输入文件已上传到HDFS的指定路径(例如`/wordcount/input`): ```bash hdfs dfs -ls /wordcount/input # 检查输入文件是否存在 ``` 如果未上传,按以下步骤操作: 1. 本地创建输入文件并上传到HDFS: ```bash hdfs dfs -mkdir -p /wordcount/input hdfs dfs -put wordcount.txt /wordcount/input/ ``` --- #### **步骤3:运行WordCount任务** 在node01上执行以下命令: ```bash hadoop jar ~/wordcount-1.0-SNAPSHOT.jar WordCountJob /wordcount/input /wordcount/output ``` - **关键参数说明**: - `WordCountJob`:主类名称(需与JAR包中的类名一致)。 - `/wordcount/input`:HDFS输入路径(需包含数据文件)。 - `/wordcount/output`:HDFS输出路径(必须不存在,否则会报错)[^1]。 --- #### **步骤4:处理常见错误** 1. **输出目录已存在**: ```bash hdfs dfs -rm -r /wordcount/output # 删除旧目录 ``` 2. **权限问题**: ```bash hdfs dfs -chmod 777 /wordcount # 确保用户有读写权限 ``` 3. **JAR包主类未找到**: - 检查打包时是否指定了主类(如Maven配置)。 - 或在命令中显式指定主类: ```bash hadoop jar ~/wordcount.jar com.example.WordCountJob ... ``` --- #### **步骤5:验证结果** 查看输出文件内容: ```bash hdfs dfs -cat /wordcount/output/part-r-00000 ``` 若输出包含单词统计结果(如`hello 2`),则任务成功。 --- ### **流程图总结** ``` 上传JAR → 准备HDFS输入 → 运行任务 → 检查输出 → 处理错误 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值