Hadoop 伪分布模式的安装

一 下载软件
       
     安装环境:CentOS 6.4 X86_64
                        JDK 1.7.0_25
                        Hadoop 1.2.1

     Hadop下载地址:http://hadoop.apache.org/releases.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进程;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值