千家信息网

hadoop MapReduce初试遇到的问题

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,hadoop MapReduce初试遇到的问题./hadoop jar ./MapReduce-jar-with-dependencies.jar com.hc360.mp.WordCountHbas
千家信息网最后更新 2024年11月18日hadoop MapReduce初试遇到的问题

hadoop MapReduce初试遇到的问题


./hadoop jar ./MapReduce-jar-with-dependencies.jar com.hc360.mp.WordCountHbaseReader /user/hbase/tabelname01 tablename

在hadoop集群上执行 MapReduce任务时,需要用到许多依赖jar,一般情况下都是在执行时,在执行命令上进行配置指定,这样会造成执行命令太长,并且容易出错,有时还想带几个参数信息,这样更容易出错;

比较好的处理方法是,在生成运行jar时,将需要的依赖jar打包到运行jar中,这样在执行时所有依赖的jar都有了,就不用指定了。


./hdfs dfs -rmr /user/hbase/

hdfs上已有的文件不能进行覆盖,生成文件时必须是没有的新文件,可以在产生文件前执行以上命令清除已有的文件:


16/07/19 18:26:08 INFO ipc.Client: Retrying connect to server: xxxx/192.168.xx.xx:8032. Already tried 4 time(s); retry policy is etryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)

hadoop集群上,如果没有启动 yarn(MapReduce),当运行MapReduce任务时,会提示上面的信息;

当执行hadoop的shell命令时,如果提示类似上面的信息,可以查看是否启动了hadoop进程。


java.lang.IllegalArgumentException: Does not contain a valid host:port authority:

java.net.UnknownHostException

hadoop集群的hostname配置,主机名不要包含下划线"_",但可以有横线"-"。

在hadoop集群中每个机器都要配置集群所有机器的hostname域名,以便相互访问。

这里分享一个血的教训,在给hostname起名字的时候一定要注意,虽然linux支持一些特殊字符,但java里面并不支持,所以hostname的命名一定要使用数字和字母(以点号分隔)。如果起的hostname包含了特殊字符下划线,导致hadoop运行时候的reduce阶段出错。


0