zoukankan      html  css  js  c++  java
  • hadoop 2.2.0集群安装详细步骤(简单配置,无HA)

    1. 安装环境
      操作系统:CentOS 6.5 i586(32位)
      java环境:JDK 1.7.0.51
      hadoop版本:社区版本2.2.0,hadoop-2.2.0.tar.gz
    2. 安装准备
      设置集群的hosts,切换到root用户下,用vi编辑器修改/etc/hosts配置文件:
      vi /etc/hosts
      
      10.1.5.125 master
      10.1.5.126 slave1
      10.1.5.127 slave2
      
      127.0.0.1 localhost

      配置集群各个节点之间的ssh无密码互信,也就是从master开始,ssh到master、slave1和slave2上都不需要密码,反向ssh到master则不必设置。互信设置需要在hadoop2用户下执行命令如下:

      ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
      cat  ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
      scp ~/.ssh/authorized_keys hadoop@slave1:/home/hadoop/.ssh/
      scp ~/.ssh/authorized_keys hadoop@slave2:/home/hadoop/.ssh/

      这样就将生成的授权秘钥拷贝到了slave1和slave2的/home/hadoop2/.ssh目录下,还需要执行非常重要的一步才能实现无密码互信,修改权限:

      chmod 600 ~/.ssh/authorized_keys

      该步骤必须在master、slave1和slave2上分别执行

    3. hadoop安装
      将hadoop-2.2.0.tar.gz拷贝到hadoop2用户的工作目录/home/hadoop2,执行解压命令,并修改文件夹名称为hadoop2:
      tar -zxvf hadoop-2.2.0.tar.gz
      mv hadoop-2.2.0 hadoop2

      先配置hadoop2的环境变量,修改~/.bash_profile(JAVA_HOME、PATH和CLASSPATH已经在root用户下设置在/etc/profile文件中):

      vi .bash_profile
      
      export HADOOP_HOME=$HOME/hadoop2
      export HADOOP_MAPRED_HOME=${HADOOP_HOME}
      export HADOOP_COMMON_HOME=${HADOOP_HOME}
      export HADOOP_HDFS_HOME=${HADOOP_HOME}
      export YARN_HOME=${HADOOP_HOME}
      export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
      export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
      export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
      export HADOOP_LOG_DIR=${HADOOP_HOME}/logs
      export HADOOP_PID_DIR=/var/hadoop/pids
      
      执行source命令,立即生效:
      source .bash_profile

      进入hadoop2的配置文件夹~/hadoop2/etc/hadoop/目录下,修改配置各个文件,
      core-site.xml:

      vi core-site.xml
      
      <configuration>
      <property>
      <name>fs.defaultFS</name>
      <value>hdfs://master:9000</value>
      </property>
      
      <property>
      <name>io.file.buffer.size</name>
      <value>131072</value>
      </property>
      
      <property>
      <name>hadoop.tmp.dir</name>
      <value>file:/home/hadoop2/tmp</value>
      <description>Abase for other temporary directories.</description>
      </property>
      
      </configuration>

       hdfs-site.xml:

      vi hdfs-site.xml
      
      <configuration>
      <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>master:9001</value>
      </property>
      
      <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:/home/hadoop2/dfs/name</value>
      </property>
      
      <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:///home/hadoop2/dfs/data,/hdfs/data</value>
      </property>
      
      <property>
      <name>dfs.replication</name>
      <value>2</value>
      </property>
      
      <property>
      <name>dfs.webhdfs.enabled</name>
      <value>true</value>
      </property>
      
      </configuration>

      hadoop-env.sh(本机的安装路径为/opt/jdk1.7):

      vi hadoop-env.sh
      
      export JAVA_HOME=${JAVA_HOME}

      yarn-site.xml:

      vi yarn-site.xml
      
      <configuration>
      <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
      </property>
      
      <property>
      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
      <value>org.apache.hadoop.mapred.ShuffleHandler</value>
      </property>
      
      <property>
      <name>yarn.resourcemanager.address</name>
      <value>master:8032</value>
      </property>
      
      <property>
      <name>yarn.resourcemanager.scheduler.address</name>
      <value>master:8030</value>
      </property>
      
      <property>
      <name>yarn.resourcemanager.resource-tracker.address</name>
      <value>master:8031</value>
      </property>
      
      <property>
      
      <name>yarn.resourcemanager.admin.address</name>
      <value>master:8033</value>
      </property>
      
      <property>
      <name>yarn.resourcemanager.webapp.address</name>
      <value>master:8088</value>
      </property>
      </configuration>

      mapred-site.xml:

      vi mapred-site.xml
      
      <configuration>
      <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
      </property>
      
      <property>
      <name>mapreduce.jobhistory.address</name>
      <value>master:10020</value>
      </property>
      
      <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>master:19888</value>
      </property>
      
      </configuration>

      slaves:

      vi slaves
      
      master
      slave1
      slave2

      此设置中,将master也作为一个datanode节点来使用,只有在集群机器数量不足的情况下才会如此设置
      这样就设置完成了,然后将/home/hadoop2/hadoop2目录,整个拷贝到slave1和slave2的hadoop2的工作目录下,就算完成了安装:

      scp -r /home/hadoop2/hadoop2  slave1:/home/hadoop2
      scp -r /home/hadoop2/hadoop2  slave2:/home/hadoop2
    4. 启动集群
      执行hadoop2的sbin目录下的启动脚本:

      sbin/start-dfs.sh
      (此命令启动了namenode、secondaryNamenode以及datanode)
      
      sbin/start-yarn.sh
      (此命令启动了ResourceManager和NodeManager,相当于hadoop1中的jobtracker和TaskTracker)

      然后用jps命令来查看运行的java进程,如果下列进程都存在,则说明集群正常启动:

      NameNode
      SecondaryNameNode
      ResourceManager
      NodeManager
      DataNode

      至此,hadoop 2.2.0集群安装完毕。

    5. 注意事项
      需要注意的一点是:hadoop集群的进程pid文件默认保存在linux的/tmp目录下,而/tmp目录为保存临时文件的目录,会定期清除,所以我们最好手动修改hadoop集群的pid文件的存放目录。配置步骤如下:
      在/var目录下创建目录/var/hadoop/pids,作为hadoop的pid文件存放目录,并且需要修改目录的所有者和所属组群,因为hadoop2用户需要向该目录下写入pid文件

      cd /var
      sudo mkdir hadoop
      cd hadoop
      sudo mkdir pids
      
      sudo chown -R hadoop2:hadoop2 /var/hadoop/pids

      然后修改hadoop2的配置文件如下:

      vi hadoop-env.sh
      
      export HADOOP_PID_DIR=/var/hadoop/pids
      
      
      vi yarn-env.sh
      
      export YARN_PID_DIR=/var/hadoop/pids

      然后重新启动集群就可以了。

    6. 转载请注明出处:http://www.cnblogs.com/bxljoy/p/3880250.html 
       

  • 相关阅读:
    自定义UILabel的对齐方式
    获取iOS系统版本 --- UIDevice的使用
    iOS 照片多选
    iOS 手势+触摸事件
    IOS消息推送
    设置tableViewCell的背景颜色
    IOS_修改TableView的删除按钮的文本
    UIScrollView控件实现轮播图
    判断设备是不是第一次进入应用
    英语口语
  • 原文地址:https://www.cnblogs.com/bxljoy/p/3880250.html
Copyright © 2011-2022 走看看