文章目录

  • 1. 手册说明
  • 2. 部署规划
  • 2.1. 服务器信息
  • 2.2. 服务器规划
  • 2.3. 组件及其对应版本
  • 3. 组件部署
  • 3.1. 服务器基础配置
  • 3.1.1. 解除 Linux 系统限制
  • 1. 解除打开文件数限制:
  • 3.1.2. 修改主机名和主机映射
  • 1. 永久修改主机名:
  • 2. 临时修改主机名:
  • 3.1.3 配置主机映射
  • 3.1.3. 关闭防火墙和selinux
  • 1. 关闭防火墙:
  • 2. 关闭SELinux
  • 3.1.4. 服务器之间免密ssh登陆
  • 1. 制作秘钥:
  • 2. 拷贝秘钥:
  • 3.1.5. 时钟同步
  • 1. 配置与启动:



1. 手册说明

本手册主要内容为:大数据相关组件的集群安装与部署过程,以及在安装与部署过程中常见问题的处理方法。根据实际需求,本手册内的大数据组件都为原生版本,不包含HDP和CDH的相关发行版本。所有大数据组件都尽可能的部署高可用模式。

2. 部署规划

2.1. 服务器信息

服务器(IP)

服务器类型

操作系统

CPU(core)

内存(GB)

磁盘(GB)

10.10.195.53

虚拟机

Centos7.2

8

64

800

10.10.195.54

虚拟机

Centos7.2

8

64

800

10.10.195.55

虚拟机

Centos7.2

8

64

800

10.10.195.56

虚拟机

Centos7.2

8

64

800

2.2. 服务器规划

规划

10.10.195.53

10.10.195.54

10.10.195.55

10.10.195.56

主机名

bigdata-1.mid.neu.com

bigdata-2.mid.neu.com

bigdata-3.mid.neu.com

bigdata-4.mid.neu.com

Zookeeper





Hadoop-NameNode





Hadoop-DataNode





Hadoop-ResourceServer





Hadoop-NodeManager





Hadoop-DFSZKFailoverController





Hadoop-JournalNode





Kafka





Clickhouse





Flink-JobManager





Flink-TaskManager





2.3. 组件及其对应版本

组件

版本

Hadoop

3.1.2

Hive

3.1.2

Zookeeper

3.5.5

Tez

0.9.2

Clickhouse

20.1.6.30

Kafka

2.3.0

Flink

1.10

3. 组件部署

3.1. 服务器基础配置

3.1.1. 解除 Linux 系统限制

1. 解除打开文件数限制:

执行:

vim /etc/security/limits.conf

添加如下内容:

* soft noproc 65535
* hard noproc 65535
* soft nofile 65535
* hard nofile 65535

3.1.2. 修改主机名和主机映射

1. 永久修改主机名:
hostnamectl set-hostname bigdata-1.mid.neu.com
hostnamectl set-hostname bigdata-2.mid.neu.com
hostnamectl set-hostname bigdata-3.mid.neu.com
hostnamectl set-hostname bigdata-4.mid.neu.com
2. 临时修改主机名:
hostname bigdata-1.mid.neu.com
hostname bigdata-2.mid.neu.com
hostname bigdata-3.mid.neu.com
hostname bigdata-4.mid.neu.com

3.1.3 配置主机映射

修改

vim /etc/hosts

添加如下内容:

10.10.195.53 bigdata-1.mid.neu.com bigdata-1
10.10.195.54 bigdata-2.mid.neu.com bigdata-2
10.10.195.55 bigdata-3.mid.neu.com bigdata-3
10.10.195.56 bigdata-4.mid.neu.com bigdata-4

测试:

ping bigdata-1
ping bigdata-2
ping bigdata-3
ping bigdata-4

3.1.3. 关闭防火墙和selinux

1. 关闭防火墙:

查看防火墙状态:

firewall-cmd --state

临时停止firewall:

systemctl stop firewalld.service

永久禁止开启启动firewall:

systemctl disable firewalld.service
2. 关闭SELinux

查看SELinux状态:

getenforce 或者 /usr/sbin/sestatus -v

临时禁用:

setenforce 0

永久禁用:

vim /etc/selinux/config

将SELINUX=enforce改成SELINUX=disabled。

永久禁用需要保存和重启才可以生效。

3.1.4. 服务器之间免密ssh登陆

1. 制作秘钥:

在所有服务器上执行如下命令:

cd ~
ssh-keygen

直接一路回车,采用默认配置即可。

2. 拷贝秘钥:

在所有服务器上执行如下命令:

ssh-copy-id -i ~/.ssh/id_rsa.pub bigdata-1.mid.neu.com
ssh-copy-id -i ~/.ssh/id_rsa.pub bigdata-2.mid.neu.com
ssh-copy-id -i ~/.ssh/id_rsa.pub bigdata-3.mid.neu.com
ssh-copy-id -i ~/.ssh/id_rsa.pub bigdata-4.mid.neu.com

cd ~/.ssh

scp id_rsa id_rsa.pub bigdata-2.mid.neu.com:/root/.ssh/
scp id_rsa id_rsa.pub bigdata-3.mid.neu.com:/root/.ssh/
scp id_rsa id_rsa.pub bigdata-4.mid.neu.com:/root/.ssh/

3.1.5. 时钟同步

1. 配置与启动:

在主服务器上执行:

vim /etc/ntp.conf

注释掉原先的默认配置:

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

添加如下配置(配置时钟同步地址为时钟同步服务器):

server 10.10.195.126 minpoll 4 maxpoll 5
fudge 127.127.1.0 stratum 3
restrict 10.10.195.126

重启ntp服务:

systemctl restart ntpd.service

查看ntp状态:
ntpq -p
f) 设置开机自启动
systemctl enable ntpd

3.2. JDK安装

  1. 在主节点执行如下步骤:
    a) 解压缩:
    tar -xzvf jdk-8u211-linux-x64.tar.gz -C /home
    b) 设置环境变量:
    vim /etc/profile
    c) 添加如下内容:
    export JAVA_HOME=/home/jdk1.8.0_211
    export JRE_HOME=大数据架构 之 集群机器 大数据集群组件_zookeeper{JAVA_HOME}/lib:大数据架构 之 集群机器 大数据集群组件_服务器_02{JAVA_HOME}/bin:$PATH
    d) 生效:
    source /etc/profile
    e) 验证:
    java -version
  2. 在其他节点执行如下步骤:
    a) 从主节点复制文件到其他节点:
    scp -r jdk1.8.0_211/ bigdata-2:/home
    scp -r jdk1.8.0_211/ bigdata-3:/home
    scp -r jdk1.8.0_211/ bigdata-4:/home
    b) 设置环境变量:
    vim /etc/profile
    c) 添加如下内容:
    export JAVA_HOME=/home/jdk1.8.0_211
    export JRE_HOME=大数据架构 之 集群机器 大数据集群组件_zookeeper{JAVA_HOME}/lib:大数据架构 之 集群机器 大数据集群组件_服务器_02{JAVA_HOME}/bin:$PATH
    d) 生效:
    source /etc/profile
    e) 验证:
    java -version

3.3. Zookeeper组件部署

  1. 下载安装介质:
    https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gz
  2. 解压缩:
    tar -xzvf apache-zookeeper-3.5.5-bin.tar.gz -C /home
    mv apache-zookeeper-3.5.5-bin/ zookeeper-3.5.5
  3. 创建数据目录和日志目录:
    mkdir /home/zookeeper-3.5.5/data
    mkdir /home/zookeeper-3.5.5/logs
  4. 配置:
    执行:
    vim /home/zookeeper-3.5.5/conf/zoo.cfg
    填入以下内容:
    tickTime=2000
    dataDir=/home/zookeeper-3.5.5/data
    dataLogDir=/home/zookeeper-3.5.5/logs
    clientPort=2181
    initLimit=5
    syncLimit=2
    server.1=bigdata-1.mid.neu.com:2888:3888
    server.2=bigdata-2.mid.neu.com:2888:3888
    server.3=bigdata-3.mid.neu.com:2888:3888
  5. 复制到其它节点(zookeeper的节点必须是奇数):
    scp -r /home/zookeeper-3.5.5 10.10.195.54:/home
    scp -r /home/zookeeper-3.5.5 10.10.195.55:/home
  6. 配置zookeeper服务器id:
    touch /home/zookeeper-3.5.5/data/myid
    vim /home/zookeeper-3.5.5/data/myid
    填入1(注意,参考配置文件server.1、server.2、server.3的配置主机,配置不同的id,如2,3)
  7. 启动:
    各节点执行:
    /home/zookeeper-3.5.5/bin/zkServer.sh start
  8. 检查状态:
    /home/zookeeper-3.5.5/bin/zkServer.sh status

