hadoop-2.5.2安装配置简易步骤

来源:互联网 发布:德州扑克 人工智能 编辑:程序博客网 时间:2024/04/30 05:05

     最近想给公司同事做一个关于hadoop的分享,好久没弄这个了。于是在网上找了些文章。按照步骤,在电脑上运行三个虚拟机来搭建hadoop集群,基本能配置成功。以下是安装配置简易步骤和一些经验。

    hadoop-2.5.2版分布式安装配置简易步骤:
1.复制jdk1.7和hadoop-2.5.2压缩包到/usr/local/,  然后解压到当前文件夹

2.配置jdk1.7和hadoop-2.5.2的变量环境:
  vi /etc/profile 增加以下内容
 #jdk config lmh 2015-12-14
export JAVA_HOME=/usr/local/jdk1.7
export PATH=$PATH:/usr/local/jdk1.7/bin
#hadoop config lmh 2015-12-14
export HADOOP_HOME=/usr/local/hadoop-2.5.2
export PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
 然后在命令行里输入java -version 和hadoop,检验环境变量是否生效。


3.配置机器之间的ssh无密码登录,把master和slave的公钥都互相导入到对方的.ssh/authorized_keys 文件
   注意导入完后,双方的机器都要设置目录和文件权限(没有这一步一定不能免密码登录):
   chmod 700 .ssh/ 和 chmod 600 .ssh/authorized_keys 


4.配置hadoop目录下的etc/hadoop目录下的以下配置文件
  4.1所有机器(不分master和slave)都要配置的地方
   第一:core-site.xml
    <configuration>
   <property>
    <name>hadoop.tmp.dir</name>
    <value>/hadoop/tmp</value>     //这里写入的文件夹要手动创建
    <description>Abase for other temporary directories.</description>
   </property>
   <property>
    <name>fs.defaultFS</name>
    <value>hdfs://10.0.1.100:9000</value>  //这里的ip地址写入的是master的ip地址
   </property>
   <property>
     <name>io.file.buffer.size</name>
    <value>4096</value>
   </property>
  </configuration>
  第二:给hadoop-env.sh和yarn-env.sh加入java_home的路径
   export JAVA_HOME=/usr/local/jdk1.7
  
  4.2 只有master需要配置的文件
   第一: hdfs-site.xml
   <configuration>
  <property>
    <name>dfs.nameservices</name>
    <value>hadoop-cluster1</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:50090</value>     //这里的ip地址写入的是master的ip地址
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:///hadoop/name</value>   //这里写入的文件夹要手动创建
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:///hadoop/data</value>  //这里写入的文件夹要手动创建
  </property>
  <property>
    <name>dfs.replication</name>
    <value>2</value>   //有多少台节点就写多少
  </property>
  <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
  </property>
 </configuration>


    第二:mapred-site.xml
     <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>  //这是hadoop对原有第一代M/R计算模型的改进版框架yarn
  </property>
  <property>
    <name>mapreduce.jobtracker.http.address</name>
    <value>master:50030</value>     //这里的ip地址写入的是master的ip地址
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>    //这里的ip地址写入的是master的ip地址
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master:19888</value>     //这里的ip地址写入的是master的ip地址
  </property>  
 </configuration>
  
   第三:yarn-site.xml
    <configuration>
<!-- Site specific YARN configuration properties -->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.resourcemanager.address</name>
    <value>master:8032</value>    //这里的ip地址写入的是master的ip地址
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master:8030</value>    //这里的ip地址写入的是master的ip地址
  </property>
  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master:8031</value>    //这里的ip地址写入的是master的ip地址
  </property>
  <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>master:8033</value>    //这里的ip地址写入的是master的ip地址
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master:8088</value>   //这里的ip地址写入的是master的ip地址
  </property>
</configuration>


    4.3格式化文件系统
     hdfs namenode -format   
   注意:这里的格式化文件系统并不是硬盘格式化,只是针对主服务器hdfs-site.xml的dfs.namenode.name.dir和dfs.datanode.data.dir目录做相应的清理工作。


    4.4 启动和关闭
     在master机器的hadoop目录下执行:
       sbin/start-all.sh   等同于运行start-dfs.sh和start-yarn.sh  
      sbin/stop-all.sh   等同于运行stop-dfs.sh和stop-yarn.sh  
    
    4.5 测试访问
      http://10.0.1.100:50070/  查看hdfs节点信息和文件系统,10.0.1.100是master的ip地址
      http://10.0.1.100:8088/   查看map/reduce的job调用情况




5.为了方便,写入每台机器的hosts文件
   vi /etc/hosts   增加类似的内容
    192.168.1.100 master  
    192.168.1.101 slave
    192.168.1.102 slave2

    修改完,可能不会立刻生效。
   这时的策略有:
   1) 重启机器
    2) 重启服务
      Ubuntu: $sudo /etc/init.d/networking restart
      Gentoo: /etc/init.d/net.eth0 restart

       centos: /etc/init.d/network  restart

   然后用uname -a来查看hosts文件是否已经生效了。


6.最后为了使得机器之间能够互访,要把机器的防火墙关掉,或者手动给iptables加入允许hadoop开启的那些服务端口。
   (1) 重启后永久性生效:
  开启:chkconfig iptables on
  关闭:chkconfig iptables off
  (2) 即时生效,重启后失效:
  开启:service iptables start
  关闭:service iptables stop


7.如果是在虚拟机运行,需要固定这些虚拟机器的ip地址.通过以下步骤去设置
   vi /etc/sysconfig/network-scripts/ifcfg-eth0
   注释掉原有的dhcp,增加静态地址和dns地址
  #BOOTPROTO="dhcp"

  BOOTPROTO=static
  IPADDR=192.168.1.100
  NETMASK=255.255.255.0
  GATEWAY=192.168.1.1
  DNS1=202.96.128.86
   然后重启配置文件使之生效,执行 /etc/init.d/network restart


   


  
   

0 0