您的位置:首页 > 运维架构

FreeBSD下安装配置Hadoop集群(四)

2012-03-14 16:43 465 查看
前面说过了NameNode,DataNode的配置方法,这次说Secondary的配置方法。hadoop为实现高可用,支持配置失效备份的Namenode,这样当主的Namenode挂掉了之后,可以从Secondary把数据恢复回去。可以理解为Mysql的Master和Slave,但是不同的是,hadoop的Secondary不能直接当Namenode使用,更多的时候是用它当namenode的数据恢复。
其实secondary的配置有些类似于Datanode
看下配置文件
core-site.xml
<?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://hadoopmaster-177.tj:9000</value>
<!--指定master地址-->
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>/opt/data/hadoop1/hdfs/namesecondary,/opt/data/hadoop2/hdfs/namesecondary</value>
<!--其实这个比较重要,数据恢复全靠它-->
</property>
<property>
<name>fs.checkpoint.period</name>
<value>1800</value>
</property>
<property>
<name>fs.checkpoint.size</name>
<value>33554432</value>
</property>
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache
.hadoop.io.compress.BZip2Codec</value>
</property>
<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
</configuration>

hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

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

<configuration>
<property>
<name>dfs.name.dir</name>
<value>/opt/data/hadoop1/hdfs/name,/opt/data/hadoop2/hdfs/name</value>
<description> </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/data/hadoop1/hdfs/data,/opt/data/hadoop2/hdfs/data</value>
<description> </description>
</property>
<property>
<name>dfs.http.address</name>
<value>hadoopmaster-177.tj:50070</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoopslave-189.tj:50090</value>
<!--注意这里-->
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.datanode.du.reserved</name>
<value>1073741824</value>
</property>
<property>
<name>dfs.block.size</name>
<value>134217728</value>
</property>
</configuration>
mapred-site.xml
<?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>hadoopmaster-177.tj:9001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/opt/data/hadoop1/mapred/mrlocal</value>
<final>true</final>
</property>
<property>
<name>mapred.system.dir</name>
<value>/opt/data/hadoop1/mapred/mrsystem</value>
<final>true</final>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>12</value>
<final>true</final>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>4</value>
<final>true</final>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx1536M</value>
</property>
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
<property>
<name>mapred.map.output.compression.codec</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Djava.library.path=/opt/hadoopgpl/native/Linux-amd64-64</value>
</property>
</configuration>
然后masters文件也要指向master namenode的主机名,在这里也就是hadoopmaster-177.tjslaves文件内容则仍是Datanode的主机名。
而真正的主namenode里面的conf/master文件则写从namenode的主机名hadoopslave-189.tjslaves不变。
意思就是主namenode的masters写secondary的主机名,从namenode的masters写primary的主机名。
这样,从namenode到datanode到secondary就完整了。可以开始真实的运行map/reduce运算了。如果namenode失效了,可以从secondary的checkpoint指定的路径里将数据恢复到namenode。

本文出自 “实践检验真理” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: