hadoop完全分布式搭建

建议(遇到的坑):

  1. 如果自己用的操作系统就是linux,我本身是deepin系统,装了两台虚拟机,结果,用户名没有配置,导致启动不了,因为hadoop的master节点启动的时候,默认slave的用户名为master机器的用户名。所以,要保证三台机器,用户名是一致的!!

  2. windows下的调试MapReduce程序会有点不方面,需要装winutils。

  3. 建议在一台上搭建完整(包括环境、配置),再克隆,或者scp复制。

  4. 如果想连zookeeper和kafka都一起的话,可以也直接配置了。不装的话,之后用scp传,也挺方面的。

  5. 克隆完修改hostname!

  6. 整体过程还有点粗糙,有些遇到的细节,也忘记记录了。欢迎指教,如果有问题,请通知,我会及时改正。

虚拟机安装

  1. VMware中安装多台CentOS-7虚拟机(这里安装了2台slave,因为我自己用的操作系统就是deepin)

  2. 传文件到虚拟机:我使用scp传的,很快。windows下的用户建议xshell,sftp。

  3. 虚拟机的网络配置就默认的NAT,CentOS最小安装

配置:

  1. 关闭防火墙

    $ systemctl status firewalld            # 查看防火墙状态
    $ systemctl stop firewalld # 临时停止firewall
    $ systemctl disable firewalld # 禁止firewall开机启动
  2. 关闭SELinux

    安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。

    $ vim /etc/selinux/config
    # 将SELINUX=enforcing改为SELINUX=disabled
  3. 安装ntp时间同步服务

    yum install -y ntp
    # 设置开机自启
    systemctl enable ntpd.service # 启动
    systemctl enable ntpd
    systemctl status ntpd # 查看是否启动

    有可能无法启动,原因是:与chronyd冲突:

    systemctl disable chronyd :关掉,在启动ntp,即可

  4. 修改主机名、配置静态ip

    (克隆之后,这些要稍作修改,主机名要改,ip要改一下即可)

    第一步:修改 /etc/sysconfig/network-scripts/ifcfg-xxx文件

    主要修改下面几个参数:

    BOOTPROTO="static"
    ONBOOT="yes"
    IPADDR="172.16.125.128"
    NETMASK="255.255.255.0"
    GATEWAY="172.16.125.2"

    第二部:修改文件 /etc/sysconfig/network的内容

    内容同上

    # Created by anaconda
    GATEWAY=172.16.125.2
    DNS=172.16.125.2

    第三步:重启网络

    service network restart
  5. 配置ssh

    master能够免密登录到slave节点

    $ ssh-keygen -t rsa

    打开~/.ssh 下面有三个文件

    -rw-r--r--. 1 root root  392 9月  26 21:05 authorized_keys   # 已认证的keys
    -rw-------. 1 root root 1679 9月 26 20:57 id_rsa # 私钥
    -rw-r--r--. 1 root root 393 9月 26 20:57 id_rsa.pub # 公钥
    在master上将三台机器的公钥放到authorized_keys里。命令:
    $ sudo cat id_rsa.pub >> authorized_keys

    将master上的authorized_keys放到其他linux的~/.ssh目录下

    $ sudo scp authorized_keys hadoop@10.10.11.192:~/.ssh

      修改authorized_keys权限,命令:

    $ chmod 644 authorized_keys
    测试是否成功

    ssh host2 输入用户名密码,然后退出,再次ssh host2不用密码,直接进入系统。这就表示成功了。

    如果在登录ssh的时候出现:

    The authenticity of host 'hadoop2 (192.168.238.130)' can't be established

    则需要修改/etc/ssh/ssh_config文件中的配置,添加如下两行配置:

    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
  6. 最后:安装配置jdk、hadoop

    core-stie.xml

    <configuration>
    <property>
    <name>fs.defaultFS</name><!--默认文件系统位置-->
    <value>hdfs://master:9000/</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name><!--hadoop的工作目录,namenode、datanode的数据-->
    <value>/home/whr/workbench/hadoop/data/</value>
    </property>
    </configuration>

    hdfs.site.xml

    <configuration>
    <property>
    <name>dfs.replication</name><!--副本数量-->
    <value>2</value>
    </property>
    <property><!--secondary的位置,子节点的其中一个配置-->
    <name>dfs.namenode.secondary.http-address</name>
    <value>slave1:50090</value>
    </property>
    </configuration>

    mapreduce.site.xml

    <configuration>
    <property><!--指定mapreduce程序用yarn集群运行,才能实现分布式-->
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    </configuration>

    yarn.site.xml

    <configuration>
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop1</value>
    </property>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    </configuration>

    配置slaves文件

    slave1
    slave2

    配置masters文件(如果有的话,我用的CDH版本,没有此文件)

    master

克隆

  1. vmware克隆没什么说的

  2. 克隆完成,先修改 /etc/hostname文件下的主机名!

  3. 添加三台机器的ip地址映射:/etc/hosts

启动集群

  1. 先格式化节点(我是一台格式化之后,克隆的)
 $ hadoop namenode -format
# 最后出现,即成功,也可以看最后状态码为0
Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted.
  1. 启动:到sbin目录下(可以先把sbin目录配置到环境变量中;就不需要切换目录了)

