目录

网卡配置

主机名配置

防火墙配置

SeLinux配置

SSH免密互连配置

透明大页配置

文件句柄数配置

磁盘挂载配置

主机时间配置


操作系统作为上层软件的基础,稳定性非常重要,建议在选择操作系统时选择主流且稳定的操作系统,推荐Red Hat Enterprise Linux或者CentOS7的稳定版本;以下操作在CentOS7.6上进行,操作系统不带桌面最小化安装,以root用户进行操作。

网卡配置

大数据集群的每台机器一般都需要设置静态IP,防止因为IP变化导致集群各个组件之间无法正确交互。

Linux默认网卡配置文件参考以下内容:

# 网卡类型,一般为Ethernet
# Ethernet:以太网
# bridge:网桥
# bond:链路聚合
TYPE=Ethernet
# 代理方式,默认关闭
PROXY_METHOD=none
# 默认no,NetworkManager文档中建议,只在PROXY_METHOD=auto时开启此项配置
BROWSER_ONLY=no
# IP地址获取方式
# dhcp:动态IP
# static:静态IP
BOOTPROTO=static
# 默认路由
DEFROUTE=yes
# IPv4致命错误检测
IPV4_FAILURE_FATAL=no
# IPv6初始化
IPV6INIT=yes
# IPv6自动配置
IPV6_AUTOCONF=yes
# IPv6默认路由
IPV6_DEFROUTE=yes
# IPv6致命错误检测
IPV6_FAILURE_FATAL=no
# IPv6地址生成模式
IPV6_ADDR_GEN_MODE=stable-privacy
# 网卡物理设备名称
NAME=eth0
# 网卡设备UUID
UUID=296756a8-7e7d-40b5-9caf-c1c5c475dfc6
# 网卡设备名称
DEVICE=eth0
# 开机启动网卡
ONBOOT=yes
# IP地址
IPADDR=192.168.123.100
# 网关地址
GATEWAY=192.168.123.1
# 子网掩码,也可以使用掩码长度表示,例如:PREFIX=24
NETMASK=255.255.255.0
# 首选DNS地址,备选DNS地址可以用DNS2设置,例如:DNS2=8.8.8.8
DNS1=114.114.114.114

简单网卡配置参考如下内容:

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.123.100
GATEWAY=192.168.123.1
NETMASK=255.255.255.0

主机名配置

集群中每一台机器都需要设置主机名,最好能够见名知意,命令如下:

hostnamectl set-hostname ${machine1-mysql-master}

集群中每一台机器都需要配置所有机器(包括自身)的IP-Hostname映射关系,修改/etc/hosts文件:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.123.100   Hostname1
192.168.123.101   Hostname2
192.168.123.102   Hostname3

防火墙配置

集群中每一台机器一般都要求关闭防火墙(如果必须开启防火墙,请参考其他文章配置相应的防火墙规则),命令如下:

systemctl stop firewalld.service
systemctl disable firewalld.service

SeLinux配置

SeLinux(Security-Enhanced Linux)是一个Linux的系统中的安全增强子模块,它定义了每个用户对系统上的应用、进程和文件的访问权限,由于SeLinux的结构和配置都非常复杂,一般都会选择关闭该配置,在集群中每一台机器的/etc/sysconfig/selinux文件中配置如下内容:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

SSH免密互连配置

Hadoop等组件依赖SSH免密互连来管理节点,所以集群上每一台机器都应该保证SSH免密互连(准确来说应该保证管理节点可以免密登录其他节点)。

确认每一台机器都安装OpenSSH,如果没有安装则执行安装命令,开启sshd服务并将其设置为开机启动,命令如下:

rpm -qa | grep openssh
yum install -y openssh*
systemctl enable sshd
systemctl start sshd

在每一台机器上都生成密钥对文件,默认生成在/root/.ssh目录下,id_rsa为私钥文件,id_rsa.pub为公钥文件,命令如下:

ssh-keygen -t rsa

在每一台机器上将当前节点的公钥文件发送至所有节点(包括自身)的授权文件(默认生成为/root/.ssh/authorized_keys)中完成当前节点到其他所有节点的SSH免密连接,命令如下(需要根据提示输入其他机器的密码):

ssh-copy-id -i /root/.ssh/id_rsa.pub root@${ip or hostname}# authorized_keys文件的权限需要为600,即"-rw-------",如需修改则执行以下命令
chmod 600 /root/.ssh/authorized_keys

在所有节点上完成SSH免密互连之后,最好在每一台机器上都验证一遍,谨防遗漏部分机器或者配置错误导致SSH免密互连不成功。

透明大页配置

透明大页可能会导致比较严重的性能问题,特别是对一些数据库系统来说,在每一台机器上检查并关闭透明大页,命令如下:

# 以下命令结果为[always] madvise never,则表示开启透明大页
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag# 临时关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

