第六天 - 安装第二、三台CentOS - SSH免密登陆 - hadoop全分布式安装、配置、集群启动

第六天 - 安装第二、三台CentOS - SSH免密登陆 - hadoop全分布式安装、配置、集群启动

一、安装另外两台CentOS

具体安装过程可参考第一天的步骤

centos安装过程

安装过程中需要注意的点

  1. 需要为虚拟机配置2G内存,首次配置完成后点击虚拟机右键设置,添加ISO镜像文件

1535940448002

  1. 在安装过程中需要对虚拟机设置主机名SZ02及SZ03、IP地址等,具体如下图所示。

1535940686275

1535941135589

  1. 无需图形界面,只需选择安装Basic Server即可

1535941191694

  1. 安装完成后在虚拟机右键设置中将网路适配器改为仅主机模式

    1535943518892

二、对虚拟机进行设置

往第二、第三台新增bigdata用户

可以在Xshell工具选项中勾选发送键输入到所有的会话,此功能是在一个会话界面中输命令,所有会话窗口都能接收到相同的命令

1535943710704

单台可以通过黄色条的右边ON/OFF按钮进行开关控制

1535942490190

增加bigdata用户并设置密码

useradd bigdata

passwd bigdata

1535942625369

两台机器通过su - bigdata进行测试是否创建成功

1535943828039

1535943814855

增加三台CentOS之间的hosts映射

vi /etc/hosts

192.168.128.121 SZ01

192.168.128.122 SZ02

192.168.128.123 SZ03

1535943939906

使用ping SZ01/SZ02/SZ03进行互通性测试

1535944111188

增加Windows的hosts映射

1535943984801

使用ping进行测试

1535944077012

ssh工具

SSH,安全的网络传输协议,即使密码被半路拦截,信息也不会泄露;

Linux中已经安装了SSH工具,并且默认开启了相关服务;

主要作用,远程登录到另外的机器

连接过程:

  1. 命令格式:ssh {userName}@{hostName},使用当前用户连接机器hostName,并且使用目标机器的userName用户连接;

    ssh root@SZ02

  2. 首次连接,接收来自目标机器的验证信息,输入yes,加入到可信列表(known_hosts),可信列表文件存储在发起连接请求的机器上;

  3. 连接时需要输入目标机器,目标用户的密码

  4. 成功建立连接

  5. 连接成功后查看主机名和IP地址,显示的是SZ02

    1535944502075

  6. 退出连接

    exit

    1535944521051

  7. 再次连接就不需要存可信列表了

1535944490012

  • 可信列表存储的位置及文件内容

用户家目录下的.ssh/known_hosts

1535944608522

1535944676195

  • 当两台机器远程登录时,如果使用的用户与目标机器用户相同,则可以省略用户名

    1535945789025

一台机器的公钥、私钥
  • 公钥,私钥成对出现,公钥可以通过生成后发送给其他机器,而私钥只能本机拥有
  • 通过公钥加密的,需要用私钥解密;通过私钥加密的,需要用公钥解密
  • 保证安全性例子(机器A向机器B发送邮件)
    1. 机器A获取到机器B的公钥
    2. 机器A向机器B发送使用机器B的公钥加密过邮件
    3. 在机器B接收到机器A发送的邮件后需要利用B的私钥解密才行,这样即使邮件被别人拦截了,也没有机器B的私钥进行解密,这样就保证了安全性
ssh免密登陆
  • 免密登陆的原理:将机器A的公钥发送给机器B,机器B使用机器A的公钥加密一串字符后将字符发送给机器A,机器A通过私钥解析这一串字符,解析成功则能认证通过这是机器A,即可对机器B进行免密登陆,如果无法解析则说明此台机器不是机器A,所以机器B不允许登录。

  • 免密登陆步骤(使用bigdata用户操作)

    1. 获取SZ01的公钥(公钥只需获取一次即可)

      ssh-keygen -t rsa

      在此过程中使用默认配置即可,即一路回车直到生成RSA文件

      1535945287357

    2. 将SZ01的公钥发送给机器SZ02

      ssh-copy-id bigdata@SZ02

      输入SZ02中bigdata用户的密码

      1535945933820

    3. 测试

      ssh SZ02

      1535946012567

  • 可以查看SZ02中获取到的SZ01中的公钥文件

    cat ~/.ssh/authorized_keys

    1535945984867

  • 在SZ01、SZ02、SZ03三台机器互相配置免密登陆(包括自身机器)

三、hadoop安装、配置

hadoop简介(来自百度百科):

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

