Hadoop入门进阶步步高(三)-配置Hadoop

三、配置Hadoop

1、设置$HADOOP_HOME/conf/hadoop-env.sh

这个文件里设置的是Hadoop运行时须要的环境变量,在1.2.1版*同拥有19个环境变量。例如以下:

 

变量名称

默认值

说明

JAVA_HOME

 

设置JDK的路径。这个必须设置。否则Hadoop无法启动,值如:

/usr/local/jdk1.6.0_33

HADOOP_CLASSPATH

这个用以设置用户的类路径。也能够在运行计算之前设置

HADOOP_HEAPSIZE

1000m

设置Hadoop堆的大小,依据自己环境的实际情况进行设置了。

HADOOP_OPTS

-server

Hadoop启动时的JVM參数,默认是以server模式启动。能够添加-X或-XX之类的參数

HADOOP_NAMENODE_OPTS

-Dcom.sun.management.jmxremote $HADOOP_NAMENODE_OPTS

该选项的值会附加到HADOOP_OPTS之后。在启动NameNode时设置的JVM參数。

如想手动设置NameNode的堆、垃圾回收等信息,能够在这里设置:

,我的内存没有这么大而且測试用例不会用到那么大的堆,所以我也设置了一个这个值。

export HADOOP_HEAPSIZE=20

 

HADOOP_PID_DIR:

Hadoop PID文件的存放文件夹,这个最好是改动一下,由于/tmp文件夹通常来说是不论什么人都能够訪问的。有可能存在符合链接攻击的风险。

export HADOOP_PID_DIR=/home/fenglibin/hadoop_tmp

 

2、配置$HADOOP_HOME/conf/core-site.xml

參数例如以下(部分):

參数

默认值

说明

fs.default.name

file:///

NameNode的URI,如:

hdfs://locahost:9000/

hadoop.tmp.dir

/tmp/hadoop-${user.name}

其他暂时文件夹的基本文件夹,

/home/fenglibin/hadoop_tmp

hadoop.native.lib

true

是否使用hadoop的本地库

hadoop.http.filter.initializers

设置Filter初使器,这些Filter必须是hadoop.http.filter.initializers的子类。能够同一时候设置多个,以逗号分隔。这些设置的Filter,将会对全部用户的jsp及servlet页面起作用。Filter的顺序与配置的顺序同样。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

配置演示样例:

<configuration>  

  <property>  

    <!-- 用于设置Hadoop的文件系统。由URI指定 -->

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

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

  </property>  

  <property>

<!-- 配置Hadoop的暂时文件夹,默认在/tmp文件夹下,可是/tmp上面可能会被系统自己主动清理掉。-->

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

<!-- 文件夹假设不存在。须要手动创建 -->

    <value>/home/fenglibin/hadoop_tmp</value>

    <description>A base for other temperary directory</description>

  </property>

</configuration>  

 

3、配置$HADOOP_HOME/conf/mapred-site.xml文件

參数例如以下(部分):

參数

说明

演示样例

mapred.job.tracker

配置JobTracker,以Host和IP的形式

localhost:9001

mapred.system.dir

MapReduce框架在HDFS存放系统文件的路径。必须能够被server及client訪问得到,默认值:

${hadoop.tmp.dir}/mapred/system

${hadoop.tmp.dir}/mapred/system

mapred.local.dir

MapReduce框架在本地的暂时文件夹,能够是多个,以逗号作分隔符,多个路径有助于分散IO的读写,默认值:

${hadoop.tmp.dir}/mapred/local

${hadoop.tmp.dir}/mapred/local

mapred.tasktracker.{map|reduce}.tasks.maximum

在同一台指定的TaskTacker上面同一时候独立的运行的MapReduce任务的最大数量,默认值是2(2个maps及2个reduces),这个与你所在硬件环境有非常大的关系,可分别设定。

2

dfs.hosts/dfs.hosts.exclude

同意/排除的NataNodes。假设有必要。使用这些文件控制同意的DataNodes。

 

mapred.hosts/mapred.hosts.exclude

同意/排除的MapReduces,假设有必要,使用这些文件控制同意的MapReduces。

 

mapred.queue.names

可用于提交Job的队列,多个以逗号分隔。MapReduce系统中至少存在一个名为“default”的队列,默认值就是“default”。

Hadoop中支持的一些任务定时器,如“Capacity Scheduler”。能够同一时候支持多个队列,假设使用了这样的定时器,那么使用的队列名称就必须在这里指定了。一旦指定了这些队列。用户在提交任务,通过在任务配置时指定“。而系统默认的复制份数为3。例如以下:

<configuration>  

  <property>  

    <name>dfs.replication</name>  

    <value>1</value>  

  </property>  

</configuration>

 

6、格式化namenode

hadoop namenode -format

 

7、启动Hadoop

./bin/start-all.sh

假设是出现例如以下结果,那就说明Hadoop已经成功启动了:

fenglibin@ubuntu1110:/usr/local/hadoop-1.2.1$ jps

29339 SecondaryNameNode

29661 Jps

28830 JobTracker

29208 DataNode

28503 NameNode

29514 TaskTracker

此时我们能够通过WEB方式查看NameNode及Jobtracker的状态了:

NameNode:http://localhost:50070/

 Hadoop入门进阶步步高(三)-配置Hadoop

JobTracker:http://localhost:50030/

 Hadoop入门进阶步步高(三)-配置Hadoop

假设仅仅是測试map/reduce,这里仅仅须要启动例如以下命令:

./bin/start-mapred.sh

8、启动Hadoop可能会遇到的问题

后面会提到。

上一篇:HTML5实现涂鸦板


下一篇:Hadoop入门进阶步步高(二)-文件夹介绍