Hadoop2.x分布式集群环境搭建

引言

大数据已是当今这个时代很是很是热的一个技术方向,全部的行业都在利用大数据提高业务,包括不少的实体行业,制造企业,都但愿利用现有的数据、亦或是能够爬取的数据。挖掘出更多的商业价值。曾经个人驾校教练就和我说过一个场景,能不能利用大数据和人工智能的技术手段,来分析当地有比较大意向想要学车,考驾照,买车的人。而后把驾校的招生信息或者广告直接经过必定的渠道(短信、邮件、电话、某某贴吧、论坛、app等等方式),推送给意向准客户。咱们都知道任何的技术项目,研发就是为了提高业务下降成本,特别是传统的研发,下降成本就是最最核心的目的。由于前期的:市场调研、业务产品规划、战略部署等更多的是拓展市场以及竞争对手的分析。有点扯远了。回到大数据,首先得有一个好的框架工具,那就是今天要介绍的Hadoop。同时要基于Hadoop来作大数据开发,就必须把环境给搭建起来。html

CentOS虚拟机

1. VMware安装

VMware的安装就不说了,很简单下一步、下一步就行了。 下载地址:www.vmware.com/products/wo… VMware 14的版本,我用的是windows版本。java

2. CentOS安装机器NAT网络配置

CentOS使用6.5的版本node

  • CentOS 镜像选择 web

    选择下载好的系统镜像,点击下一步。

  • 硬盘大小配置 apache

    这里磁盘大小能够用20G,固然你的硬盘大出天际,也不妨碍你设置个1P,哈哈哈。最小不小于5G,否则后期不够用。 选择将虚拟磁盘存储为单个文件,这个是为了方便将建立好的虚拟机移植到其它的电脑,就是俗称的“我把电脑拷贝的别人家”。

  • 自定义硬件配置vim

其它硬件不变,修改了内存为2G,由于当前配置的是master主服务器节点,须要的内存大点。这个仍是看你自己物理机器内存的大小,个人机子是16G的,个人分配是422的方式:master节点机子4G内存、另外两个slave从节点机子2G内存。正常211的配置就够了,固然实际工做中仍是适当的大些比较好吧。

  • 等待完成安装windows

  • NAT网络配置bash

接下来配置虚拟机的网络,点击编辑---选择“虚拟网络编辑器”服务器

选中VMnet8-->点击移除网络-->而后点击添加网络。

一样选择VMnet8,VM会自动为咱们分配一个子网。

子网分配后,一样会出现一个VMnet8的子网项,分配的网段是241。而后选择使用NAT模式,点击“NAT设置”,能够查看到子网的信息:

ip:192.168.241.0、 子网掩码:255.255.255.0、 网关:192.168.241.2网络

这些后面配置的时候都须要用到,先作一个记录

点击右下角那个电脑图标的设置,先把网络适配器切换为 桥接模式,肯定后,在点击电脑图标的设置,切换回NAT模式,这样来初始化虚拟机网络。

终端输入命令:

  1. 进入cd /etc/sysconfig/network-scripts

  2. vim ifcfg-eth0

  3. 将ip、子网掩码、网关等信息输入并保存

  4. 输入/etc/init.d/network restart,重启网络服务。

  5. ping www.baidu.com, 以下图表示能够访问网络。

3. 命令行神器SecureCRT的使用

直接操做VM虚拟机着实麻烦,使用SecureCRT命令行神器,链接虚拟机,能够很方便的操做。 安装好SecureCRT后,打开Session Manager-->New Session-->降master的机子的ip作为host输入,用户名是你配置的。链接的时候会要求输入密码,单机save password,方便之后链接无需再次输入密码。

4. 配置两台从节点slave机器

很简单,先挂起master主节点虚拟机,而后找到虚拟机本地磁盘的路径文件夹,复制两个文件夹并重命名以下图:

而后打开两个从节点虚拟机,分别修改两个从节点虚拟机的/etc/sysconfig/network-scripts下的ifcfg-eth0文件的ip为:slave1(ip:192.168.241.11)、slave21(ip:192.168.241.12) 由于是复制master节点,因此两个从节点的网卡物理地址是同一个,能够经过VMware的又是神奇的右下角电脑小图标的设置,先移除网络适配器(网卡),而后添加过网络适配器。切换成“桥接模式”,确认后等待小图标再次亮起,再次点击电脑小图标的设置,将网络适配器链接改为“NAT模式”。这样就完成了NAT模式网卡的服务的从新初始化。
最后分别使用:ping www.baidu.com测试从节点机器是否都能上网。

一样的,在SecureCRT中,新建两个从节点的session机器。步骤和3master的同样。

jdk的安装