hadoop的安装
  1. 使用Xftp将hadoop-2.7.2.tar.gz上传至bigdata用户家目录下

  2. 解压缩到当前文件夹

    tar -zxvf hadoop-2.7.2.tar.gz

    1535955824455

  3. 安装完成,查看文件夹中包含的文件,hadoop的配置文件目录在etc/hadoop中

    1535955971608

    1535955982279

    sbin以及bin目录下是可执行脚本文件,其中sbin目录中存放启停hadoop的命令文件,bin目录中存放操作hadoop的命令文件

    1535956021202

hadoop的配置
  • 环境变量的配置

    1. 编辑环境变量的配置文件

      vi ~/.bash_profile

      在用户环境变量文件中添加如下图三个箭头指向的内容

      1535956259168

    2. 刷新配置文件

      source ~/.bash_profile

      1535956285709

    3. 使用hadoop命令查看版本测试环境变量是否配置成功

      hadoop version

      1535956306459

  • 配置文件的配置

    此配置文件配置为全分布式

    配置文件的目录在~/hadoop-2.7.2/etc/hadoop

    总共需要配置6个文件

    core-site.xml

    hdfs-site.xml

    mapred-site.xml

    yarn-site.xml

    hadoop-env.sh

    slaves

    1. core-site.xml

      <configuration>
      <!-- Hadoop文件系统依赖的基础配置 -->
      <property>
      <name>hadoop.tmp.dir</name>
      <value>/home/bigdata/hadoop/data</value>
      </property>
      <!-- NameNode结点的URI(包括协议、主机名称、端口号) -->
      <property>
      <name>fs.defaultFS</name>
      <value>hdfs://SZ01:8020</value>
      </property>
      <!-- 开启回收站机制,可以设置文件彻底删除的时间,默认为0,单位为分钟 -->
      <property>
      <name>fs.trash.interval</name>
      <value>60</value>
      </property>
      </configuration>

      1535957607160

    2. hdfs-site.xml

      在生产环境中,linux系统盘上安装了hadoop软件,另准备一个单独存储数据的磁盘,linux将该磁盘挂载到了某个目录(如data)下,hadoop中配置文件将文件存放目录改到data目录下,即如下配置文件中的dfs.datanode.data.dir

      <configuration>
      <!-- secondarynamenode的http服务器地址和端口 -->
      <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>SZ01:50090</value>
      </property>
      <!-- 默认块复制 -->
      <property>
      <name>dfs.replication</name>
      <value>3</value>
      </property>
      <!-- 关闭权限校验 -->
      <property>
      <name>dfs.permissions</name>
      <value>false</value>
      </property>
      <!-- namenode的http服务器地址和端口 -->
      <property>
      <name>dfs.namenode.http-address</name>
      <value>SZ01:50070</value>
      </property>
      <!-- datanode结点被指定要存储数据的本地文件系统路径 -->
      <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:///home/bigdata/hadoop/data/dfs/dn</value>
      </property>
      </configuration>

      1535958708154

      权限校验 – dfs.permissions – 默认是开启状态

      bigdata用户启动hadoop软件,此时bigdata用户拥有最高权限,在开发阶段将此项关闭

    3. mapred-site.xml

      需要将mapred-site.xml.template重命名为mapred-site.xml

      mv mapred-site.xml.template mapred-site.xml

      1535958742452

      <configuration>
      <!-- MapReduce JobHistory进程通信主机、端口 -->
      <property>
      <name>mapreduce.jobhistory.address</name>
      <value>SZ01:10020</value>
      </property>
      <!-- MapReduce JobHistory的web界面主机、端口 -->
      <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>SZ01:19888</value>
      </property>
      <!-- 以yarn方式运行MapReduce -->
      <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
      </property>
      </configuration>

      1535958845912

    4. yarn-site.xml

      <configuration>
      <!-- resourcemanager的主机名 -->
      <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>SZ01</value>
      </property>
      <!-- resourcemanager提供给nodemanager的地址 -->
      <property>
      <name>yarn.resourcemanager.resource-tracker.address</name>
      <value>SZ01:8031</value>
      </property>
      <!-- resourcemanager中应用程序管理器界面的地址 -->
      <property>
      <name>yarn.resourcemanager.address</name>
      <value>SZ01:8032</value>
      </property>
      <!-- 调度器接口的地址 -->
      <property>
      <name>yarn.resourcemanager.scheduler.address</name>
      <value>SZ01:8030</value>
      </property>
      <!-- 分配给容器的物理内存量(75%) -->
      <property>
      <name>yarn.nodemanager.resource.memory-mb</name>
      <value>1536</value>
      </property>
      <!-- NodeManager上运行的附属服务,配置成mapreduce_shuffle才可运行MR -->
      <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
      </property>
      </configuration>

      1535958959406

      yarn.nodemanager.resource.memory-mb

      当计算式能够调度的系统最大内存量(75%),所以需要虚拟机的最低内存应设置为2G

    5. hadoop-env.sh添加JAVA_HOME目录

      1535959048163

    6. slaves指定管辖的机器(datanode节点),在其中添加三个datanode节点地址

      1535959140139

  • 如果搭建伪分布式,则改动下图中的内容即可

