Hadoop专章--SSH (阿里云服务器)

首先我们先来介绍一下Hadoop:
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
——百度百科

我们再来了解一下SSH:
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
——百度百科
那么为什么要在Hadoop之前先来学习SSH呢?因为对于Hadoop的伪分布式和全分布而言,名称节点即Namenode需要启动集群中所有机器的Hadoop守护进程,这个过程可以通过SSH登录来实现。Hadoop并没有提供SSH输入密码登录的形式,因此,为了能够顺利登录每台机器,需要将所有机器配置为名称节点可以无密码登录他们。
同时,由于Hadoop是使用Java编写的,因此在进行SSH配置及Hadoop安装之前因先进行JAVA的安装。
小编此次使用的是两台阿里云服务器,一个作为master,一个作为slave。
下面正式开始我们的Hadoop之旅吧!

  1. 防火墙规则
    在这里插入图片描述
    因阿里云服务器原只支持22、80和443端口,所以需要到控制台中添加防火墙规则,使其支持9000端口等(可选择全部TCP+UCP,但不清楚是否有被攻击的危险)。

  2. 新建用户
    在master及slave机器上各新建一个名为“h1”的用户,并设置相同的密码及添加sudo权限。下列操作均在h1用户下完成。

  3. 安装JDK
    到官网下载JDK tar包,本次小编下载的是JDK1.8.0版本,在h1用户下新建/usr/java文件夹,并将下载的压缩包解压到java文件夹中: tar -zvxf jdk-8u191-linux-x64.tar.gz,然后打开etc/profile 进行环境变量配置:

     export JAVA_HOME=/usr/java/jdk1.8.0_191
     export JRE_HOME=/usr/java/jdk1.8.0_191/jre
     export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
     export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PAT
    

H

保存退出,使用source 命令或者重启(sudo shutdown -r now)使配置生效。可以使用which java测试java是否配置成功。
4.关闭防火墙

sudo ufw disable
  1. 修改主机名
    修改/etc/hostname,master机器上改为master,slave1机器上改为slave1。
    修改/etc/hosts,/etc/hosts中原来的内容全部删除,然后加入namenode和datanode的IP以及名字;master中的hosts中的masterIP为master本机内网IP,其他slave节点IP为外网IP;相同的,slave中的hosts中的本机IP必为本机内网IP,其他节点为外网IP。
    6.生成密钥
    分别在master及slave上生成rsa密钥:

      mkdir ~/.ssh
      cd ~/.ssh
      ssh-keygen -t -rsa
    

一路回车(选择默认设置),此时,ssh文件夹中生成了id_rsa.pub和id_rsa两个,然后 使用scp命令将公钥(id_rsa.pub)分别拷到对方机器中

  scp id_rsa.pub h1@对方机器IP:~/.ssh/authorized_keys

并设置权限:

  chmod 700 authoized_keys
  chomd 777 ~/.ssh

使用cat命令实现无密码访问自身(localhost):cat id_rsa.pub >> authorized_keys

OK!大功告成!现在我们在master上h1下使用命令ssh h1@slaveIP即可无密码登录slave,slave亦可无密码登录master。

发布了14 篇原创文章 · 获赞 36 · 访问量 8248

猜你喜欢

转载自blog.csdn.net/weixin_42047699/article/details/88673923