大数据Hadoop学习之搭建hadoop平台(2.2)

关于大数据,一看就懂,一懂就懵。html

1、概述java

  本文介绍如何搭建hadoop分布式集群环境,前面文章已经介绍了如何搭建hadoop单机环境和伪分布式环境,如须要,请参看:大数据Hadoop学习之搭建hadoop平台(2.1)。hadoop独立环境和伪分布式环境都没法发挥hadoop的价值,若想利用hadoop进行一些有价值的工做,必须搭建hadoop分布式集群环境。node

  下文以三台虚拟机为基础搭建集群环境,系统版本为CentOS-7,虚拟机地址分别为:192.168.1.10六、192.168.1.10九、192.168.1.110linux

2、修改主机名web

  编辑network文件,文件位于/etc/sysconfig路径下,若文件为空则添加以下内容,如不为空,则修改:HOSTNAME=namenode,namenode为修改的主机名。apache

NETWORKING=yes HOSTNAME=namenode
View Code

  修改192.168.1.106的主机名为namenode、192.168.1.109的主机名为datanode0一、192.168.1.110的主机名为datanode02。修改后键入命令hostname验证是否修改为功,如在192.168.1.106上键入hostname后出现namenode则表示修改为功,以下图所示:浏览器

 

 3、修改hosts安全

  修改hosts是为了配置前面修改的主机名和IP的映射关系。hosts文件位于/etc路径下,三台虚拟机都须要添加以下内容:app

192.168.1.106 namenode 192.168.1.109 datanode01 192.168.1.110   datanode02
修改hosts

  修改后效果如图所示:框架

4、关闭防火墙(三台机器均需关闭)

  一、查看防火墙状态

firewall-cmd --state
查看防火墙状态

  以下则表示防火墙处于开启状态:

  二、关闭防火墙

systemctl stop firewalld.service
临时关闭防火墙

  再经过service iptables status查看防火墙状态,以下则表示防火墙已经关闭:

  可是,这仅仅是在当前状态下关闭防火墙,系统重启后防火墙仍然会自动开启,因此须要禁止开机启动防火墙

systemctl disable firewalld.service
禁止开机启动防火墙

  执行命令后重启系统生效。

5、关闭selinux(三台机器均需关闭)

  selinux是一个防御程序,相似于防火墙。编辑selinux文件,文件位于:/etc/sysconfig路径下

  修改SELINUX=enforcing为SELINUX=disabled,修改后效果以下:

 6、ssh免密码登陆设置

  hadoop集群模式下,各主机之间须要互相通讯,好比上传文件到HDFS文件系统上时,都须要对文件进行备份。因此须要各机器之间可以进行免密码登陆。

  一、生成秘钥:输入命令:ssh-keygen -t rsa,按3次回车以后会生成秘钥。

  二、拷贝秘钥到本机和其余两台机器上:分别执行命令:ssh-copy-id 192.168.1.109,ssh-copy-id 192.168.1.110拷贝秘钥。

  三、免密码登陆验证:执行命令ssh 192.168.1.109,若是不须要输入密码就能登陆到109机器上,则免密码登陆设置成功,110也执行相同的测试。

7、安装JDK并配置环境变量(三台机器均须要作相同的设置)

  一、建立目录/home/software,上传JDK到该目录下并解压,此处使用的JDK版本是jdk1.8.0_131

  二、配置环境变量:编辑文件profile,文件位于:/etc目录下,在文件尾部添加以下内容:

export JAVA_HOME=/home/software/jdk1.8.0_131 export PATH=$PATH:$JAVA_HOME/bin
配置java环境变量

  如图所示:

 

  三、输入命令source /etc/profile是文件当即生效

  四、测试:在任意路径下输入命令:java -version,若打印出java的版本信息,则表明java安装成功。以下所示:

