### 1.1 实验目的
1. 熟悉大数据实验一体机并了解如何搭建集群;
2. 熟悉Linux基本命令;
3. 掌握vi编辑器的使用;
4. 了解SSH免密登录的原理以及为何需要配置SSH免密登录;
5. 掌握如何配置SSH免密登录;
6. 掌握Java基本命令;
### 1.2 实验要求
1. 使用大数据实验一体机搭建自己的集群;
2. 通过SSH工具登录集群服务器;
3. 实现每台服务器相互之间的免密登录;
4. 通过vi编辑器编写Java程序;
5. 通过Java命令编译和运行编写的Java程序;
6. 通过Jar命令打包编写的Java程序;
### 1.4 实验步骤
#### 1.4.1 搭建集群服务器
#### 1.4.2 使用SSH工具登录每台服务器
在搭建好的Hadoop集群中,已经有了所有五台服务器的内部ip地址、ssh端口号、ssh登录名以及ssh登录密码。
#### 1.4.3 添加域名映射
系统搭建好的集群服务器已经完成修改主机名、关闭防火墙、安装JDK、同步时钟四步操作,为了可以安装大数据组件,还需为所有机器添加域名映射
使用ssh工具登录到master服务器,使用vi命令编辑/etc/hosts文件:
~~~
[root@master ~]# vi /etc/hosts #root权限,编辑master的域名映射文件
#在文件的末尾追加写入如下五行(具体的IP地址请替换为实际集群服务器内部ip):
172.17.0.7 master
172.17.0.10 slave1
172.17.0.33 slave2
172.17.0.8 slave3
172.17.0.34 client
~~~
保存退出后,master服务器的域名映射即添加完成,使用cat命令查看/etc/hosts文件。如图1-15所示:
![](https://box.kancloud.cn/01ae231860da83abcf17de9967727c9a_403x204.png)
依次登录slave1~3和client服务器,重复该操作。
#### 1.4.4 配置SSH免密登录
**1.4.4.1 生成master服务器密钥**
执行命令ssh-keygen,生成master服务器密钥。如图1-16所示:
~~~
[root@master ~]# ssh-keygen #root用户,master机,生成公私钥
~~~
![](https://box.kancloud.cn/3f7cc5fc56d1896b7ad8f4b25cef47ca_498x442.png)
如图1-14所示,在master上执行“ssh-keygen”命令生成公私钥。第一个提示是询问将公私钥文件存放在哪,直接回车,选择默认位置。
第二个提示是请求用户输入密钥,既然操作的目的就是实现SSH无密钥登录,故此处必须使用空密钥,所谓的空密钥指的是直接回车,不是空格,更不是其他字符。此处请读者务必直接回车,使用空密钥。第三个提示是要求用户确认刚才输入的密钥,既然刚才是空密钥(直接回车即空),那现在也应为空,直接回车即可。
最后,可通过命令“ls -all /root/.ssh”查看到,SSH密钥文件夹.ssh目录下的确生成了两个文件id_rsa和id_rsa_pub,这两个文件都有用,其中公钥用于加密,私钥用于解密。中间的rsa表示算法为RSA算法。
**1.4.4.2 拷贝master服务器公钥至本机**
执行命令ssh-copy-id master,将master服务器公钥拷贝至master服务器本身。如图1-17所示:
![](https://box.kancloud.cn/9a436fbcfce831987aa8e2f24c3f5b8e_529x110.jpg)
第一次连接master时,需要输入yes来确认建立授权的主机名访问,并需要输入root用户密码来完成公钥文件传输。
**1.4.4.3 验证master服务器ssh免密登录master本身**
公钥拷贝完成后,可以在master服务器上直接执行命令ssh master,查看是否可以免密登录master服务器:
~~~
[root@master ~]# ssh master #root用户,登录本机网络地址
[root@master ~]# exit #退出本次登录
logout
Connection to master closed.
[root@master ~]#
~~~
**1.4.4.4 拷贝master服务器公钥至其余服务器**
执行命令ssh-copy-id slave1,将master服务器公钥拷贝至slave1服务器。如图1-18所示:
![](https://box.kancloud.cn/a317037207aeb282204656d15a6ebbf1_530x126.jpg)
第一次连接slave1时,需要输入yes来确认建立授权的主机名访问,并需要输入root用户密码来完成公钥文件传输。
依照同样的方式将公钥拷贝至slave2、slave3和client服务器。
**1.4.4.5 验证master服务器ssh免密登录其余服务器**
公钥拷贝完成后,可以在master服务器上直接执行命令ssh master,查看是否可以免密登录slave1~3和client服务器:
~~~
[root@master ~]# ssh localhost #root用户,登录本机环回地址
[root@master ~]# ssh master #root用户,登录本机网络地址
[root@master ~]# ssh slave1 #root用户,从master远程登录slave1
[root@master ~]# ssh slave2 #root用户,从master远程登录slave2
[root@master ~]# ssh slave3 #root用户,从master远程登录slave3
~~~
**1.4.4.6 其余服务器配置ssh免密登录**
其余服务器按照同样的方式配置ssh免密登录,完成后验证是否可以互相之间实现SSH免密登录。
#### 1.4.5 在client服务器开发Java Helloworld程序
使用ssh工具登录client服务器,使用vi编辑器编写Helloworld.java:
~~~
public class Helloworld {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}
~~~
使用javac命令编译该程序,生成Helloworld.class文件:
~~~
[root@client ~]# javac Helloworld.java
[root@client ~]# ls
anaconda-ks.cfg data envSource Helloworld.class Helloworld.java
~~~
使用java命令执行该程序,输出Hello World!
[root@client ~]# java Helloworld
Hello World!
- GitHub---资源收集
- 【GitHub】收录总榜单
- 【Office & Markdown & PDF】资源收集
- 【前端】资源收集
- 【开源项目】资源收集
- 【代码备份】资源收集
- 【代码加密】资源收集
- 【好文章推荐】资源收集
- GitHub---实践方案
- 【Laradock】实践方案
- 【开发规范】实践方案
- 【laravel-snappy】实践方案
- 【队列---Laravel-Horizon 】实践方案
- 【检索---Elasticsearch】实践方案---简单了解
- 【Laravel-admin】实践方案
- 技术选型
- 技术选型结果
- PHP开发流程
- Laravel自带异常
- 技术选型问题 & 解决方法
- 修改(Admin)文件夹路径
- 两个用户表合并
- 创建Token,获取接口数据
- CreateFreshApiToken中间件使用
- Generator从表生成文件,不包括迁移文件
- 添加用户的同时生产令牌
- 其它参考文章
- Laravel-admin常见问题
- form(),show()获取对象数据
- Form右上角按钮重写
- form回调中的错误提醒,回调传参
- 【小工具类】实践方案
- 字符串
- 数组
- 无限级分类递归
- 时间
- 正则表达式
- 文件
- 经纬度、时区
- DataEdit快捷操作类库
- 数据库表结构管理
- 【Guzzle】实践方案---工具类
- Java---大数据在线实验
- 基础实验操作
- 【一】基础操作实验
- HDFS
- 【二】部署HDFS
- 【三】读写HDFS文件
- YARN
- 【四】部署YARN集群
- MapReduce
- 【五】单词计数
- Hive
- 【十】部署Hive
- 【十一】新建Hive表
- 【十二】Hive分区
- ZooKeeper
- 【二十】部署ZooKeeper
- 【二十一】进程协作
- HBase
- 【二十二】部署HBase
- 【二十三】新建HBase表
- Storm
- 【二十四】部署Storm
- 【二十五】实时WordCountTopology
- Kafka
- 【二十七】Kafka订阅推送示例
- Redis
- 【二十九】Redis部署与简单使用
- 【三十】MapReduce与Spark读写Redis
- MongoDB
- 【三十一】读写MongoDB
- MySQL
- 关于最重要的参数选项调整建议
- 索引,Explain优化工具
- 事务级别
- sql好的书写习惯
- limit(分页)
- 赶集网Mysql36条军规
- 分库分表技术演进&最佳实践
- MariaDB 和 MySQL 全面对比
- 永远不要在 MySQL 中使用“utf8”
- 看云--推荐的Mysql优化
- 完整、详细的MySQL规范
- 慢查询日志
- pt-query-digest结果分析
- Redis
- 看云-推荐的redis学习
- Memcache和Redis不同
- 阿里云Redis开发规范
- Centos7
- 虚拟机配置网络
- 硬盘挂载、分区、文件大小
- 防火墙(firewalld、firewalld-cmd、systemctl、iptables)
- 两个机器互相拷贝文件
- 查进程、查端口
- 压缩、解压
- 查看物理CPU个数、CPU内核数、线程数
- apt-get源--阿里
- RAID磁盘阵列
- Docker
- Dockerfile制作常用命令
- registry私有仓库
- PHP_7.2
- Dockerfile
- php.ini
- 使用说明
- Nginx_1.15
- Dockerfile
- nginx.conf
- prod_nginx.conf
- 使用说明
- MySql_5.7
- Dockerfile
- my.cnf
- 使用说明
- redmine_3.4
- Dockerfile
- 使用说明
- gitlab-ce_11.9.6-ce.0
- 使用说明
- Redis_5.0
- Dockerfile
- redis.conf
- 使用说明
- Jenkins
- Dockerfile
- 使用说明
- webssh--python3.7
- Dockerfile
- 使用说明
- 进阶使用
- 高阶使用
- minio
- 使用说明
- aws_cloud9_ide
- 使用说明
- VNC
- 使用说明
- jdk1.8——yum安装
- tomcat9——安装
- guacamole——0.9.13
- libreoffice
- Dockerfile
- 使用说明
- Kubernetes
- kubectl常用命令
- 环境搭建(1.9.6)
- kubernetes1.9.6墙内离线部署
- kubernetes1.9.6单机器部署
- helm安装
- helm常用命令
- Swoole
- 环境的搭建
- swoole的简单实例
- 服务端的cli方式运行
- 客户端的运行方式
- 定时任务的入门
- 删除定时任务
- 初始化定时任务
- 日志管理
- 具体任务的异常捕获
- 手动重启shell脚本
- 阅读感受
- 【读书】登天的感觉——岳晓东
- 【读书】为何家会伤人——武志红
- 【感受】箭扣,一次就好
- 【读书】思考与致富——拿破仑-希尔
- 【感受】做事讲方法
- 【感受】未来畅想
- 【素材】智力问答
- 【百家】曾国藩家训
- 【百家】正说和珅
- 【感受】谈判小技巧
- 【读书】股票作手回忆录——利弗莫尔
- 【感受】最幸福的人——工匠
- 【收藏】土味情话大合集
- 【读书】解忧杂货店——东野圭吾
- 【收藏】家乡名人
- 【读书】把时间当作朋友——李笑来
- 【感受】舆论和八卦
- 【读书】老人与海——海明威
- 【读书】必然——凯文凯利
- 【经典】逍遥游——庄周
- Git+PHPStorm+Composer
- Git命令
- .gitignore忽略规则
- PHPStorm第一次使用
- PHPStorm关联gitlab
- Composer修改镜像源
- Xdebug
- PHP进阶
- 缓存在高并发场景下的常见问题
- 一、缓存一致性问题
- 二、缓存并发问题
- 三、缓存穿透问题
- 四、缓存颠簸问题
- 五、缓存的雪崩现象
- 六、缓存无底洞现象
- Laravel源码解析(知识点)
- 闭包、IOC容器服务绑定延迟加载
- 延迟静态绑定基类
- 反射,依赖注入
- __callStatic 魔术方法,Facade 工作原理
- array_reduce,中间件解析
- Eloquent核心
- Laravel框架加载流程
- 线程、进程、协程
- Linux进程、线程、协程
- poll、epoll
- epoll原理
- Liunx线程调度算法
- 红黑树
- 同步/异步、阻塞/非阻塞
- PHP-FPM
- Nginx
- Swoole
- Go
- 惊群问题
- 线程模型比较
- 并发模型比较
- Lua
- OpenResty
- 数据一致性
- 悲观锁--VS--乐观锁
- 事务--mysql VS redis
- 事务嵌套--Doctrine VS Laravel
- 单体应用中执行顺序问题
- 数据一致性问题描述
- 分布式理论
- 数据一致性---接口幂等性
- 分布式事务---2PC VS 3PC
- 分布式事务---TCC
- 分布式事务---基于消息
- 接口安全性
- PHP & Nginx
- 请求超时问题
- 两者之间的通信原理
- TCP三次握手
- Nginx常用优化
- PHP数组底层原理
- PHP排序函数sort底层原理
- PHP函数---trim()
- 树形数据在关系型库中存储
- 标签(Tag)的各种设计