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

先给自己做个广告:

开源Hive管理工具phpHiveAdmin今日更新0.05 beta2

ChangeLog:

1. sql查询页全部重写,复杂查询现在可以用异步非阻塞的方式实时的查看map/reduce进度,简单的带limit查询,仍然采用thrift方式。
2. 改变查询结果获取方式,为防止大数据导致的php内存溢出,非limit结果的数据集将直接下载,仅提供30条预览,全部数据可通过下载链接获取。
3. 需下载数据,必须保证phpHiveAdmin/tmp目录的权限正确

访问 http://www.phphiveadmin.net 获取更多详细信息。

#-----------------------------------------------------

上次说的NameNode的配置方法,在说Datanode的配置方法之前,我们先回到Namenode集群。

你需要为namenode配置一个主机名,这个是必须的,hadoop集群优先查找/etc/hosts文件进行匹配。所以现在我们给namenode一个主机名

namenode01 192.168.1.2

保存到/etc/hosts文件中

然后打开Namenode $HADOOP_HOME/conf/masters文件,写入hadoopmaster-177.tj

打开$HADOOP_HOME/conf/slaves文件,写入你的datanode主机名,每行一个。

保存退出,当然相应的hdfs-site.xml,mapred-site.xml,core-site.xml中相应的主机名也要一并修改。

下面是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 >
<!--hadoop namenode地址和hdfs端口-->
     </ property >
     < property >
         < name >fs.checkpoint.dir </ name >
         < value >/opt/data/hadoop1/hdfs/namesecondary1,/opt/data/hadoop2/hdfs/namesecondary2 </ 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 >
<!--压缩采用lzo方式-->
     </ 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/hadoop/hdfs/name </ value >
         < description >     </ description >
     </ property >
     < property >
         < name >dfs.data.dir </ name >
         < value >/opt/data/hadoop/hdfs/data,/opt/data/hadoop1/hdfs/data,/opt/data/hadoop2/hdfs/data,/opt/data/hadoop3/hdfs/data,/opt/data/hadoop4/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 >
<!--数据保存3份-->
     </ property >
     < property >
         < name >dfs.datanode.du.reserved </ name >
         < value >1073741824 </ value >
     </ property >
     < property >
         < name >dfs.block.size </ name >
         < value >134217728 </ value >
<!--数据块大小128M-->
     </ 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/hadoop/mapred/mrlocal,/opt/data/hadoop1/mapred/mrlocal,/opt/data/hadoop2/mapred/mrlocal,/opt/data/hadoop3/mapred/mrlocal,/opt/data/hadoop4/mapred/mrlocal</v
alue>
         < 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 >
<!--定义该datanode的map槽位-->
         < final >true </ final >
     </ property >
     < property >
         < name >mapred.tasktracker.reduce.tasks.maximum </ name >
         < value >4 </ value >
<!--定义该datanode的reduce槽位-->
         < final >true </ final >
     </ property >
     < property >
         < name >mapred.map.child.java.opts </ name >
         < value >-Xmx1224M </ value >
<!--map的java虚拟机的内存占用-->
     </ property >
     < property >
         < name >mapred.reduce.child.java.opts </ name >
         < value >-Xmx2048M </ value >
<!--reduce的虚拟机内存占用-->
     </ property >
     < property >
         < name >mapred.reduce.parallel.copies </ name >
         < value >10 </ value >
     </ property >
     < property >
         < name >io.sort.factor </ name >
         < value >100 </ value >
     </ property >
     < property >
         < name >mapred.job.reduce.input.buffer.percent </ name >
         < value >0.3 </ value >
     </ property >
     < property >
         < name >mapred.compress.map.output </ name >
         < value >true </ value >
<!--使用压缩格式输出map结果-->
     </ 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 >
<!--压缩输出的保证,hadoopgpl,超重要-->
     </ property >
     < property >
         < name >io.sort.mb </ name >
         < value >600 </ value >
     </ property >
     < property >
         < name >fs.inmemory.size.mb </ name >
         < value >500 </ value >
     </ property >
</ configuration >


然后需要在Datanode的/etc/hosts文件里写上自身和NameNode的主机名与IP
例如:

namenode01 192.168.1.2
datanode01 192.168.1.10

你每添加一台datanode,都需要在每台服务器的/etc/hosts文件中添加该服务器的主机名和地址。这算是hadoop不太方便的一点。当然,masters和slaves文件里也要写上。

Datanode的配置就结束了。下次说下namenode的备份,也就是secodary的配置。namenode也是可以热备份以防止单点故障的。这就是为什么我的datanode01的IP是从192.168.1.10开始的

如果你对这个系列有任何疑问或不解,或者配置失败,请到暴风影音创建的easyhadoop群里提问。QQ群号是 93086930

本文出自 “实践检验真理” 博客,转载请与作者联系!

你可能感兴趣的:(xml,hadoop,配置,node,FreeBSD)