CN111142887A - 一种cdh自动化自动安装的方法 - Google Patents
一种cdh自动化自动安装的方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
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自动化安装的方法。
背景技术
在企业大数据中,随着业务的不断开展,硬件配置的提升,和软件技术的提升,老的平台框架已经不能满足现有的业务需求了。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。
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)
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方法 |
-
2019
- 2019-12-27 CN CN201911378193.3A patent/CN111142887B/zh active Active
Patent Citations (3)
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 |