Hadoop (二)Hadoop安装环境搭建

一、选择Primary Namenode和Secondary Namenode
     
Primary Namenode和Secondary Namenode关系如下图所示:


hadoop没有mapreduce hadoop没有secondarynamenode_hadoop没有mapreduce


图1.1 SNN(Secondary Namenode)合并流程




 


        由上图可知,Secondary Namenode在一定程度上可以作为Primary Namenode的备份,并且Primary Namenode中所存储元数据是十分重要的。因此我们一般将Secondary Namenode和Primary Namenode选择两台不同机架上的两台主机。
        在此,我使用192.168.1.201作为Primary Namenode;使用192.168.1.202作为Secondary Namenode。在之前的四台服务器基础上再加一台192.168.1.205,使192.168.1.203~192.168.1.205这三台服务器作为DataNode。一共使用五台服务器,便可以搭建起一个Hadoop环境。
二、在Hadoop官网下载Hadoop

hadoop没有mapreduce hadoop没有secondarynamenode_Hadoop_02


三、将下载的文件传至192.168.1.201某个目录(我在这放在/home下)中

hadoop没有mapreduce hadoop没有secondarynamenode_Hadoop_03


四、解压Hadoop压缩包

        进入/home目录,执行命令
 

tar -sxvf hadoop-2.5.1_x64.tar.gz

       执行完毕后,ls可以查看到root下多了一个hadoop-2.5.1的文件夹

五、修改hosts文件

        给linux中、etc/hosts文件添加如下配置,配置主机名与ip的对应关系

 

192.168.1.201 namenode
192.168.1.202 secondary_namenode
192.168.1.203 datenode1
192.168.1.204 datenode2
192.168.1.205 datanode3

六、修改配置

1、配置jdk

        进入hadoop-2.5.1目录中

cd /home/hadoop-2.5.1/etc/hadoop/
    vi hadoop-env.sh

      将其最后的   export JAVA_HOME=${JAVA_HOME}   修改为   export JAVA_HOME=/home/jdk1.7.0_80 。保存退出即可

2、配置Primary Namenode端口

        进入hadoop-2.5.1目录中

 

cd /home/hadoop-2.5.1/etc/hadoop
     vi core-site.xml

         将下方片段

 

<configuration>
    </configuration>

        修改为

 

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenode:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>         ---hadoop临时目录
        <value>/home/hadoop-2.5</value>     ---hadoop临时目录地址
    </property>
</configuration>

        其中192.168.1.201为设置的Namenode ,  9000位数据上传下载的端口

        保存,退出编辑模式。

3、配置Secondary Namenode端口

        进入hadoop-2.5.1目录中

 

cd /home/hadoop-2.5.1/etc/hadoop
    vi vi hdfs-site.xml

         将下方片段

 

<configuration>
    </configuration>

        修改为

 

<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>secondary_namenode:50090</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.https-address</name>
        <value>secondary_namenode:50091</value>
    </property>
</configuration>

        其中192.168.1.202为设置的Secondary Namenode ,  50090和50091分别为http和https的端口

        保存,退出编辑模式。

4、配置Datanode主机

        进入hadoop-2.5.1目录中

 

cd /home/hadoop-2.5.1/etc/hadoop
    vi slaves

         将其内容设置为

 

datanode1
datanode2
datanode3

        保存,退出编辑模式。

5、配置Secondary Namenode主机

        进入hadoop-2.5.1目录中

 

cd /home/hadoop-2.5.1/etc/hadoop
    vi masters

         将其内容设置为

 

secondary_namenode

        保存,退出编辑模式。

七、将/home下hadoop文件夹拷贝至另外几台服务器

        在192.168.1.201下分别执行下列命令

 

scp -r /home/hadoop-2.5.1/ root@192.168.1.202:/home/
scp -r /home/hadoop-2.5.1/ root@192.168.1.203:/home/
scp -r /home/hadoop-2.5.1/ root@192.168.1.204:/home/

八、配置Hadoop的环境变量

        进入如下文件

 

vi ~/.bash_profile

        在文件后方追加下面代码

 

export HADOOP_HOME=/home/hadoop-2.5.1
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

        保存退出

九、将配置的Hadoop环境变量应用至所有服务器

在192.168.1.201下分别执行下列命令

 

scp ~/.bash_profile root@192.168.1.202:/root/
scp ~/.bash_profile root@192.168.1.203:/root/
scp ~/.bash_profile root@192.168.1.204:/root/

十、使环境变量生效

        在每一个服务器下都执行下方命令,应用环境变量

 

source ~/.bash_profile

十一、格式化HDFS文件系统

        在192.168.1.201上执行下方命令

 

hdfs namenode -format

        初始化成功后,会在我们设置的临时目录初始化元数据,如下图所示

hadoop没有mapreduce hadoop没有secondarynamenode_Hadoop_04


十二、启动Hadoop


        在192.168.1.201上执行下方命令

 

start-dfs.sh

        可以看到如下图所示结果

hadoop没有mapreduce hadoop没有secondarynamenode_hadoop没有mapreduce_05


十三、进入监控页面

        浏览器输入http://192.168.1.201:50070,会看到如下界面,则表示我满启动成功

        【注意:要打开防火墙对端口的限制啊】

hadoop没有mapreduce hadoop没有secondarynamenode_Hadoop_06