1535957890821

四、SZ02、SZ03的配置

卸载预装软件、关闭防火墙

Xshell中在SZ02和SZ03会话中开启”发送键输入到所有会话”功能,接下来的命令只需在SZ02会话中输入即可

注意:需要使用root用户操作

  • 卸载系统预装的jdk:

    1. 使用rpm查找jdk包

      rpm -qa|grep jdk

      1535963953408

    2. 依次卸载这两个包

      rpm -e –nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64

      rpm -e –nodeps java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64

      1535963960233

      1535963966682

    3. 再次查找,已无这两个包,卸载完成

      rpm -qa|grep jdk

      1535963976929

  • 关闭系统防火墙

    service iptables stop

    在生产环境下,如果是在公有云租用了服务器,可以指定在局域网内开启端口,而外网的访问则完全关闭端口,这是通过网络安全组的设置实现的;而私有云则是通过局域网路由器控制端口的访问权限。

    1535963848547

启动集群前的准备
  • 将SZ01中的jdk、hadoop、用户环境变量发送至SZ02、SZ03

    scp命令:远程发送文件/文件夹,基于ssh

    在SZ01中使用bigdata用户进行以下操作:

    scp -r /home/bigdata/jdk1.8.0_171 bigdata@SZ02:/home/bigdata/
    scp -r /home/bigdata/jdk1.8.0_171 bigdata@SZ03:/home/bigdata/
    scp -r /home/bigdata/hadoop-2.7.2 bigdata@SZ02:/home/bigdata/
    scp -r /home/bigdata/hadoop-2.7.2 bigdata@SZ03:/home/bigdata/
    scp /home/bigdata/.bash_profile bigdata@SZ02:/home/bigdata/
    scp /home/bigdata/.bash_profile bigdata@SZ03:/home/bigdata/

    在SZ02、SZ03中查看jdk、hadoop版本,验证是否传输成功

    1535966144484

  • 对namenode进行格式化

    在SZ01中进行操作

    hadoop namenode -format

    1535966562837

    格式化过程中没有出现ERROR的提示即代表格式化成功。

    每次格式化都会在hadoop/data/dfs/name/current中生成一个新的VERSION文件,每次格式化后的clusterID都与以前不同,相当于建立了一个新的集群

    cat hadoop/data/dfs/name/current/VERSION

    1535974020475

启动集群

使用SZ01进行操作

进入hadoop安装目录下的sbin目录

cd hadoop-2.7.2/sbin/

1535974191079

执行启动命令

start-all.sh:启动dfs和yarn进程

start-dfs.sh:单独启动dfs

start-yarn.sh:单独启动yarn

启动dfs:

./start-dfs.sh

1535974448023

打印的信息中提示启动日志存放在/home/bigdata/hadoop-2.7.2/logs/hadoop-bigdata-xxxnode-SZ0x.out中,如果有某一节点未启动,可以通过日志文件进行查看排错

启动成功后,三台机器的进程信息如下:

SZ01:NameNode, SecondaryNameNode. DataNode

SZ02:DataNode

SZ03:DataNode

启动yarn:

./start-yarn.sh

1535974753215

启动成功后,在上一步的基础上,各个节点的进程中多了一下进程:

SZ01:ResourceManager, NodeManager

SZ02:NodeManager

SZ03:NodeManager

集群中进程的作用

hdfs和yarn的作用:

hdfs:hadoop分布式文件系统,负责hadoop集群中的数据存储工作

yarn:作业调度和资源管理

hdfs:

  • namenode:每个集群中的主节点
  • datanode:标志当前机器是数据存储节点
  • secondarynamenode:管理用户操作镜像的进程:用户镜像,文件做存储时没有实时写入硬盘,当文件大小超过一定额度时才会将文件写入硬盘

yarn:

  • resourcemanager:计算阶段的任务调度,负责同步各个nodemanager的计算结果
  • nodemanager:数据计算节点
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值