批量部署Hadoop集群环境(1)

1. 项目简介:

  • 前言:云火的一塌糊涂,加上自大二就跟随一位教授做大数据项目,所以很早就产生了兴趣,随着知识的积累,虚拟机已经不能满足了,这次在服务器上以生产环境来部署Hadoop。已经搭建完毕,分享出来供大家参考。
  • 问题:看到Hadoop部署在一些资料上很是繁琐,一些简单的部署方法只是玩具,无法满足企业的部署条件,如果一台台服务器去部署,显然是不可行。
  • 解决:在学习及其他资料后,准备以《Apache Hadoop Yarn: Moving Beyond Mapreduce and Batch Processing with Apache Hadoop 2》为依据,其他资料辅助。
  • 注意:《Apache Hadoop Yarn: Moving Beyond Mapreduce and Batch Processing with Apache Hadoop 2》这本书有一处错误。
    • P53 原版“nm_host” 应改正为“nn_host”
    • 这么小的错误,影响是巨大的,我也是在实践本书内容时候,发现的错误,它会导致namenode不存在,而影响服务器节点无法启动。

2. 项目环境

  • 阿里云服务器ESC (4台)
  • Centos 7
  • Hadoop-YARN(2.7.1)
  • java version “1.8.0_72”
  • pdsh version “2.31”(批处理主要工具)
  • Xmanager Enterprise 5(使用xshell来连接服务器)

3. 服务器分配情况

集群节点名字 对应字段 主机编号 主机内网IP hostname
HDFS NameNode nn_host 00 10.251.20.244 iZ28z9sbsgjZ
YARN ResourceManager rm_host 00 10.251.20.244 iZ28z9sbsgjZ
HDFS SecondaryNameNode snn_host 01 10.45.202.245 iZ28fm2wvrwZ
MapReduce mr_history_host 02 10.144.27.164 iZ28n1kabs3Z
YARN网页代理服务器 yarn_proxy_host 03 10.163.97.250 iZ28bwz7umxZ
YARN NodeManager nm_hosts 01、02、03 10.45.202.245 10.144.27.164 10.163.97.250 iZ28fm2wvrwZ iZ28n1kabs3Z iZ28bwz7umxZ
HDFS DataNode dn_hosts 01、02、03 10.45.202.245 10.144.27.164 10.163.97.250 iZ28fm2wvrwZ iZ28n1kabs3Z iZ28bwz7umxZ

4. 项目目标

  • 实现批量部署Hadoop集群环境

5. 项目目录

6. 一键批量部署Hadoop环境,ESC服务器提前要准备的工作

7. 实现多台ESC内网连接

送上官方教程,图文声茂

阿里云机房内网情况简介

通过安全组实现不同账号下相同地域ECS内网互通

8. 实现无密匙登录

有点小繁琐,但是原理很简单:

8.1每台机器需要生成密匙

生成密匙对

    ssh-keygen -t rsa

8.2复制密匙到远程机器(固定机器/本机)

ssh-copy-id -i ~/.ssh/id_rsa.pub 10.x.x.x
  • 解析:

    ssh-keygen -t rsa 中,-t是type,模式是rsa

    ssh-copy-id -i ~/.ssh/id_rsa.pub 10.x.x.x 中,将本机id_rsa.pub复制到远程机器(如内网IP为10.x.x.x,替换为自己的一台固定服务器,这样,依次弄完后,这台“固定机器上边就有了所有机器的密匙”)

9. 修改host

目的是为了使用hostname可以ping通。

写入内网IP和hostname

vim /etc/hosts
10.251.20.244 iZ28z9sbsgjZ
10.45.202.245 iZ28fm2wvrwZ
10.144.27.164 iZ28n1kabs3Z
10.163.97.250 iZ28bwz7umxZ

10. 实现pdsh访问

这次是以“固定机器”依次访问其他服务器(包括自己),如

访问自己

ssh iZ28z9sbsgjZ

访问完毕后,此时在~/.ssh生成known_hosts就包含了所有服务器

[root@iZ28z9sbsgjZ ~]# cd ~/.ssh
[root@iZ28z9sbsgjZ .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts

11. 开始批处理作业,以后的所有步骤很依赖pdsh,只要是批处理!

在opt文件下做如下操作(opt文件夹或者别的,建议默认,整篇教程都是这个路径)

11.1 创建all_hosts

cd /opt

vim all_hosts
#写入自己服务器hostname如:
iZ28bwz7umxZ
iZ28fm2wvrwZ
iZ28n1kabs3Z
iZ28z9sbsgjZ

11.2 批量复制固定机器(本机)的authorized_keys 和 known_hosts,到全部集群

pdcp -w ^all_hosts ~/.ssh/authorized_keys ~/.ssh/
pdcp -w ^all_hosts ~/.ssh/known_hosts ~/.ssh/

12. 准备完毕,进入下一步 批量部署Hadoop集群环境(2)

最新文章

  1. $.extend()、$.fn和$.fn.extend()
  2. 在ubuntu 16.04系统环境中搭建NAS(samba/iscsi/nfs)
  3. 如何自定义ViewGroup
  4. Java操作Oracle
  5. FG模型
  6. Qt消息机制和事件(二)
  7. ASCII 码表
  8. nginx error_page 404 用 php header 无法跳转
  9. python 实现接口测试
  10. SQL Server 2005入门到精通(案例详解)
  11. WindowManager.LayoutParams的探究
  12. javascript 关于 this 作用域链
  13. ADB Shell之手机性能测试
  14. Apache Hadoop 2.9.2 的归档案例剖析
  15. 目前的.NET 主流的后端ORM框架
  16. HttpClientFactory与Steeltoe结合来完成服务发现
  17. 使用AD画PCB的技能总结(纯属个人笔记,请大神多多指导)
  18. 函数式语言(Functional language)简单介绍
  19. 关于EL表达式随笔记录
  20. intel32指令中文版

热门文章

  1. dedecms列表页如何调用栏目关键词和描述
  2. springboot在eclipse实现热部署
  3. JavaScript模板引擎使用
  4. java android 将 List中元素互换位置
  5. html5--6-44信纸设计
  6. 第三届蓝桥杯C++B组省赛
  7. codeforces 414B B. Mashmokh and ACM(dp)
  8. Snowflake算法 ID生成
  9. bzoj3270博物馆——期望概率DP
  10. OrChard快速开发一个网站,个人网站