1. 安装虚拟机环境(4台centos6.5)
  2. 修改主机名,设置各个节点的ip

    修改主机名:

    1. su root;
    2. vim /etc/sysconfig/network 
      修改HOSTNAME = XXX
    3. 重启 reboot。

    设置ip节点:

    1. vim /etc/hosts
    2. #IPAddress HostName(例如:127.0.0.1 hadoop)

    需要先ping通四台虚拟机(举例:vmware)

    1. 修改vm的网络连接设置为桥接网络。
    2. 对每个虚拟机的网络设置改成nat网络
    3. 修改ip地址,vim /etc/sysconfig/network-scripts/ifcfg-eth0

      只修改IPADDR,根据nat网络地址改,除了.0,.2,.255

      重启/etc/init.d/network restart

      注:1. 要注意修改BOOTPROTO为none,否则可能导致修改是否 2.要修改MAC地址,防止mac冲突

    4. 修改主机名,vim /etc/sysconfig/network(修改完要重启,一般该文件中只有一个 127.0.0.1,其对应名为 localhost,如果有多余的应删除,特别是不能有 “127.0.0.1 Master” 这样的记录)
    5. 修改ip映射关系,vim /etc/hosts 注(每台虚拟机都需要修改。ip映射关系需要写全。)
  3. ssh免密码登陆

    1. cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
    2. rm ./id_rsa* # 删除之前生成的公匙(如果有)
    3. ssh-keygen -t rsa # 一直按回车就可以
    4. cat ./idrsa.pub >> ./authorizedkeys #本机自己无需密码登陆
    5. 同时复制到其他节点上去 scp ~/.ssh/id_rsa.pub hadoop@hadoop01:/usr/local 原因:通过客户的公匙与本地的私匙生成的字码对照,如果一样允许
  4. 安装jdk(配置环境变量各个节点都需要单独配置,包括hadoop)

    1. 下载jdk文件并解压(例如:下载文件放在/usr/local/下,新建一个java文件夹,在java文件夹内解压jdk文件)
    2. 配置环境变量:vim /etc/profile加入以下三行代码:

      #JAVA_HOME
      JAVA_HOME=/usr/local/java/jdk1.8.0121
      JRE_HOME=$JAVA
      HOME/jdk1.8.0121/jre
      CLASSPATH=:$JAVAHOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar
      PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
      export JAVA
      HOME JRE
      HOME PATH CLASSPATH

    3. 执行resource /etc/profile使得环境变量生效
    4. 执行java -version查看java版本(同时检验是否安装成功) 5.安装hadoop
    5. 下载hadoop文件并解压(例如解压在/usr/local/hadoop目录下)
    6. 配置环境变量:vim /etc/profile加入以下代码:

      export HADOOP_HOME=/usr/local/hadoop/hadoop-2.8.0
      export HADOOP_COMMON_HOME=$HADOOP_HOME
      export HADOOP_HDFS_HOME=$HADOOP_HOME
      export HADOOP_MAPRED_HOME=$HADOOP_HOME
      export HADOOP_YARN_HOME=$HADOOP_HOME
      export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
      export CLASSPATH=.:$JAVAHOME/lib:$HADOOP_HOME/lib:$CLASSPATH
      export PATH=$PATH:$HADOOP
      HOME/bin:$HADOOP_HOME/sbin

    7. 执行source /etc/profile使得环境变量生效
  5. 集群/分布式模式需要修改 /usr/local/hadoop/etc/hadoop 中的5个配置文件,更多设置项可点击查看官方说明,这里仅设置了正常启动所必须的设置项: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 。
    1.  文件 slaves,将作为 DataNode 的主机名写入该文件,每行一个,默认为 localhost,所以在伪分布式配置时,节点即作为 NameNode 也作为 DataNode。分布式配置可以保留 localhost,也可以删掉,让 hadoop01节点仅作为 NameNode 使用。
    2. 文件 core-site.xml 改为下面的配置:   
      <configuration>
              <property>
                      <name>fs.defaultFS</name>
                      <value>hdfs://hadoop01:9000</value>
              </property>
              <property>
                      <name>hadoop.tmp.dir</name>
                      <value>file:/usr/local/hadoop/tmp</value>
                      <description>Abase for other temporary directories.</description>
              </property>
      </configuration>
    3. 文件 hdfs-site.xml,dfs.replication 一般设为 3
      <configuration>
              <property>
                      <name>dfs.namenode.secondary.http-address</name>
                      <value>hadoop01:50090</value>
              </property>
              <property>
                      <name>dfs.replication</name>
                      <value>1</value>
              </property>
              <property>
                      <name>dfs.namenode.name.dir</name>
                      <value>file:/usr/local/hadoop/tmp/dfs/name</value>
              </property>
              <property>
                      <name>dfs.datanode.data.dir</name>
                      <value>file:/usr/local/hadoop/tmp/dfs/data</value>
              </property>
      </configuration>
    4. 文件 mapred-site.xml (可能需要先重命名,默认文件名为 mapred-site.xml.template),然后配置修改如下:
      <configuration>
              <property>
                      <name>mapreduce.framework.name</name>
                      <value>yarn</value>
              </property>
              <property>
                      <name>mapreduce.jobhistory.address</name>
                      <value>hadoop01:10020</value>
              </property>
              <property>
                      <name>mapreduce.jobhistory.webapp.address</name>
                      <value>hadoop01:19888</value>
              </property>
      </configuration>
    5. 文件 yarn-site.xml
      <configuration>
              <property>
                      <name>yarn.resourcemanager.hostname</name>
                      <value>hadoop01</value>
              </property>
              <property>
                      <name>yarn.nodemanager.aux-services</name>
                      <value>mapreduce_shuffle</value>
              </property>
      </configuration>
    6. 配置好后,将 hadoop01上的 /usr/local/Hadoop 文件夹复制到各个节点上。建议在切换到集群模式前先删除之前的临时文件。在 hadoop01节点上执行:
      cd /usr/local
      rm -rf ./hadoop/tmp     # 删除 Hadoop 临时文件
      rm -rf ./hadoop/logs/*   # 删除日志文件
      tar -zxcf ~/hadoop01.tar.gz ./hadoop   # 先压缩再复制
      cd ~
      scp ./hadoop01.tar.gz hadoop02:/usr/local
    7. 在hadoop02的/usr/local路径下找到hadoop.tar.gz解压。(如果原先存在,则先删除,其他路径也相同)
    8. 首次启动需要先在 hadoop01 节点执行 NameNode 的格式化  hdfs namenode -format
    9. 需要关闭全部节点的防火墙,service iptables stop(停止防火墙)、 chkconfig iptables off(失效,重启后也不会开启防火墙

  6. 遇到的一些坑:

    1. datanode节点如果没有启动datanode守护进程,查看namedata节点下的日志,如果是clusterID的错误,修改/tmp/dfs/data/current/VERSION和/tmp/dfs/name/current/VERSION中两个clusterID是否相同,不同重新设置。

    2. datanode节点没有启动datanode守护进程,删除datanode节点的tmp下的所有文件,重新hadoop hdfs -format

 posted on 2017-04-10 21:05  溪小寂  阅读(1002)  评论(0编辑  收藏  举报