HDFS调优

在agent1 ~ agent9上执行以下调优。

JVM编译参数优化

  1. 将jvm编译线程数量修改为2。

    1. 打开“mapred-site.xml”
      1
      vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
      
    2. “i”进入编辑模式,添加如下内容。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      <property>
          <name>mapreduce.map.java.opts</name>
          <value>-Xmx5530m -XX:CICompilerCount=2</value>
      </property>
      <property>
          <name>mapreduce.reduce.java.opts</name>
          <value>-Xmx2765m -XX:CICompilerCount=2</value>
      </property>
      <property>
          <name>mapred.child.java.opts</name>
          <value>-Xmx2048m -Xms2048m -XX:CICompilerCount=2</value>
      </property>
      

      HDFS默认配置中已经包含mapreduce.map.java.opts,mapreduce.reduce.java.opts,mapred.child.java.opts,仅需要在对应value后添加-XX:CICompilerCount=2。

    3. “Esc”键退出编辑模式,输入“:wq!”后按“Enter”键保存并退出文件。

  2. 重启HDFS。

    在server1节点执行以下命令。
    1
    2
    3
    /usr/local/hadoop/sbin/stop-all.sh
    /usr/local/hadoop/sbin/start-all.sh
    hdfs dfsadmin -safemode leave
    

BiSheng JDK优化

  1. 请参见毕昇JDK 8 安装指南安装BiSheng JDK。
  2. 在server1节点将HDFS的jdk修改为BiSheng JDK。

    1. 打开“hadoop-env.sh”
      1
      vi /usr/local/hadoop/etc/hadoop/hadoop-env.sh
      
    2. “i”进入编辑模式,修改JAVA_HOME路径。
      1
      export JAVA_HOME=/usr/local/bisheng-jdk1.8.0_422
      

      “/usr/local/bisheng-jdk1.8.0_422”为BiSheng JDK安装路径,根据实际情况进行修改。

    3. “Esc”键退出编辑模式,输入“:wq!”后按“Enter”键保存并退出文件。

  3. 将hadoop-env.sh拷贝至agent节点。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    scp /usr/local/hadoop/etc/hadoop/hadoop-env.sh agent1:/usr/local/hadoop/etc/hadoop/
    scp /usr/local/hadoop/etc/hadoop/hadoop-env.sh agent2:/usr/local/hadoop/etc/hadoop/
    scp /usr/local/hadoop/etc/hadoop/hadoop-env.sh agent3:/usr/local/hadoop/etc/hadoop/
    scp /usr/local/hadoop/etc/hadoop/hadoop-env.sh agent4:/usr/local/hadoop/etc/hadoop/
    scp /usr/local/hadoop/etc/hadoop/hadoop-env.sh agent5:/usr/local/hadoop/etc/hadoop/
    scp /usr/local/hadoop/etc/hadoop/hadoop-env.sh agent6:/usr/local/hadoop/etc/hadoop/
    scp /usr/local/hadoop/etc/hadoop/hadoop-env.sh agent7:/usr/local/hadoop/etc/hadoop/
    scp /usr/local/hadoop/etc/hadoop/hadoop-env.sh agent8:/usr/local/hadoop/etc/hadoop/
    scp /usr/local/hadoop/etc/hadoop/hadoop-env.sh agent9:/usr/local/hadoop/etc/hadoop/
    

  4. 重启HDFS。

    在server1节点执行以下命令。
    1
    2
    3
    /usr/local/hadoop/sbin/stop-all.sh
    /usr/local/hadoop/sbin/start-all.sh
    hdfs dfsadmin -safemode leave