之前已经记录过,这里再记录一下,相以便快速使用。

安装依赖

sudo yum install -y epel-release psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git

配置用户和权限

添加新用户 hdfs,并赋予 root 权限。

如果使用 hdfs 用户作为 Hadoop 默认用户,需要将 hdfs 用户也配置免密登录。

adduser hdfs
passwd hdfs

# 如果提示 无效的密码: 密码未通过字典检查 - 过于简单化/系统化
echo '123456' | passwd --stdin hdfs

修改 sudoers 文件

sudo vim /etc/sudoers

root	ALL=(ALL)	ALL 
# 添加
hadoop  ALL=(ALL)	NOPASSWD:ALL

网络信息

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

# 修改以下选项
BOOTPROTO=static
ONBOOT=yes				# 开机自动启动
IPADDR=10.xx.xx.xx		# 地址
# 重启网络
systemctl restart network

# 测试网络
ping baidu.com

主机名

# 查看主机名
hostname
uname –n

# 修改主机名
hostnamectl set-hostname hadoop-master

# 查看ip
ip addr
ifconfig

# 没有ifconfig
yum search all ifconfig
yum install -y net-tools

内网映射

# 配置内网映射
vim /etc/hosts

# 添加
10.0.11.110	hadoop-master
10.0.11.111	hadoop-slave01
10.0.11.112	hadoop-slave02

关闭防火墙

# 查看状态
systemctl status firewalld
systemctl status iptables

# 停止
systemctl stop firewalld
systemctl stop iptables

# 禁止开机启动
systemctl disable firewalld
systemctl disable iptables

免密登录

修改配置

vim /etc/ssh/sshd_config

PermitRootLogin yes				# 允许root用户登录

RSAAuthentication yes
PubkeyAuthentication yes 		# 开启公钥验证

重启sshd

systemctl restart sshd

配置免密登录

# 只在cdh-master服务器
ssh-keygen -t rsa -P ''		# 回车

# 生成authorized_keys
cd ~/.ssh/
cat id_rsa.pub > authorized_keys

# 下载私匙id_rsa 和 authorized_keys 文件,并上传到其他节点~/.ssh目录下
yum install -y lrzsz
mkdir ~/.ssh
chmod 700 ~/.ssh/

cd ~/.ssh
chmod 700 id_rsa
chmod 644 authorized_keys 


# 验证
ssh hadoop-slave01
ssh hadoop-slave02
exit

禁用Selinux(重启生效)

# 查看Selinux状态
sestatus

# 临时关闭
setenforce 0

# 永久关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

设置SWAP为0

# 查看
cat /proc/sys/vm/swappiness
   
# 修改
echo "vm.swappiness = 0" >> /etc/sysctl.conf
    
# 生效
sysctl -p

禁用透明大页面压缩

# 查看
cat /sys/kernel/mm/transparent_hugepage/defrag

# 修改
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

# 将命令写入开机启动
vim /etc/rc.d/rc.local

if test -f /sys/kernel/mm/redhat_transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
fi
if test -f/sys/kernel/mm/redhat_transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
fi

# 赋予 rc.local 可执行权限
chmod +x /etc/rc.d/rc.local

配置时间同步

ntp

yum install -y ntp
vim /etc/ntp.conf

master

# 允许内网其他机器同步时间,如果不添加该约束默认允许所有IP访问本机同步服务
# IP为本局域网内的子网IP
restrict 10.0.0.0 mask 255.255.255.0 nomodify notrap

# 配置和上游标准时间同步
server 210.72.145.44  # 中国国家授时中心
server 0.cn.pool.ntp.org
server 1.cn.pool.ntp.org
server 2.cn.pool.ntp.org
server 3.cn.pool.ntp.org

# 如果外部时间服务器不可用,NTP Server以本地时间作为时间服务器
server 127.127.1.0  # local clock
fudge 127.127.1.0 stratum 10

slave

# 配置和上游标准时间同步
server 10.0.0.10

# 配置允许上游时间服务器主动修改本机的时间
restrict 10.0.0.10 nomodify notrap noquery
systemctl restart ntpd
systemctl enable ntpd

chrony

与ntp任选其一

yum install -y chrony
vim /etc/chrony.conf

master

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server s1a.time.edu.cn iburst minpoll 4 maxpoll 10
server ntp.aliyun.com iburst minpoll 4 maxpoll 10
server ntp1.aliyun.com iburst minpoll 4 maxpoll 10
server ntp.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
server ntp1.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10

# 记录系统时钟获得/丢失时间的速率至drift文件中
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# 如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进。
# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# 启用实时时钟(RTC)的内核同步。
# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# 允许客户端同步
# Allow NTP client access from local network.
allow	10.0.11.0/112		# 允许网段的机器到这台服务器同步时间

# 阿里云提供的公网NTP服务器不可用时,采用本地时间作为同步标准
local stratum 10

# 指定存放日志文件的目录
# Specify directory for log files.
logdir /var/log/chrony

slave

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 10.0.11.110 iburst

# Allow NTP client access from local network.
allow 10.0.11.110
systemctl restart chronyd
systemctl enable chronyd
netstat -antulp | grep chronyd	# UDP 705端口

查看同步状态

timedatectl
# 开启网络时间同步
timedatectl set-ntp true
# 更改当前时区为东八区
timedatectl set-timezone Asia/Shanghai	

# 设置硬件时间与系统时间同步
hwclock --systohc
hwclock -w

# ntp
# * 表示同步成功的上层NTP服务器, + 表示已经连接成功,可以作为下一个提供时间更新的候选者
ntpdc -np

# 查看时间同步源
chronyc sources /chronyc sources -v
# 查看时间同步源状态
chronyc sourcestats -v

修改文件打开限制

vim /etc/security/limits.conf

* soft nofile 655350  # 任何用户可以打开的最大的文件描述符数量,默认1024,这里的数值会限制tcp连接
* hard nofile 655350
* soft nproc  655350  # 任何用户可以打开的最大进程数
* hard nproc  650000
# 所有用户创建的进程数
ps h -Led -o user | sort | uniq -c | sort -n

# 系统打开文件描述符数
cat /proc/sys/fs/file-max
794250
# 修改
vim /etc/sysctl.conf
fs.file-max = 655350

# 查看当前系统使用的打开文件描述符数
# 数字含义:
#1.已分配使用的打开文件描述符数
#2.分配后已释放的
#3.等于file-max
cat /proc/sys/fs/file-nr
5056    0       794250


# 进程最大打开文件描述符数
# 查看的是 soft limit
ulimit -n
# 查看 hard limit
ulimit -Hn

安装 JDK

tar -zxf jdk-8u211-linux-x64.tar.gz -C /opt/apps/

配置环境变量

sudo vim /etc/profile.d/hdfs_env.sh

# java
export JAVA_HOME=/opt/apps/jdk1.8.0_211
export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile.d/hdfs_env.sh

jdbc

# 上传jdbc到/usr/share/java/目录下,重命名为 mysql-connector-java.jar

# 也可以在线下载解压
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.15.tar.gz
tar zxvf mysql-connector-java-8.0.15.tar.gz

mkdir -p /usr/share/java/
cp mysql-connector-java-8.0.15.jar /usr/share/java/
# 创建软链
cd /usr/share/java/
ln -s mysql-connector-java-8.0.15.jar mysql-connector-java.jar
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