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

上次说到FreeBSD下搭建伪分布式(见  ),很简单,但是Hadoop集群入门最难的可能就是集群的搭建和配置了,配置文件复杂,概念抽象,我尽可能简单描述真实集群的搭建和配置。


hadoop集群从启动进程上来说,分为四种进程,四种,不是四个。在实际应用中,通常每台服务器只启动两种进程。


首先是主节点和任务跟踪器。以下统称为NameNode和JobTracker


主节点在hadoop中叫namenode。负责管理调度集群的运作,跟随主节点的进程叫做jobtracker,负责计算任务的分派和接收。hadoop之所以可以负责大数据量的运算,主要是因为这个分片的概念。比如一个10G的log文件,放在hdfs上,可能你认为他在hdfs上是一个文件,但实际上,这个文件备份成了N多小块,每块保存在不同服务器的物理硬盘上。计算时,任务被分派到每个数据服务器,每个服务器只运算整个数据中的一部分,假设有10台,那么每台被分配1G数据,每个服务器就只运算1G的数据,并将数据返回给jobtracker,最后提供给用户,这样每个服务器的运算速度就都是10G的1/10。计算结果就会比单台快很多。

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

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

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

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


那么负责分派任务的就是NameNode和JobTracker,而负责数据计算和存储的,就是DataNode和TaskTracker。


也就是说,集群中可以有一台NameNode+JobTracker,但是可以有N多台DataNode和TaskTracker。


整个Hadoop集群的配置在hadoop根目录的conf/可以找到。看一下NameNode+JobTracker的配置,主要在几个xml文件中。


我在基本每个重要的配置项上都标明了注释。


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>
<!--定义hdfs namenode的主机名和端口,本机,主机名在/etc/hosts设置-->
    </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>
<!--定义hdfs使用压缩-->
    </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/hadoop/hdfs/name,/opt/data/hadoop1/hdfs/name,/opt/data/hadoop2/hdfs/name</value>
<!--定义hdfs namenode所使用的硬盘路径名称-->
        <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</value>
<!--定义hdfs namenode数据存储的路径-->
        <description> </description>
    </property>
    <property>
        <name>dfs.http.address</name>
        <value>hadoopmaster-177.tj:50070</value>
<!--定义hdfs http管理端口-->
    </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>
<!--定义du操作返回-->
    </property>
    <property>
        <name>dfs.block.size</name>
        <value>134217728</value>
<!--定义hdfs的存储块大小,默认64M,我用的128M-->
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
<!--权限设置,最好不要-->
    </property>
</configuration>

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/4bd52bee83688db69d831a4914b9d861.html