为了防止机器重启后,又自动打开透明大页,需要在/etc/rc.d/rc.local文件中追加以下内容:

if test -f /sys/kernel/mm/transparent_hugepage/enabled; thenecho never > /sys/kernel/mm/transparent_hugepage/enabled
fiif test -f /sys/kernel/mm/transparent_hugepage/defrag; thenecho never > /sys/kernel/mm/transparent_hugepage/defrag
fi

同时需要确保/etc/rc.d/rc.local文件具有可执行权限,命令如下:

chmod +x /etc/rc.d/rc.local

文件句柄数配置

大数据软件一般都会打开较多文件,特别是HDFS、Kafka等,一般Linux默认的文件句柄数为1024是完全不满足需求的,需要修改每一台机器的文件句柄数(一般102400足够,集群数据量大可以适当增大文件句柄数),命令如下:

# 查看当前系统的文件句柄数设置
ulimit -n# 查看操作系统所允许的最大文件句柄数
# 如果文件句柄数设置超过该值,重启服务器后会导致系统无法正常进入,只能进入救援模式修改文件句柄配置
cat /proc/sys/fs/file-max# 临时配置文件句柄数
ulimit -n 102400

为了防止机器重启后重置文件句柄数,需要修改每一台机器上的/etc/security/limits.conf文件,永久配置文件句柄数,命令如下:

echo 'root soft nofile 102400' >> /etc/security/limits.conf
echo 'root hard nofile 102400' >> /etc/security/limits.conf

磁盘挂载配置

大数据集群的机器除了系统盘之外一般都会有一块或多块数据盘,一个数据目录对应一块数据盘,这些数据盘需要永久正确挂载,确保每一台机器重启后不会因为磁盘挂载问题导致数据丢失,命令如下:

# 查看所有已经格式化的磁盘
# 命令结果释义:磁盘设备序号: UUID="UUID编号" TYPE="磁盘格式"
blkid# 查看所有的磁盘设备
lsblk# 挂载磁盘,磁盘必须已经格式化
mount -t xfs ${磁盘设备序号} ${path}# 永久挂载磁盘
# 通过blkid命令获取需要挂载的磁盘设备的UUID、磁盘格式
echo 'UUID=${UUID} ${path} ${type} defaults 0 0' >> /etc/fstab

主机时间配置

大数据集群对各个节点之间的时间要求是同步的,特别是开启了Kerberos安全认证的情况下(默认时差5s,如果超过5s会导致认证不通过);同步时间可以使用ntpdate命令配合定时服务来实现,也可以使用ntp服务来实现;推荐使用ntp进行时间同步,因为ntpdate会将系统时间设置为目标服务器的时间,有可能会造成时间跳变,影响大数据服务,ntp不会造成时间跳变。

ntp是一个server/client架构的服务,一台机器可以同时作为server端和client端,只是配置稍有不同;一般会选择集群中的重点角色的机器(例如Hadoop NameNode节点所在的机器)作为客户端向外部授时服务器进行时间同步,然后该机器本身作为集群内部的server端向集群中其他机器提供时间同步服务。

在集群中每一台机器上安装ntp服务,命令如下:

yum install -y ntp

修改server端配置,修改/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# 添加外网授时地址,prefer表示优先选择,iburst表示当NTP服务器不可用时发送一系列并发包进行检测
server ntp1.aliyun.com prefer
server cn.pool.ntp.org iburst# 添加本机作为授时服务器
server 127.127.1.0
# 本地时间源层级设置
fudge 127.127.1.0 stratum 10# 允许192.168.122.0/24网段的机器进行时间同步
# 也可以添加单独IP的允许,例如:restrict 192.168.123.111 nomodify notrap
restrict 192.168.123.1 mask 255.255.255.0 nomodify notrap

修改client端配置,修改/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 192.168.123.100

ntp服务有一个检测机制,当本机时间与授时服务器时间差距过大时,会导致无法启动ntp服务,因此在启动ntp服务前,一般需要先通过ntpdate 命令来手动同步一次,命令如下:

# 出ntpdate命令外,还可以使用date命令手动设置一个相近的时间
ntpdate ${授时服务器地址}

在所有机器上都启动ntp服务,命令如下:

# 启动ntp服务
systemctl start ntpd# 检查ntp服务状态
systemctl status ntpd# 设置开机启动
systemctl enable ntpd

检查时间同步状态,命令如下:

# 首次进行时间同步时会有五分钟左右的同步时间
# 此时进行检查可能会出现"unsynchronised ...",表示没有正常同步
# 建议启动服务后,隔五分钟再检查,结果出现"synchronised ..."表示正常同步中ntpstat