3.4. Hadoop分布式集群部署

  1. 下载安装介质:
    https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz
  2. 解压缩:
    tar -xzvf hadoop-3.1.2.tar.gz -C /home
  3. 设置环境变量:
    执行:
    vim /etc/profile
    添加如下内容:
    export HADOOP_HOME=/home/hadoop-3.1.2
    export PATH=大数据架构 之 集群机器 大数据集群组件_服务器_05HADOOP_HOME/bin
    生效:
    source /etc/profile
  4. 创建存储目录:
    mkdir -p /home/hadoop-3.1.2/data/tmp
    mkdir -p /home/hadoop-3.1.2/data/namenode
    mkdir -p /home/hadoop-3.1.2/data/datanode
    mkdir -p /home/hadoop-3.1.2/data/journal
  5. 修改配置文件:
    a) 进入hadoop配置目录:
    cd /home/hadoop-3.1.2/etc/Hadoop

b) 修改hadoop环境变量脚本:
执行:
vim hadoop-env.sh
添加如下内容:
export JAVA_HOME=/home/jdk1.8.0_211
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export HDFS_DATANODE_SECURE_USER=root
export YARN_NODEMANAGER_USER=root
export HADOOP_SHELL_EXECNAME=root
export HDFS_ZKFC_USER=root
export HDFS_JOURNALNODE_USER=root

c) 修改hadoop核心配置文件:
执行:
vim core-site.xml
修改为内容:


fs.defaultFS
hdfs://hadoop-cluster


hadoop.tmp.dir
/home/hadoop-3.1.2/data/tmp


ha.zookeeper.quorum
bigdata-1.mid.neu.com:2181,bigdata-2.mid.neu.com:2181,bigdata-3.mid.neu.com:2181


hadoop.proxyuser.root.hosts



hadoop.proxyuser.root.groups

d) 修改hdfs配置文件:
执行:
vim hdfs-site.xml
修改为如下内容:


dfs.nameservices
hadoop-cluster


dfs.ha.namenodes.hadoop-cluster
nn01,nn02


dfs.namenode.rpc-address.hadoop-cluster.nn01
bigdata-1.mid.neu.com:9000


dfs.namenode.rpc-address.hadoop-cluster.nn02
bigdata-2.mid.neu.com:9000


dfs.namenode.http-address.hadoop-cluster.nn01
bigdata-1.mid.neu.com:50070


dfs.namenode.http-address.hadoop-cluster.nn02
bigdata-2.mid.neu.com:50070


dfs.namenode.shared.edits.dir
qjournal://bigdata-1.mid.neu.com:8485;bigdata-2.mid.neu.com:8485;bigdata-3.mid.neu.com:8485/hadoop-cluster


dfs.client.failover.proxy.provider.hadoop-cluster
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider


dfs.permissions.enabled
false


dfs.support.append
true


dfs.replication
3


dfs.namenode.name.dir
/home/hadoop-3.1.2/data/namenode


dfs.datanode.data.dir
/home/hadoop-3.1.2/data/datanode


dfs.journalnode.edits.dir
/home/hadoop-3.1.2/data/journal


dfs.ha.automatic-failover.enabled
true


dfs.webhdfs.enabled
true


dfs.ha.fencing.ssh.connect-timeout
30000


dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_rsa


dfs.ha.fencing.methods

sshfence
shell(/bin/true)

e) 修改mapreduce配置文件:
执行:
vim mapred-site.xml
修改如下内容:

<configuration> 
  <property> 
    <name>mapreduce.framework.name</name>  
    <value>yarn</value> 
  </property>  
</configuration>

f) 修改yarn配置文件:
执行:
vim yarn-site.xml
修改如下内容:

<configuration> 
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>yarn-cluster</value>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>bigdata-1.mid.neu.com</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>bigdata-2.mid.neu.com</value>
    </property>
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>bigdata-1.mid.neu.com:2181,bigdata-2.mid.neu.com:2181,bigdata-3.mid.neu.com:2181</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>86400</value>
    </property>
    <property>
        <name>yarn.resourcemanager.recovery.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.resourcemanager.store.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.localizer.fetch.thread-count</name>
        <value>10</value>
    </property>
    <property>
        <name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
        <value>0.6</value>
    </property>
</configuration>