8、安装hadoop集群

  一、下载hadoop安装包

    下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/,这是hadoop-2.7.3的项目存档地址。随着Apache各项目的版本更新,各项目的网站上只上架最新版本和近期历史重要版本,若是网站下架的项目,须要到Apache存档地址上寻找,该地址是:https://archive.apache.org/dist/,hadoop存档地址是:https://archive.apache.org/dist/hadoop/。在hadoop2.7.3版本的地址下,下载hadoop-2.7.3.tar.gz文件包。以下图所示:

  二、安装hadoop并配置环境变量

    ①、上传hadoop安装包hadoop-2.7.3.tar.gz到/home/software目录下并解压,固然,也能够放在其余目录下。

    ②、编辑文件profile,文件位于/etc目录下,添加以下代码:

export HADOOP_HOME=/home/software/hadoop-2.7.3
配置hadoop环境变量

      并在PATH变量后追加以下代码:

$HADOOP_HOME/bin:$HADOOP_HOME/sbin
追加PATH变量

      输入命令source /etc/profile使profile配置文件当即生效。最终profile文件效果以下所示:

    ③、验证hadoop环境变量是否配置成功:在任何路径下输入命令hadoop,若是打印相关信息,则表明hadoop的安装和环境变量配置成功,以下图所示:

    至此,hadoop安装和配置环境变量成功,可是,这仅仅是进行了基础的安装,还须要进行一些配置,使hadoop能真正的工做。

    以上第八小节的操做,在一台机器上(我使用namenode机器)配置便可,其余两台机器只须要按第②、③点编辑profile文件,由于在接下来的内容中会接着配置hadoop,所有配置完成后,把hadoop-2.7.3文件拷贝到其余机器便可。

9、hadoop配置

  一、修改hadoop-env.sh文件,文件位于/home/software/hadoop-2.7.3/etc/hadoop目录下。

    修改java_home,找到代码 export JAVA_HOME=${JAVA_HOME} ,修改成JAVA_HOME的值,即:export JAVA_HOME=/home/software/jdk1.8.0_131

  二、修改core-site.xml文件,文件一样位于/home/software/hadoop-2.7.3/etc/hadoop目录下。

    找到<configuration>节点,在该节点下添加以下代码:

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.1.106:8020</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/software/hadoop-2.7.3/data/tmp</value>
    </property>
    <property>
        <name>fs.trash.interval</name>
        <value>10080</value>
    </property>
修改core-site.xml

修改后效果以下:

  三、 修改hdfs-site.xml文件,文件一样位于/home/software/hadoop-2.7.3/etc/hadoop目录下。

    找到<configuration>节点,在该节点下添加以下代码:

<property>
    <!-- 设置备份数为3份 -->
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
    <!-- 关闭HDFS权限 -->
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
    <property>
    <!-- 设置namenode http访问地址 -->
        <name>dfs.namenode.http-address</name>
        <value>192.168.1.106:50070</value>
    </property>
    <property>
    <!-- 设置secondarynamenode http访问地址 -->
        <name>dfs.namenode.secondary.http-address</name>
        <value>192.168.1.110:50090</value>
    </property>
修改hdfs-site.xm

修改后效果以下:

 

  四、修改mapred-site.xml文件,文件一样位于/home/software/hadoop-2.7.3/etc/hadoop目录下,可是该路径下并不存在mapred-site.xml文件,只存在mapred-site.xml.template文件,将mapred-site.xml.template文件修改成mapred-site.xml便可。

    找到<configuration>节点,在该节点下添加以下代码:

<property>
    <!-- 指定mapreduce使用yarn框架来调度 -->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
    <!-- 指定jobhistory地址 -->
        <name>mapreduce.jobhistory.address</name>
        <value>192.168.1.106:10020</value>
    </property>
    <property>
    <!-- 指定jobhistorywebapp地址 -->
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>192.168.1.106:19888</value>
    </property>
    <property>
    <!-- 开启uber模式 -->
        <name>mapreduce.job.ubertask.enable</name>
        <value>true</value>
    </property>
修改mapred-site.xm

修改后效果以下:

 

  五、修改yarn-site.xml文件,文件一样位于/home/software/hadoop-2.7.3/etc/hadoop目录下。

    找到<configuration>节点,在该节点下添加以下代码:

<property>
    <!-- mapreduce为shuffle -->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
    <!-- 设置resourcemanager主机 -->
        <name>yarn.resourcemanager.hostname</name>
        <value>192.168.1.109</value>
    </property>
    <property>
    <!-- 设置web安全任务的主机和端口 -->
        <name>yarn.web-proxy.address</name>
        <value>192.168.1.109:8089</value>
    </property>
    <property>
    <!-- 开启日志,能够在yarn中查看日志 -->
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
    <!-- 设置yarn删除日志的时间 -->
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    <property>
    <!-- 设置yarn的内存 -->
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>8192</value>
    </property>
    <property>
    <!-- 设置yarn的cpu为8核 -->
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>8</value>
    </property>
修改yarn-site.xml

修改后效果以下:

  六、修改slaves文件,文件一样位于/home/software/hadoop-2.7.3/etc/hadoop目录下。

    hadoop能够经过脚本命令在整合集群范围内启动和中止守护进程,可是,须要告诉命令hadoop集群中有哪些机器,slaves文件的做用正是如此,slaves文件中包含了机器的主机名或者是IP地址,每行表明一个机器信息,该文件列举了能够运行datanode和节点管理器(nodemanager)的机器。固然,slaves文件能够不放在/home/software/hadoop-2.7.3/etc/hadoop目录下,经过修改hadoop-env.sh配置文件中的HADOOP_SLAVES设置能够把slaves放到别的地方并赋予一个别名。

    在slaves中添加以下内容:

192.168.1.106
192.168.1.109
192.168.1.110
hadoop集群主机地址

    修改后效果以下:

  七、分发hadoop-2.7.3

    进行如上配置以后,把hadoop-2.7.3文件拷贝到其余机器上,注意,先格式化namenode以后再拷贝。

·    ①、格式化hadoop:进入到hadoop-2.7.3文件下,及/home/software/hadoop-2.7.3路径下,输入命令:bin/hadoop namenode -format,等待格式化完成,格式化完成以后,在屏幕上打印出来的最后几行,能够看到has been successfully formatted表明格式化成功:

    ②、分发hadoop-2.7.3文件到其余机器上:使用scp -r hadoop-2.7.3 192.168.1.109:/home/software、scp -r hadoop-2.7.3 192.168.1.110:/home/software命令把hadoop-2.7.3文件拷贝到192.168.1.109和192.168.1.110机器上的/home/software路径下。

  八、 启动服务

    ①、启动hdfs服务:在namenode主机上,进入/home/software/hadoop-2.7.3目录下,输入命令sbin/start-dfs.sh,等待服务启动。启动服务的过程当中,会提示是否肯定链接其余机器(Are you sure you want to continue connecting (yes/no)?),输入yes便可。启动成功以后,输入jps命令能够看到启动了NameNode和DataNode守护进程;其余两台机器上分别启动了DataNode,SecondaryNameNode、DataNode。

    ②、启动yarn服务:启动yarn服务须要在192.168.1.109机器上启动,由于在yarn-site.xml配置文件中,配置了yarn的服务地址为192.168.1.109。进入目录/home/software/hadoop-2.7.3下,输入命令:sbin/start-yarn.sh,等待服务启动。

    ③、启动jobhistory:在192.168.1.106机器上启动jobhistory,进入目录/home/software/hadoop-2.7.3下,输入命令:sbin/mr-jobhistory-daemon.sh start historyserver,等待服务启动。

    ④、启动proxyserver防御进程:在192.168.1.109机器上启动proxyserver,进入目录/home/software/hadoop-2.7.3下,输入命令:sbin/yarn-daemon.sh start proxyserver,等待服务启动。

  九、经过web界面查看hdfs和yarn

    ①、在浏览器输入地址:192.168.1.106:50070,能看到以下hdfs web界面:

    ②、在浏览器输入地址:192.168.1.109:8088,能看到以下yarn web界面:

 

10、结语

  至此,hadoop集群模式安装并配置成功,能够在该集群环境上部署hadoop的应用,好比hive、hue、impala等应用,使hadoop投入工做。可是,此时的集群并不健壮,还须要进一步配置hadoop。在接下来的博文中会详细记录。

相关文章
相关标签/搜索