Hadoop 伪分布模式的安装


一 下载软件             安装环境:CentOS 6.4 X86_64                         JDK 1.7.0_25                         Hadoop 1.2.1
     Hadop下载地址:http://hadoop.apache.org/releases.html        JDK  下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html  

二  SSH免密码登录                    a.安装SSH服务           yum install ssh 安装SSH协议         yum install rsync (rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件)          service sshd restart 启动服务 
        b.配置         生成其无密码密钥对         ssh-keygen –t rsa –P ‘'         询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下。        查看"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚生产的无密码密钥对。          把id_rsa.pub追加到授权的key里面去        cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys        c.修改权限          在验证前,需要做两件事儿。第一件事儿是修改文件"authorized_keys"权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能),另一件事儿是用root用户设置"/etc/ssh/sshd_config"的内容。使其无密码登录有效。       修改文件"authorized_keys"权限        chmod 600 ~/.ssh/authorized_keys             root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容        vim /etc/ssh/sshd_config       修改如下的内容:        RSAAuthentication yes # 启用 RSA 认证        PubkeyAuthentication yes # 启用公钥私钥配对认证方式        AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)        d.验证登录       退出root登录,使用hadoop普通用户验证是否成功             ssh localhost        注意:把公钥复制到其他的所有机器上,可以实现hadoop集群部署        scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/        scp ~/.ssh/id_rsa.pub hadoop@192.168.1.3:~/       上面的命令是复制文件"id_rsa.pub"到服务器IP为"192.168.1.3"的用为"hadoop"的"/home/hadoop/“下面。       注意:1.文件夹".ssh"在配置SSH无密码登录时系统自动生成时,权限自动为"700",如果是自己手动创建,它的组权限和其他权限都有,这样就会导致RSA无密码远程登录失败,所以如果是手动创建.ssh文件夹的话应将其权限设置为700:       chmod 700 ~/.ssh                 2.在配置SSH需要注意两个权限:a.authorized_keys的权限600  b.ssh文件夹的权限700
三 配置JAVA      a. 将下载后的java文件进行解压,然后将其放到相应的文件夹中      b. 配置java环境变量       以下命令都适用root用户进行操作       vim /etc/profile       在文件尾部添加以下内容      #set java environment       export JAVA_HOME=/usr/java/jdk1.6.0_31       export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib       export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin        使配置生效       source /etc/profile      c.验证        java -version

四 配置主机名字     a.主机名称的修改       查看当前主机的名称:hostname       修改当前主机的名称(使用root用户):vim /etc/sysconfig/network            HOSTNAME=Master     b.配置hosts文件     "/etc/hosts"这个文件是用来配置主机将用的DNS服务器信息,是记载LAN内接续的各主机的对应[HostName和IP]用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的IP地址。
     我们要测试两台机器之间知否连通,一般用"ping 机器的IP",如果想用"ping 机器的主机名"发现找不见该名称的机器,解决的办法就是修改"/etc/hosts"这个文件,通过把LAN内的各主机的IP地址和HostName的一一对应写入这个文件的时候,就可以解决问题。     修改hosts文件:vim /etc/hosts        192.168.2.175  Master       192.168.2.175  Slave   注:如果是集群搭建的话,可以书写不同的IP地址      c.测试连通性        ping Slave       五 配置Hadoop      a.修改hadoop-env.sh文件,设置java环境          export JAVA_HOME=/usr/java/jdk1.6.0_31      b.配置core-site.xml        
  1. <configuration>  
  2.    <property>  
  3.      <name>fs.default.name</name>  
  4.      <value>hdfs://192.168.2.175:9000/</value>  
  5.      默认的namenode的端口为8020  
  6.    </property>  
  7.    <property>  
  8.      <name>hadoop.tmp.dir</name>  
  9.      <value>/home/hadoop/hadoop/tmp</value>  
  10.    </property>  
  11. </configuration>  
      c.配置hdfs-site.xml   
  1. <configuration>  
  2.   <property>  
  3.      <name>dfs.name.dir</name>  
  4.      <value>/home/hadoop/hadoop/hdfs/name</value>  
  5.   </property>  
  6.   <property>  
  7.      <name>dfs.data.dir</name>  
  8.      <value>/home/hadoop/hadoop/hdfs/data</value>  
  9.   </property>  
  10.   <property>  
  11.      <name>dfs.replication</name>  
  12.      <value>1</value>  
  13.   </property>  
  14. </configuration>  
    d.配置mapred-site.xml 

  1.   <property>  
  2.      <name>mapred.job.tracker</name>  
  3.      <value>http://192.168.2.175:9001</value>  
  4.   </property>  
  5.   <property>  
  6.      <name>mapred.local.dir</name>  
  7.      <value>/home/hadoop/hadoop/mapred/local</value>  
  8.   </property>  
  9.   <property>  
  10.      <name>mapred.system.dir</name>  
  11.      <value>/tmp/hadoop/mapred/system</value>  
  12.   </property>  
  13. </configuration> 
          e.配置masters和slaves文件          192.168.2.175
     f.配置/etc/profile文件      # set hadoop environment     export HADOOP_HOME=/home/hadoop/hadoop     export PATH=$PATH :$HADOOP_HOME/bin:$HADOOP_HOME/sbin     export HADOOP_HOME_WARN_SUPPRESS=1     export HADOOP_PID_DIR=$HADOOP_HOME/run/tmp     这样就能直接使用"bin/hadoop"也可以直接使用"hadoop",现在不管哪种情况,hadoop命令都能找见了。我们也没有必要重新在设置hadoop环境变量了,只需要记住执行Hadoop命令时不需要在前面加"bin"就可以了。
       d.测试hadoop 安装           hadoop version 
六  启动应用
  a.格式化hadfs      hadoop namenode -format   b. 启动hadoop       start-all.sh   注:对于集群的环境,在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭。      service iptables stop   c.验证hadoop          用"jps”命令       jps      查看Hadoop集群的状态     hadoop dfsadmin -report   d.网页查看      可以通过以下链接访问haddop服务了
     localhost:50030/   for the Jobtracker      localhost:50070/   for the Namenode      localhost:50060/   for the Tasktracker
知识补充说明

hadoop-env.sh:用于定义hadoop运行环境相关的配置信息,比如配置JAVA_HOME环境变量、为hadoopJVM指定特定的选项、指定日志文件所在的目录路径以及masterslave文件的位置等;

core-site.xml: 用于定义系统级别的参数,它作用于全部进程及客户端HDFS URLHadoop的临时目录以及用于rack-aware集群中的配置文件的配置等,此中的参数定义会覆盖core-default.xml文件中的默认配置;

hdfs-site.xmlHDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等,此中的参数定义会覆盖hdfs-default.xml文件中的默认配置;

mapred-site.xmlmapreduce的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,此中的参数定义会覆盖mapred-default.xml文件中的默认配置;

masters: hadoopsecondary-masters主机列表,当启动Hadoop时,其会在当前主机上启动NameNodeJobTracker,然后通过SSH连接此文件中的主机以作为备用NameNode;

         slavesHadoop集群的slave(datanode)tasktracker的主机列表master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNodetaskTracker进程;

相关内容