jdk我用的是 1.8版本,这个能够去oracle官方下载。首先要将Windows下的文件拷贝到CentOS中,须要有一个共享文件夹。 选择电脑小图标设置,在选项的共享文件夹,启用文件共享并添加共享文件。

  • 经过 cp拷贝命令将jdk1.8的压缩包拷贝到/usr/local/src/java目录下,首先建立java目录:

    mkdir /usr/local/src/java
    cp jdk* /usr/local/src/java
    拷贝完成后,进入/usr/local/src/java经过tar -zxvf jdk*命令解压jdk的压缩包。

  • 编辑配置jdk环境变量

    vim ~/.bashrc

    export JAVA_HOME=/usr/local/src/java/jdk1.8.0_181
    export CLASSPATH=:$CLASSPATH:$JAVA_HOME/lib
    export PATH=:$PATH:$JAVA_HOME/bin

    source ~/.bashrc更新环境变量文件(这个文件表示当前用户组的环境变量)

  • 配置从节点jdk及其环境变量

    把解压的jdk文件拷贝到另外两个从节点:

    1. scp -rp /usr/local/src/java 192.168.241.11:/usr/local/src/
      (使用scp 远程服务器拷贝命令,将java文件夹拷贝到192.168.241.11这个ip的从节点即slave1的/usr/local/src/目录下)
    2. scp -rp /usr/local/src/java 192.168.241.12:/usr/local/src/
      拷贝到slave2节点机器
    3. 一样修改~/.bashrc的环境配置,再经过source ~/.bashrc命令更新环境变量。以下图表示jdk环境安装成功。

hadoop集群安装

1. hadoop安装配置

  • 一样和jdk安装配置同样,将hadoop2.6.1压缩包拷贝到/usr/local/src/hadoop/目录下,并解压。
  • 修改配置文件hadoop的etc目录
  1. 在/usr/local/src/hadoop/hadoop-2.6.1目录下新建tmp文件夹、dfs/name、dfs/data等文件夹。

  2. 修改配置文件:

    vim hadoop-env.sh

    export JAVA_HOME=/usr/local/src/java/jdk1.8.0_152

    vim yarn-env.sh

    export JAVA_HOME=/usr/local/src/java/jdk1.8.0_152

    vim slaves

    slave1
    slave2

    vim core-site.xml

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://192.168.241.10:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/usr/local/src/hadoop/hadoop-2.6.1/tmp</value>
        </property>
    </configuration>
    复制代码

    vim hdfs-site.xml

    <configuration>
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>master:9001</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/usr/local/src/hadoop/hadoop-2.6.1/dfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/usr/local/src/hadoop/hadoop-2.6.1/dfs/data</value>
        </property>
        <property>
            <name>dfs.repliction</name>
            <value>3</value>
        </property>
    </configuration>
    复制代码

    vim mapred-site.xml

    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    复制代码

    vim yarn-site.xml

    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
            <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
            <property>
            <name>yarn.resourcemanager.address</name>
            <value>master:8032</value>
        </property>
            <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>master:8030</value>
        </property>
            <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>master:8035</value>
        </property>
            <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>master:8033</value>
        </property>
            <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>master:8088</value>
        </property>
    </configuration>
    复制代码
  3. 将hadoop加入环境变量

    vim ~/.bashrc

    export HADOOP_HOME=/usr/local/src/hadoop/hadoop-2.6.1
    export PATH=$PATH:$HADOOP_HOME/bin

    source ~/.bashrc 更新环境变量

2. 集群机器节点网络配置

将三台机器的网络配置到各自的/etc/hosts文件中。

192.168.241.10 master
192.168.241.11 slave1
192.168.241.12 slave2

同时将三台机器的域名:master、slave一、slave2配置到网络文件中

vim /etc/sysconfig/network
HOSTNAME=master
HOSTNAME=slave1
HOSTNAME=slave2

并使用hostname和bash命令而后上面域名生效,以下图:

3. 机器节点之间相互免密登陆切换配置

  • 关闭全部机器节点的防火墙,避免启动hadoop出现没必要要的错误,难以排查问题

    /etc/init.d/iptables stop
    setenforce 0

  • 创建机器节点间的互信免密登陆

    ssh-keygen
    cd ~/.ssh (进入隐藏的ssh目录)

  • 将id_rsa.pub公钥文件中的加密字符串拷贝到authorized_keys文件中。

    将其它节点机器的ssh的id_rsa.pub公钥文件中的加密字符串拷贝到authorized_keys文件中。这里个人集群有三台节点机器,那就authorized_keys文件中有三个加密字符串,以下图:

  • 验证是否经过ssh互信免费登陆成功

    ssh slave1

4. hadoop环境运行测试

  • 启动集群,初始格式化Namenode

    hadoop namenode -format

    ./start-all.sh

  • 检查集群进程是否都起来

    jps命令

    master

    slave1

    slave2

    这样表示hadoop分布式集群环境搭建成功!!!

相关文章
相关标签/搜索