赋给hadoop用户hadoop-1.2.1读写权限
- [root@master usr]# chown -R hadoop121:hadoop121 hadoop-1.2.1/
折腾了两个小时,终于把hadoop的6个进程全部启动起来了。(其中jps不是任务,其他5个是,分别是NameNode,SecondaryNameNode, DataNode, JobTracker, TaskTracker )
我之前的猜测,比如~/.bashrc文件里CLASSPATH没有配置的原因给否决掉了,不是文件配置的问题。是权限的问题!
chown或者chmod
安装并配置好hadoop后,至少有一个进程,即jps,或者三个,即jps,namenode,jobtracker;
1.单机上,如果出现ssh 。。。confused问题,则请sudo apt-get install openssh-server;
此时至少会启动3个进程,即jps,namenode,jobtracker;
在单机上配置时,所有有关ssh的配置都不要配,需要的时候再配置也行;
2.在hadoop-env.sh文件里添加如下一条语句:
export JAVA_HOME=/usr/local/lib/jdk1.6.0_40Note:HADOOP_HOME有关的千万不要放开,只配置JAVA_HOME就够了
2.查看core-site.xml和mapred-site.xml文件
core-site.xml文件中
- fs.default.name
- hdfs://localhost:9000
mapred-site.xml文件中
- mapred.job.tracker
- localhost:9001
一个有hdfs://开头,一个没有
这时应该可以启动5个进程了,一般是DataNode没有启动;
3. 学会查看日志,去hadoop安装目录下的logs目录里找到datanode的日志(还有很多其他任务的日志),打开查看,出现的问题都会在里面显示;在网上查看了一番,datanode没有启动大都是权限的问题!要么chmod,要么chown;
chmod了一个data所在的目录,没起作用,chown这句一执行,所有的进程(5个任务+1个jps)瞬间都启动了
sudo chown -R hadoop121:hadoop121 hadoop-1.2.1/
有时需要先./bin/stop-all.sh ,再/bin/start-all.sh,或者./bin/hadoop namenode -format(namenode格式化)
发现linux下各种权限问题,这是刚开始在linux下编程的最大感触吧。