未经本人允许不得转载。
我的开源中国博客地址:https://my.oschina.net/u/3685854/blog/1863003
目录
1.准备工作
1.1系统环境
服务器运行的系统版本:CentOS-7.4
1.2集群规模
服务器数量:6台
1.3集群网络
服务器网络:n1:192.168.xxx.xxx(内网ip);
n2:192.168.xxx.xxx(内网ip);
n3:192.168.xxx.xxx(内网ip);
n4:192.168.xxx.xxx(内网ip);
n5:192.168.xxx.xxx(内网ip);
n6:192.168.xxx.xxx(内网ip);
1.4服务器软件
服务器软件版本:nginx-1.8.1
appache-tomcat-9.0.2
jdk-1.8.0_144
hadoop-2.7.5
zookeeper-3.4.10
hbase-1.2.6
nfs-utils-1.3.0-0.54.el7.x86_64
1.5YUM源选择
yum源:阿里yum源
1.6安装包位置
目录:/usr/local/src
1.7整体架构
主机名 |
n1 |
n2 |
n3 |
n4 |
n5 |
n6 |
角色 |
nginx1 hadoop1 zookeeper1 hbase1 nfs |
nginx2 hadoop2 zookeeper2 hbase2 nfs |
tomcat1 hadoop3 zookeeper3 hbase3 nfs |
tomcat2, hadoop4 hbase4 nfs |
tomcat3, hadoop5 hbase5 nfs |
tomcat4, hadoop6 hbase6 nfs |
|
n1 |
n2 |
n3 |
n4 |
n5 |
n6 |
NameNode |
Y |
N |
N |
N |
N |
N |
SecondaryNameNode |
N |
Y |
N |
N |
N |
N |
DataNode |
Y |
Y |
Y |
Y |
Y |
Y |
HMaster |
Y |
N |
N |
N |
N |
N |
HRegionServer |
Y |
Y |
Y |
Y |
Y |
Y |
QuorumPeerMain |
Y |
Y |
Y |
N |
N |
N |
NodeManager |
Y |
Y |
Y |
Y |
Y |
Y |
Bootstrap |
Y |
N |
Y |
Y |
Y |
Y |
ResourceManager |
Y |
N |
N |
N |
N |
N |
2.NFS搭建
2.1安装nfs
yum -y install nfs-utils rpcbind
2.2服务器端配置
2.2.1创建共享目录
在目录/usr/local下创建共享目录public,并设置其权限
mkdir /usr/local/publish
chmod 777 /usr/local/public
注意权限,要使user拥有目录的权限
2.2.2编辑export文件
vim /etc/exports
/usr/local/public *(rw,sync,no_root_squash,no_all_squash) |
参数值 |
内容说明 |
rw ro |
该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关。 |
sync async |
sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘! |
no_root_squash root_squash |
客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行! |
all_squash |
不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) ! |
anonuid anongid |
anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 。 |
2.2.3配置生效
exportfs -r
2.2.4启动rpcbind、nfs服务
systemctl start rpcbind
systemctl start nfs
2.2.5测试共享
showmount -e localhost
参数值 |
内容说明 |
a |
显示目前主机与客户端的 NFS 联机分享的状态; |
e |
显示某部主机的 /etc/exports 所分享的目录数据。 |
2.3客户端配置
2.3.1安装nfs-utils客户端
yum -y install nfs-utils
2.3.2创建挂在目录
mkdir /usr/local/public
2.3.3查看服务器抛出的共享目录信息
showmount -e n1
2.3.4挂载共享目录
mount -t nfs n1:/usr/local/public /usr/local/public -o proto=tcp -o nolock
2.3.5卸载,配置端口(选做)
卸载:umount /usr/local/public
查看端口:rpcinfo -p localhost
配置端口:vim /etc/sysconfig/nfs
RQUOTAD_PORT=30001 |
LOCKD_TCPPORT=30002 |
LOCKD_UDPPORT=30002 |
MOUNTD_PORT=30003 |
STATD_PORT=30004 |
3.NFT搭建
3.1服务端配置
3.1.1YUM安装NTP
yum install -y ntp
3.1.2配置ntp.conf
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 |
127.127.1.1 |
#注释以server开头的行并添加此条 |
3.1.3重启NTP
systemctl restart ntpd.service
3.1.4查看NTP状态
systemctl status ntpd.service
3.2客户端配置
3.2.1安装ntpdate
yum install -y ntpdate
3.2.2同步服务端时间
ntpdate n1
4.JDK
4.1安装位置
目录:/usr/local/public/jdk
4.2安装配置
4.2.1解压jdk到指定目录
在目录/usr/local/src下:
tar -zxvf jdk-8u144-linux-x64.tar.gz -C ../public/jdk/
4.2.2修改系统配置文件profile
在目录/etc/profile下:
vim /etc/profile
文件末尾追加
export JAVA_HOME=/usr/local/public/jdk/jdk1.8.0_144 export JRE_HOME=/usr/local/public/jdk/jdk1.8.0_144/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH |
4.2.3生效系统配置
source /etc/profile
4.2.4验证系统配置
java -version
5.SSH免密登陆
5.1新增用户并设置组及密码
useradd -g root user
passwd user (密码:123456)
5.2ssh的安全设置
配置安全规则,自行百度。实验不用做