目录

  • 3.1 配置各节点SSH无密钥登录

    • 1.将各节点的秘钥加入到同一个授权文件中
    • 2.拷贝授权文件到各个节点
    • 3.测试无秘钥登录
  • 3.2 搭建Hadoop集群
    • 1.上传Hadoop并解压
    • 2.配置Hadoop环境变量
    • 3.配置HDFS
    • 4.配置YARN
    • 5.拷贝Hadoop安装文件到其它主机
    • 6.启动Hadoop
    • 7.查看各节点启动进程
    • 8.测试HDFS
    • 9.测试MapReduce

3.1 配置各节点SSH无密钥登录

【操作目的】
Hadoop的进程间通信使用SSH(Secure Shell)方式。SSH是一种通信加密协议,使用非对称加密方式,可以避免网络窃听。为了使Hadoop各节点之间能够无密码相互访问,需要配置各节点的SSH无秘钥登录。
【登录原理】
SSH无密钥登录的原理如下图:

【操作步骤】
方法一

1.将各节点的秘钥加入到同一个授权文件中

无秘钥登录的原理是,登录节点的秘钥信息是否存在于被登录节点的授权文件中,如果存在,则允许登录。为了所有节点之间 能够相互登录,首先我们需要将各个节点的秘钥加入到同一个授权文件中,步骤如下:
(1)在centos01节点中,生成秘钥文件,并将秘钥信息加入到授权文件中。所需命令如下:

cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 生成秘钥文件,会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys  # 将秘钥内容加入到授权文件中

(2)在centos02节点中,生成秘钥文件,并将秘钥文件远程拷贝到centos01节点的相同目录,且重命名为id_rsa.pub.centos02。相关命令如下:

cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 生成秘钥文件,会有提示,都按回车就可以
scp ~/.ssh/id_rsa.pub hadoop@centos01:~/.ssh/id_rsa.pub.centos02 #远程拷贝

(3)在centos03节点中,执行与centos02相同的操作(生成秘钥文件,并将秘钥文件远程拷贝到centos01节点的相同目录,且重命名为id_rsa.pub.centos03)。相关命令如下:

cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 生成秘钥文件,会有提示,都按回车就可以
scp ~/.ssh/id_rsa.pub hadoop@centos01:~/.ssh/id_rsa.pub.centos03 #远程拷贝

(4)回到centos01节点,将centos02和centos03节点的秘钥文件信息都加入到授权文件中。相关命令如下:

cat ./id_rsa.pub.centos02 >> ./authorized_keys  #将centos02的秘钥加入到授权文件中
cat ./id_rsa.pub.centos03 >> ./authorized_keys  #将centos03的秘钥加入到授权文件中

2.拷贝授权文件到各个节点

将centos01节点中的授权文件远程拷贝到其它节点,命令如下:

scp ~/.ssh/authorized_keys hadoop@centos02:~/.ssh/
scp ~/.ssh/authorized_keys hadoop@centos03:~/.ssh/

3.测试无秘钥登录

接下来可以测试从centos01无秘钥登录到centos02,命令如下:

ssh centos02

如果登录失败,可能的原因是授权文件authorized_keys权限过高,分别在每个节点上执行如下命令,更改文件权限:

chmod 700 ~/.ssh  #只有拥有者有读写权限。
chmod 600 ~/.ssh/authorized_keys  #只有拥有者有读、写、执行权限。

到此,各节点的SSH无秘钥登录就配置完成了。

方法二
ssh-copy-id命令可以把本地主机的公钥复制并追加到远程主机的authorized_keys文件中,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限。
(1)分别在三个节点中执行以下命令,生成秘钥文件:

cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 生成秘钥文件,会有提示,都按回车就可以

(2)分别在三个节点中执行以下命令,将公钥信息拷贝并追加到对方节点的授权文件authorized_keys中:

ssh-copy-id centos01
ssh-copy-id centos02
ssh-copy-id centos03

最后测试SSH无秘钥登录。

3.2 搭建Hadoop集群

【操作目的】
本例的搭建思路是,在节点centos01中安装Hadoop并修改配置文件,然后将配置好的Hadoop安装文件远程拷贝到集群中其它节点。各节点的角色分配如下表:

节点 角色
centos01 NameNode SecondaryNameNode DataNode ResourceManager NodeManager
centos02 DataNode NodeManager
centos03 DataNode NodeManager

【操作步骤】
Hadoop集群搭建的操作步骤如下:

1.上传Hadoop并解压

在centos01节点中,将Hadoop安装文件hadoop-2.7.1.tar.gz上传到/opt/softwares/目录,进入该目录,解压hadoop到/opt/modules/,命令如下:

