大数据分布式集群组件安装手册


1. 手册说明

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

2. 部署规划

2.1. 服务器信息

服务器(IP)服务器类型操作系统CPU(core)内存(GB)磁盘(GB)
10.10.195.53虚拟机Centos7.2864800
10.10.195.54虚拟机Centos7.2864800
10.10.195.55虚拟机Centos7.2864800
10.10.195.56虚拟机Centos7.2864800

2.2. 服务器规划

规划10.10.195.5310.10.195.5410.10.195.5510.10.195.56
主机名bigdata-1.mid.neu.combigdata-2.mid.neu.combigdata-3.mid.neu.combigdata-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. 组件及其对应版本

组件版本
Hadoop3.1.2
Hive3.1.2
Zookeeper3.5.5
Tez0.9.2
Clickhouse20.1.6.30
Kafka2.3.0
Flink1.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= J A V A H O M E / j r e e x p o r t C L A S S P A T H = . : {JAVA_HOME}/jre export CLASSPATH=.: JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib: J R E H O M E / l i b e x p o r t P A T H = {JRE_HOME}/lib export PATH= JREHOME/libexportPATH={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= J A V A H O M E / j r e e x p o r t C L A S S P A T H = . : {JAVA_HOME}/jre export CLASSPATH=.: JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib: J R E H O M E / l i b e x p o r t P A T H = {JRE_HOME}/lib export PATH= JREHOME/libexportPATH={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= P A T H : PATH: PATH:HADOOP_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= P A T H : PATH: PATH:HADOOP_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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值