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. 使用navicat的坑

    小黄人发送数据,测试软件是否将数据存入mysql数据库中,使用的是navicat. 首先截断了表,所有数据清零,但是此时表并没有回到第一页[由于前面查看最新数据,已经翻到了最后一页],然后小黄人发数据 ...

  2. cookie加载不正确的问题

    华为系统更新后安装了一个谷歌6月安全补丁的东西,然后之前写的调h5页面的部分就出现了问题,后台查过发现是Android端调h5页面时cookie没能带过去,导致了登录失败.于是对setCookie部分 ...

  3. 报错:HDFS IO error org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/yk/dl/alarm_his":hdfs:supergroup:drwxr-xr-x

    报错背景: CDH集成了Flume服务,准备通过Flume将kafka中的数据放到HDFS中, 启动Flume的时候报错. 报错现象: // :: INFO hdfs.HDFSDataStream: ...

  4. python 中删除文件中的空白行(回车)

    staff.txt 内容: Alex Li,Engineer,1363432345,alex@126.com Jack Zhang,Salesman,Sales Dep,15697892356,jac ...

  5. 如何使用Xshell秘钥认证登录CentOS(无密码登录)

    https://www.linuxidc.com/Linux/2016-06/132268.htm

  6. 对于新手用c#中的delegate(委托)和event(事件)

    一.delegate到底是什么东西 delegate允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m,说白了就是可以把方法当作参数传递.delegate既可以引用静态函数 ...

  7. 【Leetcode_easy】941. Valid Mountain Array

    problem 941. Valid Mountain Array solution: class Solution { public: bool validMountainArray(vector& ...

  8. 2019年Java中高级面试题总结(8)

    116.什么时候使用访问者模式? 访问者模式用于解决在类的继承层次上增加操作,但是不直接与之关联.这种模式采用双派发的形式来增加中间层. 117.什么时候使用组合模式? 组合模式使用树结构来展示部分与 ...

  9. 批处理快速合并多分Excel文件并将指定列的数据去重复

    1.批处理快速合并多个excel文件方法: 新建一个.txt文本文件,就命名为合并.txt吧. 而后开启文件,复制以下代码到文件中: @echo off E: cd xls dir copy *.cs ...

  10. [CF1209F]Koala and Notebook_堆优化dij

    Koala and Notebook 题目链接:https://codeforces.com/contest/1209/problem/F 数据范围:略. 题解: 开始的时候看错题了....莫名其妙多 ...