[hadoop@centos01 ~]$ cd /opt/softwares/
[hadoop@centos01 softwares]$ tar -zxf hadoop-2.7.1.tar.gz -C /opt/modules/

2.配置Hadoop环境变量

Hadoop所有的配置文件都存在于安装目录下的/etc/hadoop中,修改如下配置文件:

hadoop-env.sh
mapred-env.sh
yarn-env.sh

三个文件分别加入JAVA_HOME环境变量,如下:

export JAVA_HOME=/opt/modules/jdk1.8.0_101

3.配置HDFS

(1)修改配置文件core-site.xml,加入以下内容:

<configuration><property><name>fs.defaultFS</name><value>hdfs://centos01:9000</value></property><property><name>hadoop.tmp.dir</name><value>file:/opt/modules/hadoop-2.7.1/tmp</value></property>
</configuration>

参数解析:
fs.defaultFS:HDFS的默认访问路径。
hadoop.tmp.dir:Hadoop临时文件的存放目录,可自定义。
(2)修改配置文件hdfs-site.xml,加入以下内容:

<configuration><property><name>dfs.replication</name><value>2</value></property><property><!--不检查用户权限--><name>dfs.permissions.enabled</name><value>false</value></property><property><name>dfs.namenode.name.dir</name><value>file:/opt/modules/hadoop-2.7.1/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/opt/modules/hadoop-2.7.1/tmp/dfs/data</value></property>
</configuration>

参数解析:
dfs.replication:文件在HDFS系统中的副本数。
dfs.namenode.name.dir:HDFS名称节点数据在本地文件系统的存放位置。
dfs.datanode.data.dir:HDFS数据节点数据在本地文件系统的存放位置。
(3)修改slaves文件,配置DataNode节点。slaves文件原本无任何内容,需要将所有DataNode节点的主机名都添加进去,每个主机名占一整行。本例中,DataNode为三个节点,因此slaves文件的内容如下:

centos01
centos02
centos03

4.配置YARN

(1)重命名mapred-site.xml.template文件为mapred-site.xml,修改mapred-site.xml文件,添加以下内容,指定使用yarn来运行mapreduce任务。

<configuration>  <property>  <name>mapreduce.framework.name</name>  <value>yarn</value> </property>
</configuration>

(2)修改yarn-site.xml文件,添加以下内容:

<configuration>  <property>  <name>yarn.nodemanager.aux-services</name>  <value>mapreduce_shuffle</value>  </property>
</configuration>

参数解析:
yarn.nodemanager.aux-services :NodeManager上运行的附属服务。需配置成mapreduce_shuffle才可运行MapReduce程序。

5.拷贝Hadoop安装文件到其它主机

在centos01节点上,将配置好的整个Hadoop安装目录,拷贝到其它节点(centos02与centos03)。命令如下:

[hadoop@centos01 modules]$ scp -r hadoop-2.7.1/ hadoop@centos02:/opt/modules/
[hadoop@centos01 modules]$ scp -r hadoop-2.7.1/ hadoop@centos03:/opt/modules/

6.启动Hadoop

启动Hadoop之前,需要先格式化NameNode。格式化NameNode可以初始化HDFS文件系统的一些目录和文件,在centos01节点上执行以下命令,进行格式化操作:

hadoop namenode -format

格式化成功后,在centos01节点上执行以下命令,启动Hadoop集群:

start-all.sh

也可以执行start-dfs.sh和start-yarn.sh分别启动HDFS和YARN集群。

7.查看各节点启动进程

集群启动成功后,分别在各个节点上执行jps命令,查看启动的Java进程。可以看到,各节点的Java进程如下:
centos01节点的进程:

[hadoop@centos01 hadoop-2.7.1]$ jps
13524 SecondaryNameNode
13813 NodeManager
13351 DataNode
13208 NameNode
13688 ResourceManager
14091 Jps

centos02节点的进程:

[hadoop@centos02 ~]$ jps
7585 NodeManager
7477 DataNode
7789 Jps

centos03节点的进程:

[hadoop@centos03 ~]$ jps
8308 Jps
8104 NodeManager
7996 DataNode

8.测试HDFS

在centos01节点的HDFS根目录创建文件夹input,并将Hadoop安装目录下的文件README.txt上传到新建的input文件夹中。命令如下:

hdfs dfs -mkdir /input
hdfs dfs -put /opt/modules/hadoop-2.7.1/README.txt /input

访问网址:http://192.168.170.133:50070 可以查看HDFS的NameNode信息,界面如下:

9.测试MapReduce

在centos01节点中执行以下命令,运行Hadoop自带的MapReduce单词计数程序,统计/input文件夹中的所有文件的单词数量:

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar /input /output

