Hadoop集群搭建指南(虚拟机+云平台)

搭建Hadoop集群

文章基于CentOS7搭建Hadoop集群,给出搭建Hadoop集群的前置操作,Ubuntu系统搭建过程类似,在资源下载命令有细微不同,具体情况可根据不同系统做对应操作。

云平台搭建

云上虚拟局域网VPC

基本介绍

私人专有网络,主要为为云上集群配置好网络。VPC相当于一个入户带宽,可以装很多路由器,划分很多子网,集群中的服务器连接到该VPC下,处于同一网段,还可再细分不同子网。

操作步骤
  1. 选择专有网络VPC,创建VPC
  2. 选择专有网络所在区域(需要与买的服务器区域相同)
  3. 选择IPv4网段,推荐选择B类网络(192.168.0.0/16,网络号16位,可分配216 -2)
  4. 配置交换机(子网),推荐选择24位子网掩码(192.168.88.xxx /24),即88子网下属于同一台交换机,可指派的服务器数为28 -2个

安全组SG

基本介绍

安全组相当于云上服务器的流量防火墙,可以控制服务器与外界的流量进出,可以通过指定规则控制流量的出入,一般入方向只对自己的ip开放,即自己的网络才能登陆上云服务器操作,保护服务器安全,出方向不做限制,允许服务器去各个网站请求资源。

操作步骤
  1. 选择安全组,创建安全组
  2. 选择安全组网络(VPC),即给这个VPC入户宽带装防火墙
  3. 默认资源组
  4. 配置资源规则(入方向:限制自己所在IP才可以访问,出方向:一般不限制)
  5. 查询自己所在ip,配置到入方向,删除所有出方向的规则
  6. 公网IP太稀有了,一般的运营商网络IP是变化的,如果连不上服务器要重新修改入规则IP

购买服务器

关于服务器的配置,这里不做过多讲述,价格一般由选的内存、硬盘类型、核心数、公网IP流量费用等有关,配置越豪华越贵。

操作步骤
  1. 选择内存、硬盘类型、核心数、网络等基本情况

  2. 选择服务器专有网络VPC以及VPC下的交换机(子网)

  3. 配置公网IP分配,设置子网IP地址

  4. 选择安全组,相同集群选同一个安全组

  5. 最后进到系统设置,可密码,也可密钥对,推荐使用密钥对登录

  6. 密钥,即SSH,给定密钥对名称,可自动创建密钥对文件

  7. 一定要妥善保管好密钥对文件,用来登录服务器,丢了只能重置服务器登录方式

  8. 远程登录时,ip为公网ip,登录方法选择公钥,密码无需输入,选择私钥文件即可

配置主机名映射:/etc/hosts文件

主机名映射

操作步骤
  1. vim /etc/hosts :进入到主机名映射配置文件
  2. 192.168.88.111 node1 node1:配置简主机名与全主机名(域名)s
  3. 集群中的主机名映射配置都一样,CP配置信息到hots文件即可
  4. 配置ssh免密登录 : 将密钥文件复制到/root/.ssh目录下
  5. 可对密钥文件改名id_rsa,chmod 400 ,给权限(仅属主可读)
  6. 不同服务器之间可实现登录:ssh node1,默认会去找id_rsa为密钥对登录
创建服务器用户
  • useradd hadoop :创建用户hadoop
  • passwd hadoop :给用户hadoop设置密码,可123456
  • su hadoop :切换到用户hadoop
  • ssh -keygen -t rsa -b 4096 :为hadoop用户创建密钥
配置hadoop用户之间的免密登录
  1. 先在一台服务器上使用ssh-keygen -t rsa -b 4096
  2. 在一台服务器上执行ssh-copy-id node1、ssh-copy-id node2、ssh-copy-id node3
  3. 注意默认找id_rsa 登录,所以密钥文件需要改名
  4. 上述命令选择yes,并对应填入node1、node2、node3的hadoop用户密码
  5. 所有的服务器都需要执行上述操作,即完成了hadoop用户之间的免密登录
配置JDK
  1. 单台机上的配置:
  • CentOS 7.64推荐选择jdk-8u361-linux-x64.tar.gz
  • 创建/export/server:软件与环境都丢进去
  • tar -zxvf jdk-8u361-linux-x64.tar.gz -C /export/server/ :解压到 /export/server/
  • cd /export/server/ :到解压目录下
  • ln -s /export/server/jdk1.8.0_361 jdk : 配置一个名为jdk的软连接指向这个文件夹
  • vim /etc/profile : 进入profile配置环境变量
    • export JAVA_HOME=/export/server/jdk1.8.0_361
    • export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
  • source /etc/profile : 要source一下使刚添加的环境变量生效
  • rm -rf /usr/bin/java : 将自带的java删掉
  • ln -s /export/server/jdk1.8.0_361/bin/java /usr/bin/java:自己安装的java链接到usr/bin/java
  • java -version 与javac -version : 查看
  1. 同样的操作在其他机器上
  • scp -r jdk1.8.0_361/ node2:/export/server/ : node1解压好的jdk远程复制到node2,注意先创建好/export/server/
  • 配置软连接jdk
  • 配置环境变量
  • source 生效
  • 删除系统tjava
  • 下载的java路径链接到usr/bin/java
  • java -version 和javac -version验证