g) 修改主从节点配置:
执行:
vim /home/hadoop-3.1.2/etc/hadoop/workers
添加:
bigdata-1.mid.neu.com
bigdata-2.mid.neu.com
bigdata-3.mid.neu.com
bigdata-4.mid.neu.com

  1. 从主节点复制hadoop目录到其它节点:
    scp -r /home/hadoop-3.1.2/ 10.10.195.54:/home
    scp -r /home/hadoop-3.1.2/ 10.10.195.55:/home
    scp -r /home/hadoop-3.1.2/ 10.10.195.55:/home
  2. 配置其它节点环境变量:
    vim /etc/profile
    添加如下内容:
    export HADOOP_HOME=/home/hadoop-3.1.2
    export PATH=大数据架构 之 集群机器 大数据集群组件_服务器_05HADOOP_HOME/bin
    生效:
    source /etc/profile
  3. 启动journalnode:
    按照规划,在bigdata-1.mid.neu.com、bigdata-2.mid.neu.com、bigdata-3.mid.neu.com节点启动journalnode。
    /home/hadoop-3.1.2/bin/hdfs --daemon start journalnode
  4. 格式化zookeeper:
    在任意namenode节点执行,这里为bigdata-1.mid.neu.com。
    /home/hadoop-3.1.2/bin/hdfs zkfc -formatZK -force
  5. 格式化主namenode节点:
    在bigdata-1.mid.neu.com节点上执行
    /home/hadoop-3.1.2/bin/hdfs namenode -format -force
  6. 启动主namenode节点:
    在bigdata-1.mid.neu.com节点上执行
    /home/hadoop-3.1.2/bin/hdfs --daemon start namenode
  7. 启动zkfc节点:
    按照规划,在bigdata-1.mid.neu.com和bigdata-2.mid.neu.com节点上执行。
    /home/hadoop-3.1.2/bin/hdfs --daemon start zkfc
  8. 格式化备namenode节点:
    在bigdata-2.mid.neu.com节点上执行。
    /home/hadoop-3.1.2/bin/hdfs namenode -bootstrapStandby -force
  9. 启动备namenode节点:
    在bigdata-2.mid.neu.com节点上执行
    /home/hadoop-3.1.2/bin/hdfs --daemon start namenode
  10. 启动datanode节点:
    在所有worker节点上执行:
    /home/hadoop-3.1.2/bin/hdfs --daemon start datanode
  11. 启动resourcemanager节点:
    按照规划,在bigdata-1.mid.neu.com和bigdata-2.mid.neu.com节点上执行
    /home/hadoop-3.1.2/bin/yarn --daemon start resourcemanager
  12. 启动nodemanager节点:
    在所有worker节点上执行:
    /home/hadoop-3.1.2/bin/yarn --daemon start nodemanager
  13. 验证:
    执行:
    jps
    观察内容:
    NameNode
    DataNode
    ResourceManager
    NodeManager
    DFSZKFailoverController
    JournalNode

3.5. Kafka分布式集群部署

  1. 解压缩:
    tar -xzvf kafka_2.12-2.3.0.tar.gz -C /home
  2. 调整配置文件:
    /home/kafka_2.12-2.3.0/config/server.properties
    调整:
    broker.id=1
    log.dirs=/home/kafka_2.12-2.3.0/logs/kafka-logs
    zookeeper.connect=bigdata-1.mid.neu.com:2181,bigdata-2.mid.neu.com:2181,bigdata-3.mid.neu.com:2181

需要注意:broker.id不同服务器是不一样的,如bigdata-1.mid.neu.com为1,bigdata-2.mid.neu.com为2,bigdata-3.mid.neu.com为3。

  1. 启动:
    nohup /home/kafka_2.12-2.3.0/bin/kafka-server-start.sh -daemon /home/kafka_2.12-2.3.0/config/server.properties 2>&1

3.6. Flink分布式集群部署

  1. 解压缩:
    tar -xzvf flink-1.10.0-bin-scala_2.12.tar -C /home
  2. 调整配置文件:
    这里以flink on yarn为例:
    调整文件:
    /home/kafka_2.12-2.3.0/conf/flink-conf.yaml
    调整:
    high-availability: zookeeper
    high-availability.storageDir: hdfs://Hadoop-cluster/flink/ha/
    high-availability.zookeeper.quorum: bigdata-1.mid.neu.com:2181,bigdata-2.mid.neu.com:2181,bigdata-3.mid.neu.com:2181
    state.backend: filesystem
    state.checkpoints.dir: hdfs://hadoop-cluster/flink-checkpoints
    state.savepoints.dir: hdfs://hadoop-cluster/flink-savepoints

3.7. clickhouse分布式集群部署:

  1. 安装:
    rpm -ivh clickhouse-common-static-20.1.6.30-2.x86_64.rpm
    rpm -ivh clickhouse-server-20.1.6.30-2.noarch.rpm
    rpm -ivh clickhouse-client-20.1.6.30-2.noarch.rpm
  2. 修改配置:
    vim /etc/clickhouse-server/config.xml
    修改:
    <tcp_port>19000</tcp_port>
    <listen_host>::</listen_host>
  3. 启动:
    systemctl start clickhouse-server
    附录A:大数据组件原生web管理系统地址整理:
    组件 Web管理系统地址
    HDFS http://10.10.195.53:50070
    YARN http://10.10.195.53:8088
    HBASE http://10.10.195.53:16010

注意:以上端口都不是固定的,可以在相应的配置文件中配置。