统计完成后,执行以下命令,查看MapReduce执行结果:

hdfs dfs -cat /output/*

如果以上测试没有问题,则Hadoop集群搭建成功。

原创文章,转载请注明出处!!

转载于:https://www.cnblogs.com/dreamboy/p/9287797.html

第3章 Hadoop 2.x分布式集群搭建相关推荐

  1. Hadoop单机/伪分布式集群搭建(新手向)

    此文已由作者朱笑笑授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 本文主要参照官网的安装步骤实现了Hadoop伪分布式集群的搭建,希望能够为初识Hadoop的小伙伴带来借鉴意 ...

  2. 记Hadoop HA高可用性分布式集群搭建过程

    为完成毕业设计中并行算法测试,在学习后,自己在虚拟机搭建了一个基于Hadoop的分布式集群,在这里做个记录,菜鸟首次写博客,已深夜,下面直接进入主题: 规划与说明 在hadoop集群中通常由两个Nam ...

  3. 大数据开发·关于虚拟机Hadoop完全分布式集群搭建教程

    hadoop完全分布式集群搭建 一.搭建准备 1.安装VMware虚拟机 2.Xshell 7 远程客户端及Xftp 7安装 3.搭建模板虚拟机hadoop100 配置虚拟机网络 为虚拟机普通用户配置 ...

  4. hadoop分布式集群搭建

    hadoop集群搭建前的准备(一定要读):https://blog.51cto.com/14048416/2341450 hadoop分布式集群搭建: 1. 集群规划: 2.具体步骤: (1)上传安装 ...

  5. 手把手教你搭建Hadoop生态系统伪分布式集群

    Hello,我是 Alex 007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了. 手把手教你搭建Hadoop生态 ...

  6. 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建

    本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...

  7. Hadoop分布式集群搭建以及案例运行-fs操作

    Hadoop分布式集群搭建案例步骤(也可以叫分布式文件系统) 一:创建分布式集群环境 二:设置静态ip以及主机名与映射关系 三:创建用户.配置SSH无密登录 四:子机dn操作 五:配置主机jdk.ha ...

  8. HADOOP 伪分布式集群搭建

    一 linux 环境的搭建 由于笔者这里使用的是vmware 虚拟机 采用centos7 linux 操作系统进行搭建,所以一下示例均以centos7进行示例 1.  搭建vmware 虚拟机 (1) ...

  9. Hadoop完全分布式集群搭建详细图文教程

    本文所使用的环境及版本: CentOS Linux release 7.9.2009 (Core) jdk1.8.0_291 hadoop-3.2.2 一.安装模板机 1.安装CentOS 7.9并配 ...

最新文章

  1. JavaScript文件中调用AngularJS内部方法或改变$scope变量
  2. 医疗行业的AI应用,要避免“垃圾进、垃圾出”
  3. angular监听路由跳转
  4. MySQL 8.0 正式版 8.0.11 发布:比 MySQL 5.7 快 2 倍
  5. SqlServer数据类型
  6. 都快下班了,才来写日记
  7. android 获取sd卡目录失败_树莓派对SD卡的大小,速度有哪些要求?
  8. SYN攻击原理以及检测防范技术
  9. Zabbix(五)利用Zabbix部署onealert云告警平台
  10. JavaScript学习(九十二)—关联数组的基本操作
  11. 中英文组织机构名过滤
  12. Eclipse改动Project的文件夹位置
  13. ubuntu服务器系统不识别,U盘安装16.04server版 安装好后重启 无法进入系统
  14. java写入文件不覆盖写入_Java写入文件–用Java写入文件的4种方法
  15. 机器学习第三回——logistic回归算法
  16. 字段分行加一 sql语句
  17. 故事到此为止了,谢谢遇见,让我成长。
  18. 华为harmonyos公测,华为开启HarmonyOS2.0开发者Beta公测招募第二期
  19. java写入excel乱码_Java导出Excel解决乱码及导出文件打开不可读需修复的问题
  20. 冲击波病毒内幕点滴(2) (转)

热门文章

  1. 自动驾驶——基于五次多项式螺旋线方程的换道曲线规划
  2. 思科完成收买Pari Networks 增强智能办事
  3. python引协议引流_什么是引流脚本,什么是引流协议
  4. Slicer学习笔记(三十六)slicer坐标系
  5. 小程序源码:喝酒神器新UI版本带特效和音效,缩减版本微信小程序
  6. C/C++以某符号分割字符串
  7. BUUCTF-MISC-基础破解
  8. 3A信用等级证书的应用有哪些
  9. 听歌识曲的软件实现c语言,【优秀】听歌识曲软件小程序
  10. 【转】啪嗒砰2兵种模拟加点器EXCEL版(100%吻合)