【亲测】Hadoop 高可用集群搭建 与 开发环境部署

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 【亲测】Hadoop 高可用集群搭建 与 开发环境部署

每一次 Hadoop 生态的更新都是如此令人激动

像是 hadoop3x 精简了内核,spark3 在调用 R 语言的 UDF 方面,速度提升了 40 倍

所以该文章肯定得配备上最新的生态

hadoop 生态简介


1.png


期待目标

环境

OS :

  • CentOS 7.4

组件:


  • Hadoop 3x 及生态
  • Yarn
  • Mapreduce
  • HDFS
  • Zookeeper 3.6.3


可选项


  • Hive
  • Flume 1.9
  • Sqoop 2
  • kafka 2x
  • Spark 3x


RDMS:


  • MySQL 5.7 or 8


开发语言:


  • JDK 8
  • Python 3.6 64bit
  • Scala 2.0 及以上


集群规划

image.png


建议:Zookeeper、JournalNode 节点为奇数


  1. 防止由脑裂造成的集群不可用
  2. leader 选举,要求 可用节点数量 > 总节点数量/2 ,节省资源


注意

Hadoop 安装有如下三种方式:


  • 单机模式:安装简单,几乎不用做任何配置,但仅限于调试用途。
  • 伪分布模式:在单节点上同时启动 NameNode、DataNode、JobTracker、TaskTracker、Secondary Namenode 等 5 个进程,模拟分布式运行的各个节点。
  • 完全分布式模式:正常的 Hadoop 集群,由多个各司其职的节点构成。
  • HA :在 Hadoop 2.0 之前,在 HDFS 集群中 NameNode 存在单点故障 (SPOF:A Single Point of Failure)。对于只有一个 NameNode 的集群,如果 NameNode 机器出现故障(比如宕机或是软件、硬件升级),那么整个集群将无法使用,直到 NameNode 重新启动

此文采用 HA方案 进行部署


可选方案:


  • 多台物理机
  • 虚拟机多开



Centos 安装

环境

此文采用 多台物理机 方案


  • 内存 2G
  • 硬盘 20G

共 4 台物理设备


镜像下载:

此文采用版本:Centos7.4 x64


中科大源


官方源


建议:百度网盘 centos7.4 密码: 8jwf


安装:

镜像刻录不进行介绍

请参考:

  1. linux
  2. windows
  3. mac


选择语言:


2.png

采用最小安装方案

> >4.png5.png


设置 root 密码

点击 ROOT PASSWORD 设置 root 密码,不用添加用户

> >5bbed9b4fe10bc222f1d09eac0dba8e7.png


等待完成

6.png

完成之后点击Reboot > >

7.png

虚拟机帮助


该节点为虚拟机的朋友提供帮助


网络配置

虚拟机配置修改

1)共享网络

1.png


2)选择桥接模式

2.png


centos 网络配置文件修改

1)查找配置文件


find / -name ifcfg-*

3.png

2)修改你 etc 目录下,并以你网卡名结尾的文件


# 这里举例我的
vi /etc/sysconfig/network-scripts/ifcfg-ens33

动态 IP 修改操作:


  • 启用 dhcp
  • 注释 ipaddr 和 gateway
  • onboot 设置为 yes


建议做如下修改

修改为静态 IP


# 修改
BOOTPROTO="static" #dhcp改为static
ONBOOT="yes" #开机启用本配置
# 添加
IPADDR=192.168.x.x #静态IP
GATEWAY=192.168.x.x  #默认网关
NETMASK=255.255.255.0 #子网掩码
DNS1=你本机的dns配置 #DNS 配置


3)重启服务

service network restart

4)ping 一下我的博客试试

ping uiuing.com


4.png

客户端连接


安装 net-tools


yum -y install net-tools

查看 ip


ifconfig

打开客户端终端进行 ssh 连接


ssh root@yourip


安装开发环境

Mysql

此文采用版本:mysql5.7


安装依赖

登陆 centos

5.png


安装主要依赖

yum -y install gcc gcc-c++ ncurses ncurses-devel cmake

安装 boost 库(可选)

Mysql5.7 版本更新后有很多变化,安装必须要 BOOST 库(版本需为 1.59.0)


boost 库下载地址:boost


1)下载

wget https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

2)检查 MD5 值,若不匹配则需要重新下载


md5sum boost_1_59_0.tar.gz

3)解压

tar -vxzf boost_1_59_0.tar.gz

4)存储

mv boost_1_59_0 /usr/local/boost_1_59_0

下载

安装 wget

yum -y install wget

官方下载地址:mysql


1)下载


wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21.tar.gz

2)检查 MD5 值,若不匹配则需要重新下载


md5sum mysql-5.7.21.tar.gz

编译安装

1)解压

tar -vxzf mysql-5.7.21.tar.gz

2)编译


cmake .\
make

3)安装


make install

配置 mysql

启动

systemctl start mysqld

或者

systemctl start | stop

查看 mysql 状态

systemctl status mysqld

或者


systemctl status

开机自启(可选)

systemctl enable mysqld

重载配置(可选)

systemctl daemon-reload

配置 root 密码

1)生成默认密码

grep 'temporary password' /var/log/mysqld.log

6.png

localhost 后面的就是你的 root 密码


2)修改密码

登陆 mysql


