Hadoop(一):完全分布式搭建

最近开始准备阿里天池大数据比赛,一切从0开始学习,此系列文章只为记录自己的学习历程与总结,知识有错误还望大家提出。

官网文档: http://hadoop.apache.org/docs/r1.2.1/#Getting+Started
我的安装环境:3台 Centos6.4 虚拟机,一个作NameNode ,另外两个做dataNode

1.修改hostname和dns映射
   (我这里Linux虚拟机网络链接方式全部采用NAT,没有配置固定IP)
   1.1.为了不用频繁敲IP,我们修改每一台Linux的hostname:
        修改/etc/sysconfig/network
        在其中将hostname=xxx  修改为hostname=node1(自定义名字)
        正确检验:uname -n    或者直接hostname   将给出自己定义的名字
   1.2.修改DNS映射
        修改/etc/hosts
        在该文件后添加  ip   hostname对    如:192.168.136.128   node3
        正确检验:在一台机器上使用ping命令链接其他机器,ping通则成功   如:ping  node2 

2.先决条件:jdk、ssh
  可以使用 java -version 查看有没有安装jdk,一般默认安装openjdk,所以最好卸载然后装sun jdk
  配置本地环境变量(/etc/profile最后添加内容)  用javac和Java -version 两个命令检验

3.配置免密码登录
  根据官方文档,现在每台机器上执行
  $ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
  $cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  以生成 authorized_keys , 并完成本地免密码登录
  然后在目标机(从哪台机器上ssh别的机器)执行:
 在.ssh目录下
  scp id_dsa.pub root@node1(别的机器名字):~
  然后在别的机器上执行:
  cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
  
4.解压下载好的hadoop压缩包
    我这里解压到的目录为  /root

5.修改配置文件 conf/hadoop-env.sh 
配置好 JAVA_HOME(/etc/hosts)

6.修改配置文件 /hadoop-1.2.1/conf/core-site.xml
      添加如下内容:
<property>
     <name>fs.default.name</name>
     <value>hdfs://node3:9000</value>   <!--nameNode 节点 -->
</property>
<property>            
     <name>hadoop.tmp.dir</name>                       <!--默认工作目录 -->  不设置的话会在Linux  tmp 目录下,重启之后清空,需要重新format
     <value> /opt/hadoop-1.2</value>
</property>


    
5.修改配置文件 conf/hdfs-site.xml:
       配置 dataNode节点数量,不配置默认为3
       
<configuration> 
              <property>
                  <name>dfs.replication</name>
                 <value>2</value>
             </property>
       </configuration>


6.修改配置文件 conf/slaves:
  配置dataNode的IP或者主机名称
  我这里添加 node1 node2(我以node3作为nameNode)
!!注意:直接使用hostname的话需要在/etc/hosts 中配置ip 和 hostname(域名解析)

7.修改配置文件conf/masters
  配置Secondary NameNode 位置(不能与NameNode在同一台机器上)
  我这里写node2

  至此完成HDFS部分

  在nameNode 和各个dataNode上使用jps查看Java进程有没有对应的Node

  在windows下通过访问http://192.168.136.128:50070  查看Node状态,特别注意看一下Live Nodes 的数量,可能为0(原因是前面的hostname没有配置好)

8.配置/conf/mapred-site.xml
   修改文件内容
<property>
        <name> mapred.job.tracker</name>
        <value>node3:9001</value>
   </property>
至此,Hadoop的MapReduce部分搭建完成,通过./start-all.sh  启动HDFS 和 MapRedue,通过jps查看进程,浏览器中通过node3:50030/查看


你可能感兴趣的:(hadoop,大数据,分布式,完全分布式)