Hadoop安装手记

1. 创建java运行环境

 

l  下载jdk for linuxjdk-6u22-linux-i586.bin

    http://www.java.com/zh_CN/download/manual.jsp

 

l  安装jdkchmod a+x jdk-6u22-linux-i586.bin;

         ./ jdk-6u22-linux-i586.bin

 

l  设置环境变量

#vi /etc/profile

export JAVA_HOME=/home/ydzhang/jdk1.6.0_22

export PATH="$JAVA_HOME/bin:$PATH"

export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"

 

l  确认java安装成功

javac/java –version (正确配置PATH

运行hello world (正确配置CLASSPATH)

 

2. 搭建hadoop集群

 

   Hadoop可以在三种模式下运行,单机模式,伪分布式模式(NameNodeDataNode在一个节点上),分布式模式(NameNodeDataNode分散在多个不同的节点上)。

   注:本例为伪分布式模式,搭建hadoop前,确保各个节点已经安装ssh

 

   参数配置:(配置文件在HADOOP_HOME/conf目录中, HADOOP_HOMEhadoop的根目录)

l  设置环境变量 hadoop-env.sh

如果环境变量都已设置好,此处无需再做配置

l  core-site.xml (默认的配置可查看HADOOP_HOME/docs/cn/core-default.html

修改该配置文件如下,更改fs.default.namehadoop.tmp.dir选项。

fs.default.name为文件系统默认名字,其默认值为:file:/// 

hadoop.tmp.di为临时文件路径,其默认值为:/tmp/hadoop-${user.name}

 

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

 

<!-- Put site-specific property overrides in this file. -->

 

<configuration>

<property>

   <name>fs.default.name</name>

   <value>hdfs://localhost:9000</value>

</property>

<property>

    <name>hadoop.tmp.dir</name>

    <value>/home/u/tmp</value>

  </property>

 

</configuration>

 

l  hdfs-site.xml (默认的配置可查看HADOOP_HOME/docs/cn/hdfs-default.html

修改该配置文件如下,修改dfs.replicationdfs.name.dirdfs.data.dir

      dfs.replication为副本数,默认值为3

      dfs.name.dirnamenode存储数据的根目录,默认值为${hadoop.tmp.dir}/dfs/name

      dfs.data.dirdatanode存储数据的根目录,默认值为${hadoop.tmp.dir}/dfs/data

 

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

 

<!-- Put site-specific property overrides in this file. -->

 

<configuration>

<property>

   <name>dfs.replication</name>

   <value>2</value>

</property>

<property>

   <name>dfs.name.dir</name>

   <value>/home/u/hdfs/name</value>

</property>

<property>

   <name>dfs.data.dir</name>

   <value>/home/u/hdfs/data</value>

</property>

</configuration>

 

l  mapred.xml(默认的配置可查看HADOOP_HOME/docs/cn/mapred-default.html

修改该配置文件如下,修改mapred.job.tracker的值。

mapred.job.trackerjobtracker运行的主机和端口号,默认为localhost

 

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

 

<!-- Put site-specific property overrides in this file. -->

 

<configuration>

 <property>

    <name>mapred.job.tracker</name>

   <value>localhost:9001</value>

</property>

</configuration>

 

如果配置有多个DataNode并且运行在不同的机器上,则将配置好的Hadoop文件夹拷贝到对应的DataNode上。

 

启动hadoop前,需格式化hadoop的文件系统hdfs,在master上,进入hadoop文件夹输入命令:bin/hadoop namenode format

 

启动所有的服务:bin/start-all.sh

 

验证hadoop是否安装成功:

http://localhost:50030 (mapreduceweb页面)

http://localhost:50070 (hdfsweb页面)

 

对于hadoop来说,mapreducehdfs都是必须的,但也可以只启动hdfsstart-dfs.sh)或mapreducestart-mapred.sh

 

向正在运行的集群中添加新的数据节点:

输入以下命令:

bin/hadoop-daemon.sh --config ./conf start datanode

bin/hadoop-daemon.sh --config ./conf start tasktracker

这样就可以把新的节点联入集群中,第一步是启动datanode,第二步是启动tasktracker

 

3. 运行WordCount实例

 

l  方法1:参见HADOOP_HOME/docs/ mapred-default.html

注意:0.20.2版本的hadoop编译WordCount时,还要使用HADOOP_HOME/lib/commons-cli-1.2.jar

 

l  方法2

直接用hadoop提供的jar包(hadoop-0.20.2-examples.jar)中包含的wordcount来运行。(参见方法1,在hdfs中创建输入输出目录,建立输入文件集)

 

执行以下命令:

bin/hadoop jar hadoop-0.19.2-examples.jar wordcount wordcount/input wordcount/output

 

通过hadoop fs -ls wordcount/output 查看输出文件信息,并可通过cat查看。

 

posted @ 2013-04-19 14:09  ydzhang  阅读(330)  评论(0编辑  收藏  举报