1 总体说明
笔记本:i5第六代,16G内存,256G固态硬盘
使用VirtualBox 5.0.22建立3台虚拟机。
2 主机规化
主机名 |
IP |
用途 |
master |
192.168.56.101 |
|
slave1 |
192.168.56.102 |
|
slave2 |
192.168.56.103 |
|
3 目录规化
组件 |
目录 |
说明 |
JDK |
/usr/java/jdk1.8.0_92 |
ln -s /usr/java/jdk1.8.0_92 /usr/java/default |
zookeeper |
/opt/zookeeper |
|
kafka |
/opt/kafka |
|
各输出目录的根 |
/var/kafka/ /var/zookeeper/ |
|
|
|
|
4 端口规化
端口 |
说明 |
9092 |
|
2888 |
ZooKeeper,如果是Leader,用来监听Follower的连接 |
3888 |
ZooKeeper,用于Leader选举 |
2181 |
ZooKeeper,用来监听客户端的连接 |
5 操作系统配置
5.1 OS安装
l 使用CentOS 6.5版
l 磁盘划分:
/boot 500MB ext4 boot partition # 迫使主分区
swap 2GB swap # 与物理内存一样大
/ 剩余空间 ext4 # 迫使主分区
/data1 sda所有空间 ext4
/data2 sdb所有空间 ext4
l 安装软件:sysstat , httpd, tftp-server, ntp
启动sysstat :/etc/init.d/sysstat start
设置sysstat自启动:checkfig sysstat on
l 安装pssh:
wget https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gz
tar zxf pssh-2.3.1.tar.gz
cd pssh-2.3.1
python setup.py install
pssh 多主机并行运行命令
pscp 传输文件到多个hosts,他的特性和scp差不多
pslurp 从多台远程机器拷贝文件
pnuke kill远程机器的进程
pslurp 从远程主机考本文件到本地
prsync 使用rsync协议从本地计算机同步到远程主机
5.2 配置SSH免密登陆
原理:就是我把我的公钥放到你的authorized_keys里面,然后我就可以ssh无密码登录你了
5.2.1 配置规则
u NameNode 能免密码登录所有的 DataNode
u SecondaryNameNode 能免密码登录所有的 DataNode
u NameNode 能免密码登录自己
u SecondaryNameNode 能免密码登录自己
u NameNode 能免密码登录 SecondaryNameNode
u SecondaryNameNode 能免密码登录 NameNode
u DataNode 能免密码登录自己
u DataNode 不需要配置免密码登录 NameNode、SecondaryNameNode和其它 DataNode。
5.2.2 配置步骤
l 在master(NameNode)上执行:
cd ~
ssh-keygen -t rsa # 一路回车。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh localhost # 验证本机无密码登陆
ssh master # 验证本机无密码登陆
for ip in `seq 1 2`; do scp ~/.ssh/authorized_keysroot@slave$ip:~/keys.master; done
l 在slave1(SecondaryNameNode, DataNode)上执行:
cd ~
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh localhost # 验证本机无密码登陆
ssh slave1 # 验证本机无密码登陆
cat ~/keys.master >> ~/.ssh/authorized_keys # 实现master免密码登陆slave1
scp ~/.ssh/id_rsa.pub root@slave2:~/keys.slave1
scp ~/.ssh/id_rsa.pub root@master:~/keys.slave1
到master主机上执行:cat ~/keys.slave1 >> ~/.ssh/authorized_keys
l 在slave2(DataNode)上执行:
cd ~
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh localhost # 验证本机无密码登陆
ssh slave2 # 验证本机无密码登陆
cat ~/keys.master >> ~/.ssh/authorized_keys
cat ~/keys.slave1 >> ~/.ssh/authorized_keys
l 免密码登陆验证
master(NN)登录所有节点
slave1(SNN)登录所有的 DataNode(slave2)
slave1(SNN)登录NameNode(master)
5.3 系统配置
每台主机执行以下操作:
1. 修改hosts&