CentOS 5.10安装hadoop-1.2.1

Linux就该这么学

系统环境:CentOS 5.10(虚拟机下)

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. [root@localhost hadoop]# lsb_release -a  
  2. LSB Version:    :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch  
  3. Distributor ID: CentOS  
  4. Description:    CentOS release 5.10 (Final)  
  5. Release:        5.10  
  6. Codename:       Final  

准备

Jdk安装与配置
Oracle官网下载jdk,这里我下载的是jdk-6u45-linux-i586.bin,并上传到虚拟机上,使用root用户,执行以下命令创建文件夹,移动安装文件,执行安装。
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. mkdir /usr/java  
  2. mv/home/auxu/Desktop/jdk-6u45-linux-i586.bin /usr/java  
  3. cd /usr/java  
  4. ./jdk-6u45-linux-i586.bin  
配置环境变量
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. vi /etc/profile  

加入

export JAVA_HOME=/usr/java/jdk1.6.0_45
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
 
保存完毕之后,执行:
[sql] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. source /etc/profile  
 

验证java配置

[sql] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. [root@localhost java]# java -version  
  2. java version "1.6.0_45"  
  3. Java(TM) SE Runtime Environment (build 1.6.0_45-b06)  
  4. Java HotSpot(TM) Client VM (build 20.45-b01, mixed mode, sharing)  

可以简单写一个java class来进行测试,这里不多说明

 

创建Hadoop用户及相关应用文件夹
同样使用root用户创建一个名为hadoop的新用户
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. useradd hadoop  
  2. passwd hadoop  
 

创建应用文件夹,以便进行之后的hadoop配置

[sql] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. mkdir /hadoop  
  2. mkdir /hadoop/hdfs  
  3. mkdir /hadoop/hdfs/data  
  4. mkdir /hadoop/hdfs/name  
  5. mkdir /hadoop/mapred  
  6. mkdir /hadoop/mapred/local  
  7. mkdir /hadoop/mapred/system  
  8. mkdir /hadoop/tmp  
 

将文件夹属主更改为hadoop用户

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. chown -R hadoop /hadoop  
 
设置Hadoop用户使之可以免密码ssh到localhost
[sql] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. su - hadoop  
  2. ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa    
  3. cat ~/.ssh/id_dsa.pub>> ~/.ssh/authorized_keys  
  4.   
  5. cd /home/hadoop/.ssh   
  6. chmod 600 authorized_keys  

注意这里的权限问题,保证.ssh目录权限为700,authorized_keys为600

 
验证:
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. [hadoop@localhost .ssh]$ ssh localhost  
  2. Last login: Sun Nov 17 22:11:55 2013  

ssh localhost之后无需输入密码就可以连接,配置OK
 

安装配置Hadoop

创建目录并安装
重新切回root用户,创建安装目录
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. su   
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. mkdir /opt/hadoop  

将安装文件移动到以上新建目录,确保其执行权限,然后执行

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. mv /home/auxu/Desktop/hadoop-1.2.1.tar.gz /opt/hadoop  
  2. cd /opt/hadoop  
  3. tar -xzvf hadoop-1.2.1.tar.gz  
 
将hadoop安装目录的属主更改为hadoop用户
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. chown -R hadoop /opt/hadoop  

切换到hadoop用户,修改配置文件,这里根据前面创建的应用文件进行相关配置,依照各自情况而定

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. su - hadoop  
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. cd /opt/hadoop/hadoop-1.2.1/conf  

core-site.xml

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. <configuration>  
  2.     <property>  
  3.         <name>fs.default.name</name>  
  4.         <value>hdfs://localhost:9000</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>hadoop.tmp.dir</name>  
  8.         <value>/hadoop/tmp</value>  
  9.     </property>  
  10. </configuration>  

hdfs-site.xml

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. <configuration>  
  2.   <property>  
  3.         <name>dfs.replication</name>  
  4.         <value>1</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>dfs.name.dir</name>  
  8.         <value>/hadoop/hdfs/name</value>  
  9.     </property>  
  10.     <property>  
  11.         <name>dfs.data.dir</name>  
  12.         <value>/hadoop/hdfs/data</value>  
  13.     </property>  
  14. </configuration>  

mapred-site.xml
[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. <configuration>  
  2.   <property>  
  3.         <name>mapred.job.tracker</name>  
  4.         <value>localhost:9001</value>  
  5.     </property>  
  6. </configuration>  

hadoop-env.sh

配置JAVA_HOME 与 HADOOP_HOME_WARN_SUPPRESS。
PS:HADOOP_HOME_WARN_SUPPRESS这个变量可以避免某些情况下出现这样的提醒 "WARM: HADOOP_HOME is deprecated”
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. export JAVA_HOME=/usr/java/jdk1.6.0_45  
  2. export HADOOP_HOME_WARN_SUPPRESS="TRUE"      
  3. source hadoop-env.sh  

重新配置 /etc/profile 文件,最终如:
[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. export JAVA_HOME=/usr/java/jdk1.6.0_45  
  2. export JRE_HOME=$JAVA_HOME/jre  
  3. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
  4. export HADOOP_HOME=/opt/hadoop/hadoop-1.2.1  
  5. export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin  
 
使更新后的配置文件生效
[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. source /etc/profile  
 

测试hadoop安装

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. [hadoop@localhost conf]$ hadoop version  
  2. Hadoop 1.2.1  
  3. Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152  
  4. Compiled by mattf on Mon Jul 22 15:23:09 PDT 2013  
  5. From source with checksum 6923c86528809c4e7e6f493b6b413a9a  

启动HADOOP

需要先格式化namenode,再启动所有服务
[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. hadoop namenode -format  
  2. start-all.sh   

查看进程

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片

 
 

  1. hadoop@localhost conf]$ jps   
  2. 6360 NameNode  
  3. 6481 DataNode  
  4. 6956 Jps  
  5. 6818 TaskTracker  
  6. 6610 SecondaryNameNode  
  7. 6698 JobTracker  
 

如果能找到这些服务,说明Hadoop已经成功启动了。

如果有什么问题,可以去/opt/hadoop/hadoop-1.2.1/logs查看相应的日志
 
最后就可以通过以下链接访问haddop服务了
localhost:50030/   for the Jobtracker
localhost:50070/   for the Namenode
localhost:50060/   for the Tasktracker
Hadoop JobTracker: 
 
Hadoop Namenode: 
 
Hadoop TaskTracker:
 
 
PS:完全分布式的安装与伪分布式安装大同小异,注意如下几点即可
1.集群内ssh免用户登录
2.配置文件中指定具体的ip地址(或机器名),而不是localhost
3.配置masters和slaves文件,加入相关ip地址(或机器名)即可
以上配置需要在各个节点上保持一致。

本文由 CentOS中文站 - 专注Linux技术 作者:centos 发表,其版权均为 CentOS中文站 - 专注Linux技术 所有,文章内容系作者个人观点,不代表 CentOS中文站 - 专注Linux技术 对观点赞同或支持。如需转载,请注明文章来源。

相关文章

发表评论

邮箱地址不会被公开。 必填项已用*标注