mysql -uroot -p你的密码

7.png

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';

注意:mysql 5.7 默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位


以后可以用 update 更新密码


use mysql;
update user set password=PASSWORD('你的密码') where user='root';
flush privileges;


添加远程用户(可选)


GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
use mysql;
UPDATE user SET Host='%' WHERE User='用户名';
flush privileges;


配置文件:/etc/my.cnf


日志文件:/var/log/mysqld.log


服务启动脚本:/usr/lib/systemd/system/mysqld.service


socket 文件:/var/run/mysqld/mysqld.pid


JDK

此文采用版本:JDK8


下载


安装文本编辑器 vim

yum -y install vim

JDK 官方下载地址:oracle jdk


使用命令下载:


wget https://download.oracle.com/otn/java/jdk/8u291-b10/d7fc238d0cbf4b0dac67be84580cfb4b/jdk-8u291-linux-x64.tar.gz?AuthParam=1619936099_3a37c8b389365d286242f4b1aa4967b0

因为 oracle 公司不允许直接通过 wget 下载官网上的 jdk 包

正确做法:


  • 通过搜索引擎搜索 jdk 官网下载, 进入 oracle 官网


  • 勾选 accept licence agreement ,并选择你系统对应的版本


  • 点击对应的版本下载,弹出如下下载框,然后复制下载链接
  • 这个复制的链接结算我们 wget 命令的地址。


  • 正确的下载链接会有”AuthParam“,这个就是 oracle 公司需要用户在下载时提供的注册信息。而且这个信息是用时间限制的,过了一段时间后就会失效,如果你想再次下载 jdk 包,只能再次重复上面的操作。


检查大小

ls -lht

8.png


设置环境变量


查看文件名(用于解压)

ls

创建文件夹

mkdir /usr/local/java

解压

tar -zxvf 你的jdk包名 -C /usr/local/java/

查看文件名(用于配置环境变量)

ls  /usr/local/java

9.png

打开配置文件


         

在末尾添加


# jdk8
  # 添加jdk地址变量
  JAVA_HOME=/usr/local/java
  # 添加jre地址变量
  JRE_HOME=${JAVA_HOME}/jre
  # 添加java官方库地址变量
  CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
  # 添加PATH地址变量
  PATH=${JAVA_HOME}/bin:$PATH
  # 使变量生效
  export JAVA_HOME JRE_HOME CLASSPATH PATH


刷新配置文件

source /etc/profile

添加软链接(可选)

ln -s /usr/local/java/jdk1.8.0_291/bin/java  /usr/bin/java

检查

java -version


Python


此文采用版本:Python3.6


我们已经掌握了二进制包安装的方法,所以我们直接通过 yum 来安装 Python

yum -y install python36

依赖:python36-libs


安装 pip3(默认已安装)

yum install python36-pip -y

检查

python3 --version

10.png

Scala

此文采用版本:Scala2.11.7


请确保已安装JDK8或者JDK11


下载

Scala 官方下载地址:Scala


使用命令下载:

wget https://downloads.lightbend.com/scala/2.11.7/scala-2.11.7.tgz

检查大小

ls -lht

设置环境变量

查看文件名(用于解压)


ls

创建文件夹


mkdir /usr/local/scala

解压

tar -zxvf 你的jdk包名 -C /usr/local/scala/

查看文件名(用于配置环境变量)

ls  /usr/local/scala

11.png

打开配置文件


vi /etc/profile

在末尾添加


# scala 2.11.7
  # 添加scala执行文件地址变量
  SCALA_HOME=/usr/local/scala/scala-2.11.7
  # 添加PATH地址变量
  PATH=$PATH:$SCALA_HOME/bin
  # 使变量生效
  export SCALA_HOME PATH


刷新配置文件

source /etc/profile

检查

scala -version

12.png



目录
相关文章
|
6天前
|
数据采集 分布式计算 监控
Hadoop集群长时间运行数据倾斜原因
【6月更文挑战第20天】
17 6
|
6天前
|
分布式计算 监控 网络协议
Hadoop集群长时间运行网络延迟原因
【6月更文挑战第20天】
10 2
|
6天前
|
存储 缓存 分布式计算
|
7天前
|
存储 分布式计算 负载均衡
Hadoop集群长时间运行
【6月更文挑战第19天】
12 3
|
7天前
|
存储 分布式计算 监控
Hadoop集群添加新的DataNode
【6月更文挑战第19天】
10 1
|
14天前
|
分布式计算 资源调度 负载均衡
Hadoop集群配置
【6月更文挑战第13天】
43 5
|
15天前
|
存储 分布式计算 资源调度
如何优化Hadoop集群的内存使用?
【6月更文挑战第18天】如何优化Hadoop集群的内存使用?
31 6
|
15天前
|
存储 分布式计算 监控
如何提高Hadoop集群的网络传输速度?
【6月更文挑战第18天】如何提高Hadoop集群的网络传输速度?
23 3
|
11天前
|
分布式计算 资源调度 监控
分布式系统详解--框架(Hadoop-集群搭建)
分布式系统详解--框架(Hadoop-集群搭建)
54 0
|
20天前
|
分布式计算 Hadoop 分布式数据库
Hadoop生态系统介绍(二)大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍
Hadoop生态系统介绍(二)大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍
57 2