Windows下Cygwin环境的Hadoop安装(2)- Hadoop安装和配置

时间:2021-02-11 08:35:57

在上一步安装好cygwin环境后,下面进入hadoop安装。 

- 安装JDK

Hadoop运行需要jdk环境,我下载了最新的jdk7u5版本(http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1637583.html

在下面的列表中选择合适的版本,我选择的是Windows X86版本。

Windows下Cygwin环境的Hadoop安装(2)- Hadoop安装和配置

下载完成后,执行安装,注意安装目录不要安装在默认的c:\Program Files下,我安装的是c:\java目录下,因为在后面的hadoop配置过程中,需要配置JDK的路径,如果安装在c:\Program Files下会比较麻烦。 

-  下载及安装hadoop

安装好JDK后,去hadoop网站下载一个合适的hadoop版本(http://labs.renren.com/apache-mirror/hadoop/common/),因为2.0版本是刚发布的,且是Alpha版本,因此我选择了较为稳定的1.0.3版本下载(http://labs.renren.com/apache-mirror/hadoop/common/hadoop-1.0.3/),下载文件为hadoop-1.0.3.tar.gz

下载完成后,先规划下hadoop部署目录,我的目录部署如下:

Windows下Cygwin环境的Hadoop安装(2)- Hadoop安装和配置

Hadoop目录位于D盘根目录下;code目录用于存放后面建立Eclipse开发环境时需要用到的代码,code下的common/trunk目录为svn checkout的hadoop核心组件代码;data目录用于存放将来用到的分析数据和输出结果;deploy目录用于存放hadoop运行文件,下载的hadoop-1.03.tar.gz文件解压后的文件即放在此目录下;sysdata目录用于存放hadoop运行时需要产生和用到的系统数据,例如namenode、tmp目录等。

建立目录后,即可将下载的hadoop-1.03.tar.gz文件解压后的文件放在deploy目录下。 

- 配置hadoop-env.sh

hadoop-env.sh文件中,需要配置JDK的安装路径,配置内容如下:

Windows下Cygwin环境的Hadoop安装(2)- Hadoop安装和配置

 -  配置core-site.xml

core-site.xml配置文件中可配置的内容很多,可以慢慢研究,我们先使用代码中自带的模版文件进行少量修改以满足基本的运行条件。

* 拷贝D:\hadoop\deploy\hadoop-1.0.3\src\core\core-default.xml文件到D:\hadoop\deploy\hadoop-1.0.3\conf目录下,并重命名为core-site.xml。

* 修改临时文件存放路径

<property>

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

  <value>/hadoop/sysdata/1.0.3/tmp</value>

  <description>A base for other temporarydirectories.</description>

</property>

* 修改文件系统的默认名称

<property>

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

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

  <description>The name of the defaultfile system.  A URI whose

  scheme and authority determine the FileSystemimplementation.  The

  uri's scheme determines the config property(fs.SCHEME.impl) naming

  the FileSystem implementation class.  The uri's authority is used to

  determine the host, port, etc. for afilesystem.</description>

</property>

 -  配置hdfs-site.xml

同样使用代码中自带的模版文件进行少量修改以满足基本的运行条件。

* 拷贝D:\hadoop\deploy\hadoop-1.0.3\src\hdfs\hdfs-default.xml文件到D:\hadoop\deploy\hadoop-1.0.3\conf目录下,并重命名为hdfs-site.xml。

* 修改DFS文件系统namenode存放name表的目录

<property>

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

  <value>/hadoop/sysdata/1.0.3/name</value>

  <description>Determines where on thelocal filesystem the DFS name node

      should store the nametable(fsimage).  If this is acomma-delimited list

      of directories then the name table isreplicated in all of the

      directories, for redundancy.</description>

</property>

* 修改DFS文件系统datanode存放数据的目录

<property>

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

  <value>/hadoop/sysdata/1.0.3/data</value>

  <description>Determines where on thelocal filesystem an DFS data node

  should store its blocks.  If this is a comma-delimited

  list of directories, then data will be storedin all named

  directories, typically on different devices.

  Directories that do not exist are ignored.

  </description>

</property>

* 修改数据存放副本数量为1(因为我们要部署的是伪分布式单节点)

<property>

  <name>dfs.replication</name>

  <value>1</value>

  <description>Default block replication.

  The actual number of replications can bespecified when the file is created.

  The default is used if replication is notspecified in create time.

  </description>

</property>

 -  配置mapred-site.xml

同样使用代码中自带的模版文件进行少量修改以满足基本的运行条件。

* 拷贝D:\hadoop\deploy\hadoop-1.0.3\src\ mapred\mapred-default.xml文件到D:\hadoop\deploy\hadoop-1.0.3\conf目录下,并重命名为mapred-site.xml。

* 修改jobtracker运行的服务器和端口

<property>

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

  <value>localhost:9001</value>

  <description>The host and port that theMapReduce job tracker runs

  at.  If"local", then jobs are run in-process as a single map

  and reduce task.

  </description>

</property>

* 修改mepreduce运行存放的即时数据文件目录

<property>

  <name>mapred.local.dir</name>

  <value>/hadoop/sysdata/1.0.3/temp</value>

  <description>The local directory whereMapReduce stores intermediate

  data files. May be a comma-separated list of

  directories on different devices in order tospread disk i/o.

  Directories that do not exist are ignored.

  </description>

</property>

* Mapreduce存放临时文件的目录

<property>

  <name>mapred.child.tmp</name>

  <value>/hadoop/sysdata/1.0.3/temp</value>

  <description> To set the value of tmpdirectory for map and reduce tasks.

  If the value is an absolute path, it isdirectly assigned. Otherwise, it is

  prepended with task's working directory. Thejava tasks are executed with

  option -Djava.io.tmpdir='the absolute path ofthe tmp dir'. Pipes and

  streaming are set with environment variable,

   TMPDIR='the absolute path of the tmp dir'

  </description>

</property>

 - 格式化namenode

在以上配置文件完成后,我们可以开始对namenode进行格式化了,这是hadoop开始使用的第一步,就像我们对硬盘进行格式化操作一样,指令执行过程如下图:

Windows下Cygwin环境的Hadoop安装(2)- Hadoop安装和配置

 基本过程就是进入hadoop安装目录的bin目录,执行格式化指令,具体过程如下:

cd/cygdrive/d/hadoop/deploy/hadoop-1.0.3/bin

./hadoop namenode-format

 - 启动hadoop

格式化namenode后,我们就可以执行./start-all.sh开始启动hadoop了。

Windows下Cygwin环境的Hadoop安装(2)- Hadoop安装和配置

如果使用hadoop完成,或需要关闭hadoop了,执行./stop-all.sh即可。

 

至此,hadoop的基本运行环境就已经部署好了,但是这是真的完成了并且可以顺利使用了吗?那还需要咱们运行一下hadoop中自带的wordcount实例才能验证,具体请看下回分解。

点击这里查看全过程索引