大数据集群Linux环境配置相关推荐

  1. 小知识点:ARM 架构 Linux 大数据集群基础环境搭建(Hadoop、MySQL、Hive、Spark、Flink、ZK、Kafka、Nginx、Node)

      换了 M2 芯片的 Mac,以前 x86 版本的 Linux 大数据集群基础环境搭建在 ARM 架构的虚拟机集群上有些用不了了,现在重新写一份基于 ARM 架构的,少数不兼容之外其他都差不多,相当 ...

  2. 搭建大数据集群linux服务器配置步骤

    1.IP设置 使用下面命令修改添加示例内容 命令: vi /etc/sysconfig/network-scripts/ifcfg-ensXX 修改添加的内容示例: BOOTPROTO=static ...

  3. 全网最详细的大数据集群环境下如何正确安装并配置多个不同版本的Cloudera Hue(图文详解)...

    不多说,直接上干货! 为什么要写这么一篇博文呢? 是因为啊,对于Hue不同版本之间,其实,差异还是相对来说有点大的,具体,大家在使用的时候亲身体会就知道了,比如一些提示和界面. 全网最详细的大数据集群 ...

  4. 【大数据集群搭建-Apache】Apache版本进行大数据集群各组件环境部署

    [大数据集群搭建-Apache]Apache版本进行大数据集群各组件环境部署 1)大数据环境统一 1.1.设置主机名和域名映射 1.2.关闭服务器防火墙和Selinux 1.3.服务器免密登陆 1.4 ...

  5. 通过puppet hiera配置bigtop大数据集群

    Puppet Hiera是一个puppet内置的键值对配置以及数据查询系统,通过hiera可以配置puppet main manifect的参数.率先理解了上面这个概念,我们就能理解bigtop原生的 ...

  6. centos7 ambari2.6.1.5+hdp2.6.4.0 大数据集群安装部署

    2019独角兽企业重金招聘Python工程师标准>>> 转载请务必注明原创地址为:http://dongkelun.com/2018/04/25/ambariConf/ 前言 本文是 ...

  7. python自动化部署hadoop集群_大数据集群的自动化运维实现思路

    原标题:大数据集群的自动化运维实现思路 | 作者简介 王晓伟 知数堂<大数据实战就业>课程讲师 六年大数据相关工作经验 清华大学软件工程硕士 曾就职于网易.搜狗等互联网企业 从事大数据及数 ...

  8. 一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解

    一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解 "如果你是一个经验丰富的运维开发人员,那么你一定知道ganglia.nagios.zabbix.elastics ...

  9. 大数据集群搭建全部过程(Vmware虚拟机、hadoop、zookeeper、hive、flume、hbase、spark、yarn)

    大数据集群搭建进度及问题总结 所有资料在评论区那里可以得到 第一章: 1.网关配置(参照文档) 注意事项:第一台虚拟机改了,改为centos 101 ,地址为192.168.181.130 网关依然是 ...

最新文章

  1. Netty with protobuf(二)
  2. python【蓝桥杯vip练习题库】BASIC-11 十六进制转十进制
  3. 用 Mars Remote API 轻松分布式执行 Python 函数
  4. 寄存器(内存访问)07 - 零基础入门学习汇编语言19
  5. 2.安装 Android SDK
  6. MASM32编程将TimeStamp/UTC转换为具体日期时间的几个有用函数代码
  7. linux modprobe.conf怎么不见了—-CentOS 6
  8. Compass被墙后如何安装安装
  9. jdk8升级jdk11报 java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
  10. mybatis框架xml中trim中的prefix与suffix等标签的作用
  11. 浅析网吧电影服务器配置与搭建(转)
  12. 恭主驾到:最新的汽车年审新规,都了解了吗?
  13. Centos7笔记之KVM之磁盘格式转换
  14. Windows未能启动,状态:0xc000014c的解决方法
  15. 颜色不透明度 对应表
  16. 前端学习 Vue笔记 完整版
  17. MIPI RFFE协议使用不完全指南(附上代码详解和参考资料)第一部分
  18. 【MM32F5270开发板试用】六、如何用 星辰内核 + 国产RTOS 通过I2S播放 “星辰大海”
  19. numpy生成随机整数
  20. 什么牌子的蓝牙耳机音质好?音质超好的蓝牙耳机测评

热门文章

  1. Linux应用程序动态更改用户ID
  2. HTML 文档可以映射为,将PDF文档转换为可通过URL访问的HTML文档的最佳方法
  3. ANSYS二次开发:Python解析ansys fluent结果文件
  4. java中计算出差天数
  5. 《C primer plus》——文件输入/输出
  6. oracle中更新一列分组的均值,oracle 分组平均后又求平均值的方法
  7. IntelliJ IDEA 13 皮肤/编辑器字体设置
  8. 豆芽的生长过程观察日记-绿豆发芽观察日记7天-2021年
  9. Python输出回文数
  10. 鸿蒙之志蝼蚁岂知,争气励志语:生如蝼蚁,当有鸿鹄之志,命如纸薄,应有不屈之心...