关闭

SSH免密码登录,搭建Flink standalone集群

标签: centosclusterFlinkssh免密登录
155人阅读 评论(0) 收藏 举报
分类:

说明

搭建Flink集群:
本实验拥有3个节点,均为CentOS 7系统,分别对应IP为10.211.55.11、10.211.55.13、10.211.55.14,且均有相同用户名 (本实验为 jiecxy)


为了方便,先在三台节点上 /etc/hosts 文件内容均添加:

10.211.55.11 master
10.211.55.13 worker1
10.211.55.14 worker2


一、 需先配置集群间ssh无密码登录



1. 过程为对每个节点,生成密钥对,然后将生成的所有公钥都追加 authorized_keys 文件中,再将authorized_keys文件放到每个节点 ~/.ssh/ 下


2. 在每个节点上生成密钥对,一路回车,生成密钥对:id_rsa 和 d_rsa.pub,默认存储在 /home/jiecxy/.ssh

# 例:在master节点上
# 生成密钥对
[jiecxy@master ~]$ ssh-keygen -t rsa -P ''
# 将 id_rsa.pub 追加到授权的key中
[jiecxy@master ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys



3. 每个节点修改配置文件 /etc/ssh/sshd_config

# 例:在master节点上
[jiecxy@master ~]$ sudo vi /etc/ssh/sshd_config

修改内容如下:

...
RSAAuthentication yes # 启用 RSA 认证
...
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
...
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径



4. 使每个 authorized_keys 包含所有公钥

# 在master节点上
# 复制 authorized_keys 到 worker1,会提示输入worker1的密码,下面的 jiecxy 为用户名,三台节点均有相同的用户名 jiecxy
[jiecxy@master ~]$ scp ~/.ssh/authorized_keys jiecxy@worker1:~/

然后登陆 worker1,追加master的公钥到worker1的authorized_keys,如下:

# 在 worker1 上
[jiecxy@worker1 ~]$ chmod 700 ~/.ssh
[jiecxy@worker1 ~]$ cat ~/authorized_keys >> ~/.ssh/authorized_keys
[jiecxy@worker1 ~]$ rm ~/authorized_keys

此时authorized_keys包含master和worker1的公钥,将该authorized_keys复制到worker2,追加worker2的公钥

# 在 worker1 上
[jiecxy@worker1 ~]$ scp ~/.ssh/authorized_keys jiecxy@worker2:~/
# 在 worker2 上
[jiecxy@worker2 ~]$ cat ~/authorized_keys >> ~/.ssh/authorized_keys
[jiecxy@worker2 ~]$ rm ~/authorized_keys

注:若果还有节点,一次类推,一直到最后一个节点,最后节点上的authorized_keys就拥有所有节点的公钥,然后再把该authorized_keys传到其他所有节点对应位置

# 在 worker2 上
[jiecxy@worker2 ~]$ scp ~/.ssh/authorized_keys jiecxy@worker1:~/.ssh/authorized_keys
[jiecxy@worker2 ~]$ scp ~/.ssh/authorized_keys jiecxy@master:~/.ssh/authorized_keys

另外,将所有节点的authorized_keys改一下权限 !!!非常重要!!!

$ chmod 600 ~/.ssh/authorized_keys


  1. 测试
    需要先重启sshd服务,不行就重启服务器试试
    在命令行直接输入 ssh worker1 看是否不需要输入密码就能登陆
# 在master节点上
[jiecxy@master ~]$ ssh worker1

成功f




1. 下载 flink-1.1.1-bin-hadoop27-scala_2.11.tgz


2. 解压到 master 的相同用户名下(本实验为 /home/jiecxy/


3. 修改配置文件 flink-conf.yaml

# 在master节点上
[jiecxy@master ~]$ vi ~/flink-1.1.1/conf/flink-conf.yaml

修改内容如下:

...
# 设置为 JobManager 的ip,这里之前已经在hosts中添加了其ip为master(见开头的说明)
jobmanager.rpc.address: master
...
# 由于我的worker节点为双核,所以设为2了
taskmanager.numberOfTaskSlots: 2
...
# 由于我也装了hadoop,所以有需要可以加上
fs.hdfs.hadoopconf: /home/jiecxy/hadoop-2.7.2/etc/hadoop



4. 修改 slaves 文件
注:~/flink-1.1.1/conf/slaves 文件原内容为 localhost,可删可不删,但需要把worker节点的ip添加进去(一行一个),由于之前在 hosts 中设置了ip,所以执行如下:

# 在master节点上
[jiecxy@master ~]$ echo worker1 > ~/flink-1.1.1/conf/slaves
[jiecxy@master ~]$ echo worker2 >> ~/flink-1.1.1/conf/slaves



5. 复制 flink 目录到所有 worker 节点下:

# 在master节点上
[jiecxy@master ~]$ scp -r ~/flink-1.1.1/ worker1:~/flink-1.1.1
[jiecxy@master ~]$ scp -r ~/flink-1.1.1/ worker2:~/flink-1.1.1

完成!


6. 运行例子测试
运行 flink 包下提供的 词频统计 wordcount 例子

[jiecxy@master ~]$ cd ~/flink-1.1.1/
[jiecxy@master flink-1.1.1]$ bin/start-cluster.sh
Starting cluster.
Starting jobmanager daemon on host master.
Starting taskmanager daemon on host worker1.
Starting taskmanager daemon on host worker2.
[jiecxy@master flink-1.1.1]$ bin/flink run ./examples/batch/WordCount.jar
# 显示出每个词的个数
[jiecxy@master flink-1.1.1]$ bin/stop-cluster.sh
Stopping taskmanager daemon (pid: 8124) on host worker1.
Stopping taskmanager daemon (pid: 8116) on host worker2.
Stopping jobmanager daemon (pid: 14467) on host master.

另外 flink 以 local 模式启动和关闭为:

[jiecxy@master ~]$ cd ~/flink-1.1.1/
[jiecxy@master flink-1.1.1]$ bin/start-local.sh
Starting jobmanager daemon on host master.
[jiecxy@master flink-1.1.1]$ bin/stop-local.sh
Stopping jobmanager daemon (pid: 16367) on host master.
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9615次
    • 积分:279
    • 等级:
    • 排名:千里之外
    • 原创:20篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类