start-dfs.sh
start-yarn.sh
  1. jps命令

    全部启动完成之后,查看结果:(在master上ssh登录slave)

    可以看到master的NameNode、两个DataNode、一个SecondaryNameNode都已经启动完毕

    yarn下的ResourceManager、两个slave中的NodeManager也都启动完成

  

  4. 这样就可以通过浏览器访问了50070端口了

可以跑一下mapreduce样例程序:

$ hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.15.2.jar pi 5 5

Hadoop配置文件

参考配置文件

https://www.cnblogs.com/xhy-shine/p/10530729.html

Haddop完全分布式集群搭建的更多相关文章

  1. HBase HA分布式集群搭建

    HBase HA分布式集群搭建部署———集群架构 搭建之前建议先学习好HBase基本构架原理:https://www.cnblogs.com/lyywj170403/p/9203012.html 集群 ...

  2. Hadoop上路-01_Hadoop2.3.0的分布式集群搭建

    一.配置虚拟机软件 下载地址:https://www.virtualbox.org/wiki/downloads 1.虚拟机软件设定 1)进入全集设定 2)常规设定 2.Linux安装配置 1)名称类 ...

  3. hadoop伪分布式集群搭建与安装(ubuntu系统)

    1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip; 2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链 ...

  4. Hadoop分布式集群搭建

    layout: "post" title: "Hadoop分布式集群搭建" date: "2017-08-17 10:23" catalog ...

  5. hbase分布式集群搭建

    hbase和hadoop一样也分为单机版.伪分布式版和完全分布式集群版本,这篇文件介绍如何搭建完全分布式集群环境搭建. hbase依赖于hadoop环境,搭建habase之前首先需要搭建好hadoop ...

  6. 分布式实时日志系统(四) 环境搭建之centos 6.4下hbase 1.0.1 分布式集群搭建

    一.hbase简介 HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为 Java.它是Apache软件基金会的Hadoop项目的一部分,运行 ...

  7. kafka系列二:多节点分布式集群搭建

    上一篇分享了单节点伪分布式集群搭建方法,本篇来分享一下多节点分布式集群搭建方法.多节点分布式集群结构如下图所示: 为了方便查阅,本篇将和上一篇一样从零开始一步一步进行集群搭建. 一.安装Jdk 具体安 ...

  8. MinIO 分布式集群搭建

    MinIO 分布式集群搭建 分布式 Minio 可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务.由于硬盘分布在不同的节点上,分布式 Minio 避免了单点故障. Minio 分布式模式可 ...

  9. 阿里云ECS服务器部署HADOOP集群(二):HBase完全分布式集群搭建(使用外置ZooKeeper)

    本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...

随机推荐

  1. response.getWriter().write的用法

    /** * 获取手机验证码的方法 */ var loopObjBindMobil = null; var secondsBindMobil = 0; function hqBindYzm(moblie ...

  2. CentOS "libc.so.6: version 'GLIBC_2.14' not found"解决方法,同理'GLIBC_2.15' not found"

    出现"libc.so.6: version 'GLIBC_2.14' not found"问题,是由于glibc版本过低,升级glibc即可. 由于CentOS系统RPM源目前gl ...

  3. IE6/IE7/IE8 JQuery下resize事件执行多次的解决方法

    在使用jQuery的resize事件时发现每次改变浏览器的窗口大小时resize时间会执行两次,百度搜索了一下找到一个解决的方法,使用setTimeout来解决这个问题代码如下: var resize ...

  4. nodejs应用转换png,jpg,gif为webp图片格式

    本博客列表缩略图在支持webp格式的浏览器下,使用的是webp格式图片,不支持webp图片下使用的是原图片(如png,gif,jpg等) webp使用指南,请参考 https://www.imqian ...

  5. bootstrap:时间日期日历控件(datetimepicker)

    https://blog.csdn.net/qq_33368846/article/details/82223676 Bootstrap datetimepicker控件的使用 1.支持日期选择,格式 ...

  6. 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识1

    什么是REST REST 是 Representational State Transfer 的缩写. 它是一种架构的风格, 这种风格基于一套预定义的规则, 这些规则描述了网络资源是如何定义和寻址的. ...

  7. vue路由跳转取消上个页面的请求和去掉重复请求

    vue路由跳转取消上个页面的请求和去掉重复请求 axios 的二次封装(拦截重复请求.异常统一处理) axios里面拦截重复请求

  8. Head First Design Patterns HeadFirst 设计模式

    OO原则是我们的目标,而设计模式是我们的做法. 策略模式 (Strategy) 在软件开发上,一直不变的真理是"change".不管软件设计的多好,一段时间之后,总是要成长与改变, ...

  9. Linux 线程实现机制分析(转载)

    自从多线程编程的概念出现在 Linux 中以来,Linux 多线应用的发展总是与两个问题脱不开干系:兼容性.效率.本文从线程模型入手,通过分析目前 Linux 平台上最流行的 LinuxThreads ...

  10. pytorch1.0实现RNN for Regression

    import torch from torch import nn import numpy as np import matplotlib.pyplot as plt # 超参数 # Hyper P ...