CN111142887A - 一种cdh自动化自动安装的方法 - Google Patents

一种cdh自动化自动安装的方法 Download PDF

Info

Publication number
CN111142887A
CN111142887A CN201911378193.3A CN201911378193A CN111142887A CN 111142887 A CN111142887 A CN 111142887A CN 201911378193 A CN201911378193 A CN 201911378193A CN 111142887 A CN111142887 A CN 111142887A
Authority
CN
China
Prior art keywords
host
cmserver
file
hosts
installation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911378193.3A
Other languages
English (en)
Other versions
CN111142887B (zh
Inventor
王少鹏
贾洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Focus Technology Co Ltd
Original Assignee
Focus Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Focus Technology Co Ltd filed Critical Focus Technology Co Ltd
Priority to CN201911378193.3A priority Critical patent/CN111142887B/zh
Publication of CN111142887A publication Critical patent/CN111142887A/zh
Application granted granted Critical
Publication of CN111142887B publication Critical patent/CN111142887B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种CDH自动化自动安装的方法,首先通过python的paramiko连接需要连接的主机,然后生成hosts文件和ssh免密登录文件,将hosts文件和ssh免密登录文件通过paramiko的ftp将文件长传相应的目录实现集群的免密登录,然后在cmserver主机上安装本地仓库,生成yum仓库,然后在cmserver主机上安装mysql配置数据库,ntpd时间同步、jdk安装,cmserver安装操作;本发明实现了对CDH的自动化安装,应用于多台机器的CDH的集群安装,通过自动化脚本的实现可以大大缩减安装的时间,减少安装过程中的一些可能问题。

Description

一种CDH自动化自动安装的方法
技术领域
本发明涉及大数据开发和运维,特别是实现大数据CDH自动化安装的方法。
背景技术
在企业大数据中,随着业务的不断开展,硬件配置的提升,和软件技术的提升,老的平台框架已经不能满足现有的业务需求了。Cloudera的CDH和Apache的Hadoop是大数据的两个主要平台,CDH指大数据平台Cloudera版本(Cloudera’s Distribution IncludingApache Hadoop,简称“CDH”),基于Web的用户界面,支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、Hbase、Zookeeper、Sqoop,简化了大数据平台的安装。
CDH相对于hadoop在兼容性,安全性,稳定性上都有增强,所以我们选择CDH作为主要大数据平台。而hadoop 3在相对于hadoop2有很大的提升,hadoop3的新特性主要有一下几点:(1)HDFS支持数据的擦除编码,相对于hadoop2能节省一半的存储空间
(2)Tasknative优化,对于shuffle密集型应用,其性能可提高约30%。
(3)Hadoop3.x中的MapReduce添加了Map输出collector的本地实现,对于shuffle密集型的作业来说,这将会有30%以上的性能提升。
(4)数据节点均衡器,hadoop3通过intra-DataNode平衡数据
(5)添加GPU资源的管理
(6)MapReduce内存参数自动推断,更好的利用集群资源
所以hadoop的升级无论性能和稳定性上都有很大的提升,应对现在的任务执行时间长不能及时的展示问题。
Python是面向对象、直译式程序设计语言,也是一种功能强大而且完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。这种语言具有非常清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。shell是一种命令语言,同时也可以看成是一个命令解释器,用于接收诸如awk、sed的命令调用等完成相关的功能。Python是一种编程语言,Python提供给程序员更大的自由度和灵活性,以完成shell所不能完成或者难于完成的编码任务,如实现面向对象的模块化设计、操作服务器数据库等等。paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux,Solaris,BSD,MacOS X,Windows等,paramiko都可以支持,因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一。
CDH安装过程需要在各个集群节点之间切换,比较繁琐,而且对于没有安装过集群的并不友好,CDH依赖较多的应用,而且国内对于cloudera网站的访问并不稳定,如果在安装的过程中失败可能需要重新安装。基于以上原因,编写了自动化脚本帮助安装CDH。
发明内容
本发明目的是,提出一种CDH自动化自动安装的方法,解决国内对于cloudera网站的访问并不稳定容易安装的过程中失败的问题,编写了自动化脚本帮助安装CDH。
本发明的技术方案是:一种CDH自动化自动安装的方法,首先通过python的paramiko连接需要连接的主机,然后生成hosts文件和ssh免密登录文件,将hosts文件和ssh免密登录文件通过paramiko的ftp将文件长传相应的目录实现集群的免密登录,然后在cmserver主机上安装本地仓库,生成yum仓库,实现本地仓库,解决网络延迟导致CDH安装不成功的问题,然后在cmserver主机上安装mysql配置数据库,LINUX ntpd时间同步,jdk安装(Java软件开发工具包),cmserver安装等操作;具体步骤如下:
步骤1、免密登录和hosts配置,由于机器较多,每台都进行免密的操作太过于费事,而且很可能出现误操作,所以利用paramiko的特性,使用paramiko操作,在多台需要安装的每台机器执行免密操作,多台主机在互传到cmserver主机(连接管理服务主机)实现免密的登录;
步骤11、首先读取主机配置文件,获取ip,开辟线程,通过paramiko连接cmserver主机;
步骤12、生成hosts文件,将hosts的主机信息写入到/etc/hosts文件,使得主机能够识别其他主机的hostname;
步骤13、生成ssh免密登录文件,即cmserver主机交互生成密匙文件,读取密匙文件,并将密匙文件写入cmserver主机;该文件用于主机的识别;
步骤13、将文件上传到各台安装机,实现免密登录。
步骤2、安装工作
步骤21、安装本地yum源,CDH的官方yum网络慢,软件较大,安装过程中经常出现中断导致CDH安装失败,所以需要安装和配置本地yum源,首先将需要的软件包放在目录下,安装httpd(http server),创建仓库并将仓库上传到指定路径,将配置好的的cloudera-repo上传到repo目录下;
步骤22、安装配置ntpd,ntpd是时间同步类,如果服务主机发生时间偏差会报时钟异常,所以需要在每台机器中安装和配置时钟同步类,首先编写配置文件将nptd server地址配置好,然后在每台机器中安装通过exec_all_host.py工具类在每台机器中安装ntpd,然后使用工具类scp_host.sh,该工具类可以遍历hosts将文件发送到每台机器,使用scp_host.sh将配置文件发送到每台安装机;
步骤23、关闭防火墙,编写工具类程序exec_all_host.py,该工具类程序会遍历步骤2中的所有配置文件,执行脚本时添加linux命令和参数即可以在配置的主机中完成linux命令,利用所述工具类程序在每台机器中执行linux命令关闭防火墙;
步骤24、安装mysql,在机器中安装mysql根据官方配置文档替换mysql的配置文件,通过mysql命令执行官方sql文件。
步骤25、安装cmserver,执行scm建表的脚本,scm的相关脚本创建了和cmserver服务相关的表,为cmserver提供服务。
步骤26、启动cmserver。
cmserver需要很多的库为scm服务,和cmserver提供支持。软件配置管理(scm)是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。
本发明在现有技术背景下,选择使用python+shell的方式进行编写CDH自动化脚本,简化CDH的安装过程。Python是面向对象、直译式程序设计语言,也是一种功能强大而且完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。这种语言具有非常清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。shell是一种命令语言,同时也可以看成是一个命令解释器,用于接收诸如awk、sed的命令调用等完成相关的功能。而Python则是一种编程语言,Python提供给程序员更大的自由度和灵活性,以完成shell所不能完成或者难于完成的编码任务,如实现面向对象的模块化设计、操作服务器数据库等等。Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。
yum源就是一个软件集合地(LINUX)。Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。而hosts是一个浏览网页控制文件,可以从源头上控制DSN指向,在浏览网页中起着重要的作用。
本发明应用于多台(三台以上)机器的CDH的集群安装主要用到python脚本和shell脚本实现,通过python的paramiko连接需要连接的主机,然后生成hosts文件和ssh免密登录文件,将文件通过paramiko的ftp将文件长度相应的目录实现集群的免密登录,然后在cmserver主机上安装本地仓库,生成yum仓库,实现本地仓库,解决网络延迟导致CDH安装不成功的问题,然后在cmserver主机上安装mysql配置数据库,LINUX ntpd时间同步,jdk安装(Java软件开发工具包),cmserver安装等操作。
有益效果:本发明实现了对CDH的自动化安装,应用于多台机器的CDH的集群安装前的准备工作,主要用到python脚本和shell脚本实现,选择使用python+shell的方式进行编写CDH自动化脚本,简化CDH的安装过程。CDH6.2的安装是个繁琐的工作,通过自动化脚本的实现可以大大缩减安装的时间,减少安装过程中的一些可能问题,该脚本中也提供了很多小的程序用于多主机文件传输和命令执行,而不需要ssh到每台机器上,再去执行命令。
附图说明
图1为本发明的步骤1免密登录流程图(ssh免密登录流程图);
图2为本发明的步骤2CDH安装的流程图。
图3CDH自动化脚本执行流程图。
具体实施方式
如流程图所示:ssh登录使用"公私钥"认证的方式来进行ssh登录。"公私钥"认证方式简单的解释是:首先在客户端上创建一对公私钥(公钥文件:
~/.ssh/id_rsa.pub;私钥文件:~/.ssh/id_rsa),然后把公钥放到服务器上(~/.ssh/authorized_keys),自己保留好私钥。当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配。如果匹配成功就可以登录了。
脚本运行前准备:
步骤1:准备需要安装CDH的centOS7的机器,需要3台以上。
步骤2:为每台机器配置网络连接,可以访问外网,网络之间可以相互ping通;
步骤3:在cmserver机器安装python依赖库paramiko,可以通过paramiko连接其他的机器,而且通过paramiko与其他的机器交互实现自动化操作。
步骤4:选择cmserver主机,创建hosts文件依次写入每台主机的ip、hostname,ip和hostname以空格分隔。
步骤5:创建cloudera-repo文件夹,导入cloudera-scm安装所需要的rpm软件,解决网络问题导致CDH安装失败问题。
步骤6:创建createdatabase.sql文件,写入需要创建database的数据库的脚本,并写入赋权脚本。
步骤7:创建ntp配置文件,配置同步节点,用于时钟同步,CDH通过时钟判断RPC的连接报告主机状态。
步骤8:执行python freelogin.py脚本将根据配置的主机信息异步操作其他主机,根据配置的主机信息,生成/etc/hosts文件,生成免密登录key进而实现集群间的免密登录;指将hosts的主机信息写入到/etc/hosts文件,使得主机能够识别其他主机的hostname;
步骤9:脚本实现免密登录后,生成ssh免密登录文件,即cmserver主机交互生成密匙文件,读取密匙文件,并将密匙文件写入cmserver主机;该文件用于主机的识别;执行python install.py实现cmserver安装。通过脚本根据配置的主机和相关的sql、安装包和软件的配置文件实现时间同步、防火墙、自建yum源等相关操作最终实现cmserver的安装。
步骤10:访问cmserver的7180端口。根据界面进行操作。
以上实施例不以任何方式限定本发明,凡是对以上实施例以等效变换方式做出的其它改进与应用,都属于本发明的保护范围。

Claims (1)

1.一种CDH自动化自动安装的方法,其特征是,首先通过python的paramiko连接需要连接的主机,然后生成hosts文件和ssh免密登录文件,将hosts文件和ssh免密登录文件通过paramiko的ftp将文件长传相应的目录实现集群的免密登录,然后在cmserver主机上安装本地仓库,生成yum仓库,然后在cmserver主机上安装mysql配置数据库,ntpd时间同步、jdk安装,cmserver安装操作;具体步骤如下:
步骤1、免密登录和hosts配置,使用paramiko操作,在多台需要安装的每台机器执行免密操作,多台主机在互传到cmserver主机实现免密的登录;
步骤11、首先读取主机配置文件,获取ip,开辟线程,通过paramiko连接cmserver主机;
步骤12、生成hosts文件,将hosts的主机信息写入到/etc/hosts文件,使得主机能够识别其他安装机的hostname;
步骤13、生成ssh免密登录文件,即cmserver主机交互生成密匙文件,读取密匙文件,并将密匙文件写入cmserver主机;该文件用于主机的识别;
步骤13、将免密登录文件上传到各台安装机,实现免密登录。
步骤2、安装工作
步骤21、安装本地yum源,首先将需要的软件包放在目录下,安装httpd(http server),创建仓库并将仓库上传到指定路径,将配置好的的cloudera-repo上传到repo目录下;
步骤22、安装配置ntpd时间同步软件,如果服务主机发生时间偏差会报时钟异常,所以需要在每台机器中安装和配置时钟同步类,首先编写配置文件将nptd server地址配置好,然后在每台机器中安装通过exec_all_host.py工具类在每台安装机器中安装ntpd,然后使用工具类scp_host.sh,该工具类可以遍历hosts将文件发送到每台机器,使用scp_host.sh将配置文件发送到每台安装机;
步骤23、关闭防火墙,编写工具类程序exec_all_host.py,该工具类程序会遍历步骤2中的所有配置文件,执行脚本时添加linux命令和参数即可以在配置的主机中完成linux命令,利用所述工具类程序在每台机器中执行linux命令关闭防火墙;
步骤24、安装mysql,在机器中安装mysql根据官方配置文档替换mysql的配置文件,通过mysql命令执行官方sql文件;
步骤25、安装cmserver,执行scm建表的脚本,scm的相关脚本创建了和cmserver服务相关的表,为cmserver提供服务;
步骤26、启动cmserver。
CN201911378193.3A 2019-12-27 2019-12-27 一种cdh自动化自动安装的方法 Active CN111142887B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911378193.3A CN111142887B (zh) 2019-12-27 2019-12-27 一种cdh自动化自动安装的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911378193.3A CN111142887B (zh) 2019-12-27 2019-12-27 一种cdh自动化自动安装的方法

Publications (2)

Publication Number Publication Date
CN111142887A true CN111142887A (zh) 2020-05-12
CN111142887B CN111142887B (zh) 2022-08-02

Family

ID=70520965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911378193.3A Active CN111142887B (zh) 2019-12-27 2019-12-27 一种cdh自动化自动安装的方法

Country Status (1)

Country Link
CN (1) CN111142887B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631922A (zh) * 2013-12-03 2014-03-12 南通大学 基于Hadoop集群的大规模Web信息提取方法及系统
CN104317610A (zh) * 2014-10-11 2015-01-28 福建新大陆软件工程有限公司 一种hadoop平台自动安装部署的方法及装置
CN110286921A (zh) * 2019-06-27 2019-09-27 四川中电启明星信息技术有限公司 一种自动化安装分布式大数据平台cdh方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631922A (zh) * 2013-12-03 2014-03-12 南通大学 基于Hadoop集群的大规模Web信息提取方法及系统
CN104317610A (zh) * 2014-10-11 2015-01-28 福建新大陆软件工程有限公司 一种hadoop平台自动安装部署的方法及装置
CN110286921A (zh) * 2019-06-27 2019-09-27 四川中电启明星信息技术有限公司 一种自动化安装分布式大数据平台cdh方法

Also Published As

Publication number Publication date
CN111142887B (zh) 2022-08-02

Similar Documents

Publication Publication Date Title
US10827008B2 (en) Integrated user interface for consuming services across different distributed networks
US8290998B2 (en) Systems and methods for generating cloud computing landscapes
US9489189B2 (en) Dynamically generate and execute a context-specific patch installation procedure on a computing system
Masek et al. Unleashing full potential of ansible framework: University labs administration
EP2675127B1 (en) Method and device for automatically migrating system configuration item
US20130227089A1 (en) Building virtual machine disk images for different cloud configurations from a single generic virtual machine disk image
JP2022022077A (ja) アプリケーションをデプロイするための方法及び装置、電子機器、読み取り可能な記憶媒体並びにコンピュータプログラム
CN103067501B (zh) PaaS平台的大数据处理方法
CN112817791A (zh) 一种工作面集群开采状态的移动端监控方法
CN113626133B (zh) 一种虚拟机控制方法、装置、设备及计算机可读存储介质
US20230205503A1 (en) Method for dynamically integrating application programs, and software system and machine using the same
CN114338820A (zh) 网络访问方法、装置、电子设备及存储介质
CN111142887B (zh) 一种cdh自动化自动安装的方法
WO2021151297A1 (zh) 一种访问云主机控制台方法、装置、设备及存储介质
Hao Edge Computing on Low Availability Devices with K3s in a Smart Home IoT System
CN112287017A (zh) 一种基于OpenSSH的Impala集群可视化管理方法
CN112351114B (zh) 一种信息处理方法、装置以及存储介质
Karki et al. Performance Comparison of SSH Libraries
CN112328300A (zh) 一种基于批量操控工具的it自动化运维系统
Marchioni WildFly Administration Guide: The ultimate and most up-to-date guide to manage WildFly appication server
Kurniawan Ansible for AWS
CN115827009B (zh) 一种基于自动化脚本部署Ambari的方法及系统
Tinetti et al. Install a mongodb Replica Set in a Virtual Environment
Mardan et al. Deploying Node. js Apps
Stanek IIS 8 Administration: The Personal Trainer for IIS 8.0 and IIS 8.5

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant