2、Hadoop配置

2.1 配置参数

我们任选一个节点,比如说就hdnode1吧,使用grid用户登录,而后修改配置文件,详细如下。

配置hadoop的基础环境变量,如JDK位置,hadoop一些配置、文件及日志的路径,这些配置都在hadoop-env.sh文件中:

    [grid@hdnode1 ~]$ vi /usr/local/hadoop-0.20.2/conf/hadoop-env.sh 

这里我们先仅修改JAVA_HOME变量值,指定到JDK目录:

    export JAVA_HOME=/usr/local/jdk1.7.0_09

提示,本步也可以不做修改,而将JAVA_HOME加到用户的环境变量中。

修改核心站点配置,主要指定NameNode服务器的地址:

    [grid@hdnode1 ~]$ vi /usr/local/hadoop-0.20.2/conf/core-site.xml

修改内容如下:

    <configuration>

            <property>

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

                    <value>hdfs://hdnode1:9000/</value>

                    <final>true</final>

            </property>

    </configuration>

这样我们就将hdnode1定义为NameNode。注意一个hadoop集群中不管master还是slave,fs.default.name的值必须相同,也就是说一个hadoop只能有一个NameNode。

指定HDFS相关的配置:

    [grid@hdnode1 ~]$ vi /usr/local/hadoop-0.20.2/conf/hdfs-site.xml 

修改内容如下:

    <configuration>

            <property>

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

                    <value>/data2/hadoop/name</value>

                    <final>true</final>

            </property>

            <property>

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

                    <value>/data2/hadoop/data</value>

                    <final>true</final>

            </property>

            <property>

                    <name>dfs.replication</name>

                    <value>3</value>

            </property>

    </configuration>

那么这几个参数又都是什么意思呢?别的咱不讲,说一说上文提到的这哥仨:

  • dfs.name.dir:指定namenode存储元数据的路径;
  • dfs.data.dir:指定datanode存储数据的路径;
  • dfs.replication:设置副本的数量,我们这里仨节点,设置再大没意义,就设置成3

除了这仨,别的参数还多着呢,后面咱们接触到了再介绍。

接下来配置mapreduce服务相关的参数,修改mapred-site.xml文件:

    [grid@hdnode1 ~]$ vi /usr/local/hadoop-0.20.2/conf/mapred-site.xml 

修改内容如下:

    <configuration>

            <property>

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

                    <value>hdnode1:9001</value>

                    <final>true</final>

            </property>

    </configuration>

指定JobTracker进程运行的位置,这里指定在hdnode1节点上执行。

指定运行SecondaryNameNode服务的节点:

    [grid@hdnode1 ~]$ more /usr/local/hadoop-0.20.2/conf/masters 

    hdnode1

提示:注意哟,这里说的是运行SecondaryNameNode服务的节点,并不是指身份为master角色的节点哟。如果希望SecondaryNameNode运行在非namenode节点上的话,可以在这里指定另外的节点。

指定运行datanode和tasktracker的节点:

    [grid@hdnode1 ~]$ more /usr/local/hadoop-0.20.2/conf/slaves 

    hdnode2

    hdnode3

剩下的俩节点呗。

这样第一个节点就配置好了,第二和第三个节点怎么处理呢?直接将这些文件复制到第二第三节点即可。