环境:ubuntu13

使用的用户为普通用户。如:用户ru

jdk安装略

1、安装ssh

(1)


1. sudo apt-get install openssh-server


 (2)配置ssh面密码登录


1. $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa   
2. $ cat ~/.ssh/id_dsa.pub >>


注释:如果当前用户下没有.ssh目录,则手动创建.ssh目录。

 2、下载安装hadoop

(1)下载hadoop-1.2.1-bin.tar.gz

(2)修改权限

如果拥有者不是ru:ru,使用


1. chown ru:ru hadoop-1.2.1-bin.tar.gz


(3)解压

ru用户下


1. tar -zxvf hadoop-1.2.1-bin.tar.gz


 (4)将解压后的hadoop拷贝到安装目录

3、配置hadoop

配置文件在$HADOOP_HOME/conf下

 (1)配置hadoop-env.sh,指定jdk的安装路径


1. 添加jdk路径  
2. # The java implementation to use.  Required.  
3. JAVA_HOME=/home/ruge/soft/jdk1.7.0_45

 (2)修改hadoop的核心配置文件core-site.xml,配置namenode的地址和端口


1. <configuration>
2. <property>
3. <name>fs.default.name</name>
4. <value>hdfs://localhost:9000</value>
5. </property>
6. </configuration>

 


1. 这个还是很必要的,如果不配置临时目录,格式化hdfs是会在/tem目录下创建临时目录但是tmp目录重启系统会清楚下面文件。这样namenode就启动不起来了  
2.  <property>  
3.          <name>hadoop.tmp.dir</name>  
4.          <value>/home/ruge/hadoop/hadooptmpdir</value>  
5. for
6.      </property>

  

(3)修改hadoop的hdfs-site.xml,配置replication,即数据保存份数


1. <property>  
2.          <name>dfs.replication</name>  
3. 1</value>  
4. </property>


 

 (4)修改hadoop的mapred-site.xml,配置jobtracker的地址和端口

 

1. <property>  
2.          <name>mapred.job.tracker</name>  
3. 9001</value>  
4. </property>


 注:涉及到IP的地方如果是完全分布式集群,需要改成具体的IP

4、格式化hadoop的文件系统HDFS

 




1. bin/hadoop namenode -format


5、启动hadoop

 



1. bin/start-all.sh

6、验证hadoop是否启动成功

 

  • NameNode - http://localhost:50070/
  • JobTracker - http://localhost:50030/

7、使用wordcount计算单词数


1. (1)新建hdfs目录,不是实际的系统文件目录,只能使用hadoop dfs -ls /XXX查看  
2. hadoop dfs -mkdir /input  
3.   
4. (2)将文件复制到新建的hdfs目录  
5. hadoop dfs -put ./*.sh /input/  
6.   
7. (3)使用hadoop的wordcount计算单词数  
8. hadoop jar hadoop-examples-1.2.1.jar wordcount /input /output  
9.   
10. 注:input 和 output都是hdfs文件目录。不同的是input是需要分析的目录,outpu是存放结果的目录,且自动生成,不能手动创建

 

第二部分,安装hadoop集群:

1,准备2个服务器,分别为

机器名IP地址作用

hadoop.main192.168.1.102NameNode,JobTracker,DataNode,TaskTracker

hadoop.slave192.168.1.107DataNode,TaskTracker

 

注:2台主机必须使用相同的用户名运行hadoop

 

2,分别在这两个主机上,按照单机版的安装方法,安装hadoop

 

3,在/etc/hostname中修改主机名

   在/etc/hosts中配置主机名和IP地址度对应关系

 

   分别在2台主机中,运行以下命令:

   ping hadoop.main

   ping hadoop.slave

   修改/etc/hosts添加master和slave的ip和主机名

 

4,将hadoop.main节点中的~/.ssh/id_rsa.pub文件拷贝到hadoop.slave节点的~/.ssh目录下,然后在hadoop.slave的~/.ssh/目录下运行:

   cat ./id_rsa.pub >> authorized_keys

 

   在hadoop.main节点中运行命令: ssh hadoop.slave

 

5, 修改2台主机的core-site.xml,配置HDFS的地址和端口号

vi conf/core-site.xml
  
    <configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://hadoop.main:9000</value>   
    </property> 
    </configuration>

 

6,修改2台主机的MapReduce的配置文件,配置的是JobTracker的地址和端口 

vi conf/mapred-site.xml
  
    <configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>hadoop.main:9001</value>
    </property>
    </configuration>

 

7,修改2台主机中的hadoop配置文件masters

   hadoop.main

 

8,修改2台主机中的hadoop配置文件slaves

   hadoop.main

   hadoop.slave

 

9,在haddop.main节点运行

   bin/hadoop namenode -format

 

10,启动hadoop

   bin/start-all.sh

 

 

 

ps: datanode time configuration
 <property>
  <name>heartbeat.recheck.interval</name>
  <value>15</value>
 </property>