1 在hadoop的bin目录下, 运行hadoop version命令,提示“hadoop:没有此命令”
解决办法: ./hadoop version或者$HADOOP_HOME/bin放在PATH中。
2 为什么cat $PATH会出现空目录, 而source /etc/profile后设置的目录会出现,客户端启动的时候/etc/profile不执行一遍吗?
3 格式化namenode的时候会出现“Format aborted in /home/feixiang/hadoop-0.20.2/hdfs/name”, 如果不格式化,start-all.sh时候会没有namenode节点,查看logs下日志,会提示namenode没有格式化
解决办法,把自己手动创建的目录删除掉,hadoop namenode -format运行的时候会创建相应的目录,如果你已经建立好啦,就会报失败,估计HDFS的文件格式和我们系统的文件格式是两种格式,并且和我们常用的文件系统不同的是,hdfs当遇到需要创建的文件名已经存在的时候,不是去覆盖,而是直接返回失败。
4 Hadoop在core-site.xml中指定namenode的位置,在mapred-site.xml中指定jobtracker的位置,为什么只格式化namenode,不格式化其他的文件?
各个参数的设置:
<!--core-site.xml-->
fs.default.dir 指定文件系统(默认色是HDFS)的位置和类型
io.file.buffer.size 辅助I/O操作的缓冲区大小
dfs.block.size 设置块的大小
dfs.datanode.du.reserved 指定保留空间的大小
fs.trash.interval 回收站的设置
<!--hdfs-site.xml-->
dfs.name.dir 存储永久性的元数据的目录列表,包括远程目录,namenode在列表上的各个目录中会存放相同的元数据文件,和辅助namenode不同的是,辅助namenode定期保持namenode的检查点
dfs.data.dir hdfs存储数据的目录,可以支持多个目录,可以循环的在各个目录中写数据
fs.checkpoint.dir 保存检查点的目录
<!--mapred-site.xml-->
mapred.job.tracker 用于指定jobtracker的主机名和端口
mapred.local.dir 用于存放map-reduce的中间数据, 默认${hadoop.tmp.dir}/mapred/local
mapred.system.dir 用于存放map-reduce的共享文件的目录, 默认${hadoop.tmp.dir}/mapred/system
mapred.tasktracker.map.tasks.maximum,默认2
mapred.tasktracker.reduce.tasks.maximum,默认2