Mac下Hadoop 出现问题(一)

Mac下的Hadoop,和网上别人的教程以及官方文档差别好像很大,我的是2.7.1版本,也可能是版本问题。

出了问题研究了很久,网上也找了很久。

1.tcd-pc$ hdfs dfs -put 2.7.1/tcd.docx input

这样是会报错的

解决方法:在input前面加上/  就是/input


2.tcd-pc$ jps

1637 FsShell
2341 NameNode
2549 SecondaryNameNode
1433 ResourceManager
1531 NodeManager
2623 Jps
没有启动datanode的问题
解决方法: 需要在日志文件里找到

WARN org.apache.hadoop.hdfs.server.common.Storage: java.io.IOException: Incompatible clusterIDs in /usr/local/Cellar/hadoop/hdfs/tmp/dfs/data:namenode clusterID = CID-6ba7328a-177b-41c7-a0a4-4169d70f056c; datanode clusterID = CID-ecf4ac97-db73-42f9-820e-2d9f83c2f310

然后在/usr/local/Cellar/hadoop/hdfs/tmp/dfs/name/current下找到version,修改namespaceid 为datanode一样的id

也可以datanode的namespaceid改为和namenodeid一样都可以

然后重启 发现datanode正常启动

1637 FsShell
3159 DataNode
3352 Jps
1433 ResourceManager
3066 NameNode
1531 NodeManager

3278 SecondaryNameNode

3.编写自己的MapReduce程序,直接抄WordCount,然后打包提交到Hadoop运行。

其中WordCount.java在 javac编译时,一直提示:

WordsCount.java:1: ?????? org.apache.hadoop.mapreduce ??????

import org.apache.hadoop.mapreduce.Job;

                                  ^

WordsCount.java:2: ?????? org.apache.hadoop.mapreduce ??????

import org.apache.hadoop.mapreduce.Mapper;

                                  ^

WordsCount.java:3: ?????? org.apache.hadoop.mapreduce ??????

import org.apache.hadoop.mapreduce.Reducer;

                                  ^

WordsCount.java:4: ?????? org.apache.hadoop.mapreduce.lib.input ??????

import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;

                                            ^

WordsCount.java:5: ?????? org.apache.hadoop.mapreduce.lib.output ??????

import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

                                             ^

WordsCount.java:10: ?????? org.apache.hadoop.conf ??????

import org.apache.hadoop.conf.Configuration;

                             ^

还有很多,主要原因是环境变量设置出错,最后本人在hadoop下vim 一个新的profile

tcd-pc$ sudo vim profile

添加环境变量

export HADOOP_HOME=/usr/local/Cellar/hadoop    # 如果没设置的话, 路径是hadoop安装目录
export PATH=$HADOOP_HOME/2.7.1/bin:$HADOOP_HOME/2.7.1/sbin:$PATH    # 如果没设置的话
export CLASSPATH=$($HADOOP_HOME/2.7.1/bin/hadoop classpath):$CLASSPATH  

然后一定要执行 source

tcd-pc$ source profile
再执行javac 你的java程序

会出现几个class文件 

执行

tcd-pc$ jar -cvf WordsCount.jar ./WordsCount*.class
把这几个class都打包成jar文件

提交执行

hadoop jar WordsCount.jar WordsCount /input /output2

4.之前用的好好的,今天start时候出现问题,提示缺少或无法加载主类 getconf 等

然后上网查,发下他们出问题都是安装时候出现的,而我是在使用了几天后才出现的,并没有路径错误

又看了很久的启动源码,最后试了下重新格式化namenode,居然成功了。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值