原始的Linux系统是没有搭载Java开发环境和SSH相关工具,在安装Hadoop的时候,读者需要事先去搭建好。
本文将指导如何在一个原生的Linux系统下安装和配置这些环境和工具。
Java的安装
在安装完Ubuntu 14.04版本或者CentOS 7版本的Linux系统后,系统是没有自带java环境的,读者就需要在自己系统上安装相关java环境
- Ubuntu安装OpenJDK
sudo apt-get install default-jdk
- CentOS安装OpenJDK
# 解压缩 tar -zxvf filename.tar.gz # 压缩 tar -zcvf filename.tar.gz filename # install the tar.gz cd filename ./configure ./make # need root permission ./make install
SSH登陆权限设置
首先我们要明白SSH的工作原理:
- 登录A机器
- ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
- 将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
- 大功告成,从A机器登录B机器的目标账户,不再需要密码了;
再明白SSH的工作原理,按照书本的SSH登录权限设置,用户在最后通过ssh localhost测试,却发现没有办法连接。
这是因为Ubuntu默认并没有安装ssh服务,如果通过ssh链接Ubuntu,需要自己手动安装openssh-server和ssh-client,下面我们将逐步检测。
- 检查已经系统已经存在的SSH Keys
ls -al ~/.ssh
- 如果没有,便生成一个新的SSH key
//ubuntu直接可以生成一个SSH Key ssh-keygen
-t指定密钥的类型,默认就是rsa,所以不加-t rsa也行,如果你想生成dsa密钥,就需要加参数-t dsa。
-
建立信任连接列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
需要本机测试连接本地,所以在当前机器上面复制。
-
检测是否需要输入密码
ssh localhost
如果有错误提示,类似"ssh: connect to host localhost port 22: Connection refused",说明你没有安装ssh-client或者ssh-server,此时只需要在终端输入
-
安装openssh-client
sudo apt-get install openssh-client
- 安装ssh-server
ps -e | grep ssh
如果只显示如下的结果,就说明只安装了agent,没有安装openssh-server
sudo apt-get install openssh-server
- 再次检测是否可以连接
ssh localhost