关闭防火墙

  • systemctl stop firewalld:关闭防火墙
  • systemctl disable firewalld:开机不启动
  • vim /etc/sysconfig/selinux :SELINUX=disabled
  • init 6 :重启后生效

配置时区与网络同步

  • 时区同步软件ntp

    yum install -y ntp

  • 更行时区

    • 先删除本地时间配置文件

    rm -f /etc/localtime

    • 再将自己设置的时区链接到系统时区文件中

    sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  • 同步时间

    ntpdate -u ntp.aliyun.com

  • 开启ntp

    systemctl start ntpd

  • 设置开机自启

    systemctl enable ntpd

虚拟机搭建

主机、IP、SSH等网络设置

  • 首先修改主机名

    hostnamectl set-hostname node1

  • 修改IP地址

    vim /etc/sysconfig/network-scripts/ifcfg-ens33

    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    #设置静态ip
    BOOTPROTO="static"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="ens33"
    UUID="30abe4e3-8cdb-4103-9b37-d1cabab97f10"
    DEVICE="ens33"
    ONBOOT="yes"
    #设置ip静态后要给定ip、子网掩码、网关、dns
    IPADDR="192.168.155.101"
    NETMASK="255.255.255.0"
    GATEWAY="192.168.155.2"
    DNS1="192.168.155.2"
    
  • 重启网卡

    systemctl stop network

    systemctl start network

    ifconfig :查看是否更改

  • 配置主机名映射(先修改windows的再修改Linux的)

    • windows -> C:\Windows\System32\drivers\etc\hosts
    • linux -> vim /etc/hosts
    192.168.155.101 node1
    192.168.155.102 node2
    192.168.155.103 node3
    
  • 配置root的ssh免密登录

    ssh-keygen -t rsa -b 4096 : 生成rsa方式的4096b的密钥(公钥+私钥)

    ssh-copy-id node1
    ssh-copy-id node2
    ssh-copy-id node3
    
  • 创建hadoop用户并配置免密登录

    #创建hadoop与设置hadoop密码,root下密码设置可不管提醒
    useradd hadoop
    passwd hadoop
    #生成密钥对
    ssh-keygen -t rsa -b 4096
    #配置免密登录,输入yes,然后输入对应登录节点的密码
    ssh-copy-id node1
    ssh-copy-id node2
    ssh-copy-id node3
    

JDK部署

  • 创建/export/server目录

    mkdir -p /export/server

  • 上传jdk(jdk1.8.0_361)

  • 解压jdk

    tar -zxvf jdk-8u361-linux-x64.tar.gz -C /export/server/

  • 创建名为jdk的软连接(快捷方式),注意jdk1.8.0_361后面没有/

    ln -s /export/server/jdk1.8.0_361 jdk

    若创错了软链接 可:rm -f jdk 或者unlink jdk

  • 配置JAVA_HOME

    vim /etc/profile

    export JAVA_HOME=/export/server/jdk
    export PATH=$PATH:$JAVA_HOME/bin
    

    source /etc/profile

  • 继续软连接到/usr/bin(如果环境变量不生效就可利用usr/bin的java)

    • 删除自带的java

      rm -f /usr/bin/java

    • 安装的java软连接到usr/bin

    • ln -s /export/server/jdk /bin/java /usr/bin/java

  • 验证

    java -version

    javac -version

    • javac若不行的话可能是没有source /etc/profile

关闭防火墙

  • 关闭防火墙

    systemctl stop firewalld

  • 设置防火墙开机不自启

    systemctl disable firewalld

  • 除此,linux还有安全模块SELinux,当前可关闭,避免后续问题

    vim /etc/sysconfig/selinux

    SELINUX=disabled
    
  • 修改之后需要重启生效、

    init 6

配置时区与网络同步

  • 下载时同步软件ntp

    yum install -y ntp

  • 删除当前的默认时区

    rm -f /etc/localtime

  • 重新写入目标时区

    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  • 同步时间

    ntpdate -u ntp.aliyun.com

  • 开启ntp

    systemctl start ntpd

  • 设置ntp开机自启

    systemctl enable ntpd

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值