1. ssh远程命令脚本Commands.sh

    Commands.sh
    #!/bin/bash
    params=$@
    $params
    i=1
    for((i=1;i<=2;i=$i+1));do
        echo ======== slave$i $params===========
        ssh slave$i "$params"
    done
    #vim test
    
    

    遇到ssh远程命令找不到

    bash: ***: command not found

    • 配置好所需环境【.bashrc】

      当你没有配置你所需环境时,非系统环境变量/etc/profile,就会找不到命令。

      如:java环境未在.bashrc中配置。

      解决:

      	 export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
         	 export HADOOP_INSTALL=/usr/local/hadoop
           export PATH=$PATH:$HADOOP_INSTALL/bin
           export PATH=$PATH:$HADOOP_INSTALL/sbin
           export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
           export HADOOP_COMMON_HOME=$HADOOP_INSTALL
           export HADOOP_HDFS_HOME=$HADOOP_INSTALL
           export YARN_HOME=$HADOOP_INSTALL
           export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
           export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
      
  2. namenode或datanode无法启动

    一般是下面几种原因:

    • 多次Hadoop namenode -format导致clusterID不一致

      • 解决办法1:

        关闭hadoop所有程序

        stop-all.sh
        

        删除tmp临时文件

        在hadoop根目录下执行

        rm -rf ./tmp
        

        重新格式化namenode

        hdfs namenode -format
        
    • hdfs配置文件出错

  3. 无法启动子节点

    • 如果是节点初始化后出现,可以尝试删除各节点hadoop目录下./tmp目录,再重新进行初始化。
    • 如果是在节点重启后,可以尝试关闭所有节点重新启动hadoop集群。
  4. 权限问题

    执行./start-all.sh等命令时,提示-bash: ./startup.sh: Permission denied

    解决办法:用命令chmod修改权限

    chmod u+x *.sh

  5. 权限问题一定要注意!

    • 记住在开发系统中所用的用户,如:我常在master节点及slave节点中创建hadoop用户来进行操作,此时的hadoop目录应在hadoop用户下有操作权限。
  6. IDEA向hadoop发起请求报错Name node is in safe mode.

    原因:hadoop平台下Datanode节点进入了安全模式。

    为什么会进入安全模式呢?1、NameNode发现集群中DataNode丢失达到一定比例(0.01%)时会进入安全模式,此时只允许查看数据不允许对数据进行任何操作。

    2、HDFS集群即使启动正常,启动只会依旧会进入安全模式一段时间,这时你不需要理会他,稍等片刻即可。

    3、集群升级维护时手动进入安全模式。

    解决:hadoop dfsadmin -safemode leave

  7. IDEA win环境下向hadoop发起请求,提示Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

    原因:本机环境下,hadoop单机模式搭建或配置出错。 点击下载hadoop-win所需文件

    解决: 步骤一(必须有的步骤):

    1. 配置Hadoop环境变量

    2. 在hadoop安装目录\bin目录导入winutils.exe、hadoop.dll

    3. 在windows安装盘下\windows\System32\目录下导入hadoop.dll

    ​ 步骤二:

    如果步骤一都已正确导入仍报错,那么可以重启一下,可能是环境变量没刷新,导致hadoop未被java读取到,重启之后会刷新。

    ​ 步骤三(最终方案):

    如果步骤一都已正确导入仍报错,步骤二也无效,那么可以在java文件中添加System.setProperty("hadoop.home.dir","此处替换为hadoop安装目录")