分类: 云计算

云计算

Hadoop入门之HDFS操作

启动HDFS

首先,格式化配置HDFS文件系统,打开NameNode(HDFS服务器),然后执行以下命令。

$ hadoop namenode -format 

格式化HDFS后,启动分布式文件系统。以下命令将启动名称节点和数据节点的集群。

$ start-dfs.sh 

HDFS的文件列表

加载服务器信息后,使用’ls’ 可以找出文件列表中的目录,文件状态。下面给出的是ls,可以传递一个目录或文件名作为参数的语法。

$ $HADOOP_HOME/bin/hadoop fs -ls <args>

将数据插入到HDFS

假设在本地系统,这是所谓的file.txt文件中的数据,应当保存在HDFS文件系统。按照下面给出插入在Hadoop的文件系统所需要的文件的步骤。

第1步

必须创建一个输入目录。

$ $HADOOP_HOME/bin/hadoop fs -mkdir /user/input 

第2步

传输并使用本地系统put命令,Hadoop文件系统中存储的数据文件。

$ $HADOOP_HOME/bin/hadoop fs -put /home/file.txt /user/input 

第3步

可以使用ls命令验证文件。

$ $HADOOP_HOME/bin/hadoop fs -ls /user/input 

从HDFS中检索数据

假设在HDFS文件名为outfile。下面给出的是一个简单的演示用于检索从Hadoop文件系统所需的文件。

第1步

*初,使用cat命令来查看来自HDFS的数据。

$ $HADOOP_HOME/bin/hadoop fs -cat /user/output/outfile 

第2步

使用get命令从HDFS下载文件到本地文件系统。

$ $HADOOP_HOME/bin/hadoop fs -get /user/output/ /home/hadoop_tp/
注:/home/hadoop_tp/ 为本地文件路径

关闭HDFS

可以使用下面的命令关闭HDFS。

$ stop-dfs.sh
转载自:http://www.yiibai.com/hadoop/hadoop_hdfs_operations.html

docker容器和虚拟机的区别

各种虚拟机技术开启了云计算时代;而Docker,作为下一代虚拟化技术,正在改变我们开发、测试、部署应用的方式。那虚拟机与Docker究竟有何不同呢?

首先,大家需要明确一点,Docker容器不是虚拟机。

2014年,当我*次接触Docker的时候,我把它比做一种轻量级的虚拟机。这样做无可厚非,因为Docker*初的成功秘诀,正是它比虚拟机更节省内存,启动更快。Docker不停地给大家宣传,”虚拟机需要数分钟启动,而Docker容器只需要50毫秒”。

然而,Docker容器并非虚拟机,我们不妨来比较一下它们。

Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。

说了这么多Docker的优势,大家也没有必要完全否定虚拟机技术,因为两者有不同的使用场景。虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而Docker通常用于隔离不同的应用,例如前端,后端以及数据库

云平台搭建选型:openstack+kvm还是k8s+docker ?

*近在研究云计算方面的技术,迷惑于云平台的技术选型。一般来说搭建iaas型的云平台选择 openstack+kvm。而搭建paas型的云平台选择k8s+docker。openstack是管理虚拟机的工具,K8S是管理容器的工具。

功能上:kubernetes是管理container的工具,openstack是管理VM的工具。
业务上:openStack是定位于laaS平台的项目,Kubernetes是定位于PaaS平台的项目
时间上:云平台方案的*阶段:虚拟机;云平台方案的第二阶段:容器技术;

为啥这样说?看下文。

声明:以下内容并非原创,而是来源于网络,整理于自己。

1、基于云计算的3种服务模式:

云计算平台根据提供的服务等级不同可以分为如下3类:

IaaS:基础设施即服务(Infrastructure-as-a-Service)

IaaS的优势在于消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、存储空间、部署的应用,也有可能获得有限制的网络组件(例如路由器,防火墙,负载均衡器等)的控制。在运作成本上,节约硬件何维护两方面的成本。
目前比较知名的IaaS公司有亚马逊、Bluelock、CSC、GoGrid、IBM等。

PaaS平台即服务(Platform-as-a-Service)

PaaS能为企业提供定制化研发的中间件平台,同时涵盖数据库和应用服务器等。PaaS公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。
PaaS公司与IaaS公司有许多重叠,除了上面列出的那些之外,还有Google、Microsoft Azure、Force.com、,Heroku、Engine Yard等。

SaaS软件即服务(Software-as-a-Service)

也是我们目前普通用户接触*多的层面,在网络上任意一个远程服务器上的应用都是属于SaaS。比如现在阿里的钉钉、JIBUU以及苹果的iCloud都属于这一类。

比较知名的SaaS公司有Salesforce、workday、Slack等。
层次拓扑结构如下:
在这里插入图片描述

2、虚拟化技术和容器技术

2.1 虚拟化技术:

在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。虚拟化分类:

(1) 硬件虚拟化
  • 英特尔虚拟化技术(IVT,Intel Virtualization
    Technology)是由英特尔开发的一种虚拟化技术,利用IVT可以对在系统上的客操作系统,通过虚拟机查看器(VMM,Virtual
    Machine Monitor)来虚拟一套硬件设备,以供客操作系统使用。这些技术以往在VMware与Virtual
    PC上都通过软件实现,而通过IVT的硬件支持可以加速此类软件的进行。
  • AMD虚拟化(AMD
    Virtualization),缩写为“AMD-V”,是AMD为64位的x86架构提供的虚拟化扩展的名称,但有时仍然会用“Pacifica”(AMD开发这项扩展时的内部项目代码)来指代它。
(2) 软件虚拟化:虚拟机

软件虚拟化技术(hypervisor)指的是软件层面的实现虚拟化的技术,可以像真实机器一样运行程序的计算机的软件实现。现在典型的代表有:Xen,KVM,WMware,Hyper-V
Xen和KVM,是开源免费的虚拟化软件;WMware是付费的虚拟化软件;Hyper-V微软的收费虚拟化技术。

基于虚拟化技术的单机版虚拟机管理软件:
KVM: linux的虚拟机基于KVM虚拟技术的单机版虚拟机管理软件。
VirtualBox:oracle公司的直接基于Intel VT及AMD-V的虚拟机管理软件。
Vmware workStation:Wmware公司的基于Wmware虚拟技术的虚拟机管理软件。

IaaS层虚拟化解决方案

  1. 裸机架构
    裸机架构属于深度定制,主机不会安装操作系统,???
    典型产品:WMware vSphere
    VMware vSphere是基于VMware虚拟化技术的虚拟化管理软件,目前在行业内来说算是*成熟,生产环境应用度*广的IaaS层虚拟化技术的解决方案。目前对整个集群的虚拟机监控管理也是*好的。(vSphere本身收费,而且监控软件还需要单独收费)。
  2. 寄居式架构
    典型产品:openstack,cloudStack
    Openstack是基于linux的IaaS层解决方案(支持多种虚拟化技术,比如KVM),使用python语言开发,是目前用户*多,影响*大的开源解决方案,得到了HP,IBM等知名厂商的大力支持,国内的虚拟化解决方案也大部分是基于openstack开发定制。主要运行在CentOS和ubuntuServer操作系统上。

    CloudStack是使用 java开发的基于linux的IaaS层解决方案(支持多种虚拟化技术,比如KVM),目前发展潜力非常不错,也得到了很多知名厂商的认可,不过相对起步比较晚,在国内的推广度也不如openstack。

2.2 容器技术

Linux Container(简称LXC)它是一种内核轻量级的操作系统层虚拟化技术。Linux Container主要由Namespace和Cgroup两大机制来保证实现。当前docker几乎成了容器技术的代名词,容器技术可以看作是专为解决虚拟机技术的缺点而生。容器技术就是使用宿主机的内核系统加上自身的文件系统。运行容器时是在使用宿主机的内核情况下加载文件系统,精简的文件系统可以小到100MB以内,所以比虚拟机自然要快很多。可以将容器看作是在内核上运行的独立代码单元,它们非常轻。因此占用的资源也少。
容器优点:启动快,资源占用小,移植性好
容器缺点:隔离性不好,共用宿主机的内核,底层能够访问。依赖宿主机内核所以容器的系统选择有限制。
容器技术的诞生其实主要解决了PAAS的层的技术实现。像OpenStack、Cloudstack这样的技术是解决IAAS层的问题。

2.3 虚拟机和容器的区别

时间上:虚拟机出现在先,容器出现在后;
架构上:每一个虚拟机启动的都是完整的操作系统,各个虚拟机可以使用不同的linux内核;而容器只是一个文件系统,所有的容器共用一个内核。

2.4 两种虚拟化架构

从虚拟化的实现方式来看,虚拟化架构主要有两种形式:宿主架构和裸金属架构
宿主架构中的虚拟机作为主机操作系统的一个进程来调度和管理
裸金属架构下则不存在主机操作系统,它是以Hypervisor直接运行在物理硬件之上,即使是有类似主机操作系统的父分区或Domain 0,也是作为裸金属架构下的虚拟机存在的。
宿主架构通常用于个人PC上的虚拟化,如WindowsVirtual PC,VMware Workstation,Virtual Box,Qemu等。
裸金属架构通常用于服务器的虚拟化,如VMWARE的ESX、微软的Hyper-V、开源的XEN和KVM

3、 搭建云平台涉及的技术框架

3.1 Openstack+KVM

KVM(Kernel-based Virtual Machine)是一个开源的系统虚拟化模块,它需要硬件支持,如Intel VT技术或者AMD V技术,是基于硬件的完全虚拟化,完全内置于Linux。每一个虚拟机都拥有自己的内核和文件系统,完全是一个独立的操作系统。而上图是两种虚拟化方式中的其中一种:半虚拟化——KVM。在目前的环境中,KVM虚拟化技术是使用率*高的技术。
虚拟化优点:隔离性强,所有的虚拟机都有自己的协议栈,各个虚拟机底层相互隔离。
虚拟化缺点:资源占用多,虚拟化技术本身占用资源,宿主机性能有10%左右的消耗。

Openstack使用python语言开发。其*初只是为了美国宇航局(Nebula运算平台)等官方和版官方机构提供IaaS基础设施即服务的软件,而其开源的特点让任何人都可以自行创建和提供云计算服务,这对于企业创建防火墙内私有云提供了有力的支持。所以说OpenStack 主要针对 Iaas 平台,以资源为中心,可以为上层的 PaaS 平台提供存储、网络、计算等资源。虚拟物理机这个动作,openstack无法完成,需要一个中间层例如KVM、Xen、Hyper-V等,来基于硬件做资源的虚拟化,然后此时openstack通过各种API接口来接管这些资源。OpenStack是基于KVM开发的,KVM常常成为默认的虚拟机管理程序。

(1)Openstack使用场景

场景一:安全和隔离。OpenStack适用于搭建私有云以及基于私有云的使用的场景。OpenStack底层使用了虚拟化技术,其基因中就有着隔离性好,稳定,部署灵活等特点。在OpenStack的成功案例中,云桌面是典型的例子。有不少的企业都已经将自己的生产环境搬到云端,例如企业上云,工作环境就是使用云桌面的形式。*是降低了设备成本,上云之前是每人一台主机,到现在几十个人使用一台服务器,如果考虑cpu,内存使用率,成本肯定降下来了。第二是安全,所有的数据都不是存储在身边,在一些安全系数高的行业中尤为重要。OpenStack一直受到金融行业的青睐,这里少不了看中OpenStack安全的特性。

场景二:提供基础设施。OpenStack是定位于laas平台的项目,其优点是能够提供虚拟机这种很底层的设施。如果在业务场景中很依赖虚拟机,例如编译内核,或者驱动开发等这些场景,那么OpenStack是很好的选择。

场景三:存储需求。存储是OpenStack另一个优势所在。OpenStack*个版本的项目组成就是存储和计算,在后期不断的开发中,存储作为一个重要的功能一直不断的完善和创新。如cinder块存储,ceph共享存储能。在存储需求很大的场景下,OpenStack能够提供高效,安全的存储方案,这也是为什么电信行业看好OpenStack的一个原因。

场景四:动态数据场景。即不需要反复地创建和销毁这些服务的运行环境。虚拟机优势在于稳定,那么OpenStack优势也在于运行稳定的项目。

3.2 Kubernetes(K8s)+docker

docker:docker起源于2013年3月,是基于LXC为基础构建的容器引擎,通过namespace和cgourp实现了资源隔离和调配,使用分层存储来构建镜像。它基于Google公司推出的Go语言实现。

Kubernetes是容器管理编排引擎,那么底层实现自然是容器技术。关于k8s,推荐网站https://www.kubernetes.org.cn/k8s

(1)K8S使用场景

场景一:Kubernetes适用于业务变化快,业务量未知的静态使用场景。所谓静态使用场景是指在其创建的容器中不会实时产生数据的场景。例如:网站架构,一次部署,长时间使用。特别是遇到一些线上业务量不确定的场景,Kubernetes能够动态扩展,灵活伸缩,从5W的并发量到10W的并发量,完全可以秒级处理。

场景二:需要反复地创建和销毁这些服务的运行环境。docker的优势就在于启动快速,消耗资源小。所以在需要频繁创建和销毁的场景中,Kubernetes是一个不错的选择。

场景三:需要业务模块化和可伸缩性:容器可以很容易地将应用程序的功能分解为单个组件,符合微服务架构的设计模式。

场景四:应用云化。将已有应用、要新开发的应用打造成云原生应用,发挥云平台的可扩展、弹性、高可用等特性,并借助PaaS层提供的API实现更高级的特性,比如自动恢复、定制化的弹性伸缩等。

场景五:微服务架构和API管理。服务拆分来抽象不同系统的权限控制和任务,以方便业务开发人员通过服务组合快速的创建企业应用。有的企业在没有对应的管理平台之前就已经将应用拆分成很多服务,如何部署这些微服务和进行API权限控制,则成了需要解决的问题,而Kubernetes代表的PaaS则是理想的选择。

(2)swarm与kubernetes的对比

docker swarm 与kubernetes都是集群管理工具,一个是docker原生自带,一个是谷歌项目下的容器编排工具。k8s特别擅长大规模docker的管理。为了解决复杂场景下应用的部署,k8s的组件要比swarm多得多,即便似乎功能类似的组件,k8s很多时候都在场景支持上要优化swarm

(3)从Borg到Kubernetes

在Google内部,容器技术已经应用了很多年,Borg系统运行管理着成千上万的容器应用,在它的支持下,无论是谷歌搜索、Gmail还是谷歌地图,可以轻而易举地从庞大的数据中心中获取技术资源来支撑服务运行。

Borg是集群的管理器,在它的系统中,运行着众多集群,而每个集群可由成千上万的服务器联接组成,Borg每时每刻都在处理来自众多应用程序所提交的成百上千的Job, 对这些Job进行接收、调度、启动、停止、重启和监控。
作为Google的竞争技术优势,Borg理所当然的被视为商业秘密隐藏起来,但当Tiwtter的工程师精心打造出属于自己的Borg系统(Mesos)时, Google也审时度势地推出了来源于自身技术理论的新的开源工具。

2014年6月,谷歌云计算专家埃里克·布鲁尔(Eric Brewer)在旧金山的发布会为这款新的开源工具揭牌,它的名字Kubernetes在希腊语中意思是船长或领航员,这也恰好与它在容器集群管理中的作用吻合,即作为装载了集装箱(Container)的众多货船的指挥者,负担着全局调度和运行监控的职责。

虽然Google推出Kubernetes的目的之一是推广其周边的计算引擎(Google Compute Engine)和谷歌应用引擎(Google App Engine)。但Kubernetes的出现能让更多的互联网企业可以享受到连接众多计算机成为集群资源池的好处。

Kubernetes对计算资源进行了更高层次的抽象,通过将容器进行细致的组合,将*终的应用服务交给用户。Kubernetes在模型建立之初就考虑了容器跨机连接的要求,支持多种网络解决方案,同时在Service层次构建集群范围的SDN网络。其目的是将服务发现和负载均衡放置到容器可达的范围,这种透明的方式便利了各个服务间的通信,并为微服务架构的实践提供了平台基础。而在Pod层次上,作为Kubernetes可操作的*小对象,其特征更是对微服务架构的原生支持。

Kubernetes项目来源于Borg,可以说是集结了Borg设计思想的精华,并且吸收了Borg系统中的经验和教训。

云计算为什么要学Docker容器 该怎样快速入门

云计算为什么要学Docker容器?该怎样快速入门?“云计算”作为未来网络甚至未来计算机行业的发展趋势,得到了广泛重视。越来越多的人想通过学习云计算收获高薪,很多人会发现学习云计算的过程中会接触到Docker容器,这究竟是为什么?如何快速高效的学好Docker容器、进而学好云计算呢?下面且看小编的分析。

%title插图%num

Docker是基于Linux 容器技术的开源项目,它使用Luinux的内核功能(如命名空间和控制组)在操作系统上创建容器。Docker容器具有四大优势:

1)使用简单:Docker 的口头禅是:“一次构建,处处运行”。它使得任何人(开发人员,运维,架构师和其他人)都可以更轻松的利用容器的优势来快速构建和测试可移植的应用程序。

2)速度:Docker容器非常轻量级和快速,因为容器只是运行在内核上的沙盒环境,因此它们占用的资源更少。与可能需要更多时间来创建的虚拟机相比,你可以在几秒钟内创建一个Docker容器。

3)Docker Hub:Docker Hub拥有数万个由社区构建的公共镜像,这些镜像都是随时可用的。Docker用户可以从日益丰富的Docker Hub生态中受益,可以把Docker Hub看作是“Docker 镜像的应用商店”。

4)模块化和可扩展性:Docker可以让你轻松地把应用程序按功能拆分为单个独立的容器。使用Docker,将这个容器链接在一起以创建你的应用程序将会变得更简单,同时在将来可以很轻松地扩展和更新单独的组件。

想要快速入门Docker容器技术,你需要了解Docker容器的安装与启动、镜像操作、应用部署、备份与迁移等知识。同时,Docker容器技术多是与云计算相结合,想要学好Docker找到好工作,参加专业的云计算培训班是明智的。

云计算开发技术有哪些 Kubernetes是怎么回事

云计算开发技术有哪些?Kubernetes是怎么回事?提及云计算,*大多数人的反应是这样的:它是一门新兴技术,是互联网发展的未来趋势,云计算核心技术比较多,学习不易。不过如果你真的想要学好云计算,也是有其规律可循的,从基础到进阶、由简单到复杂,不断的学习加练习,你就可以学好它。接下来就给大家简单讲解一下Kubernetes。

%title插图%num

Kubernetes,简称K8s,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署、规划、更新、维护的一种机制。

Kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术。

使用Kubernetes可以:自动化容器的部署和复制;随时扩展或收缩容器规模;将容器组织成组,并且提供容器间的负载均衡;很容易地升级应用程序容器的新版本;提供容器弹性,如果容器失效就替换它等等。

Kubernetes核心概念知识介绍

Pod-容器组

Pod是Kubernetes的基本操作单元,指定多个有关联容器(有调用关系依赖)构成一个Pod。Pod包含的容器运行在同一个Minion上(Worker Node),Pod的设计理念是支持多个容器在一个Pod中共享网络地址和文件系统。

Deployment-部署

Deployment是*近几个版本才有的,部署表示用户对K8s集群的一次更新操作。部署是一个比RS应用模式更广的API对象,可以创建、更新一个新的服务,或者滚动升级一个服务。

Job-任务

Job是K8s用来控制批处理型任务的API对象。批处理业务与长期伺服业务的主要区别是批处理业务的运行有头有尾,而长期伺服业务在用户不停止的情况下永远运行。Job管理的Pod根据用户的设置把任务成功完成就自动退出,成功完成的标志根据不同的spec.completions策略而不同。

DaemonSet-后台支撑服务集

长期伺服型和批处理型服务的核心在业务应用,后台支持服务的核心关注点是K8s集群中的节点(物理机或虚拟机),节点可能是所有集群节点也可能是通过nodeSelector选定的一些特定节点。典型的后台支持型服务包括、存储、日志和监控每个节点上支持K8s集群运行的服务。

PetSet-有状态服务集

K8s在1.3版本里发布了Alpha版的PetSet功能,RC和RS主要是控制提供无状态服务,其所控制的Pod的名字是随机设置的。PetSet中Pod的名字作用用于关联与该Pod对应的状态。

Replication Controller-复制控制器

RC是K8s集群中*早的保证Pod高可用的API对象,通过监控运行中的Pod来保证集群中运行指定数目的Pod副本。通过RC运行Pod比直接运行Pod更明智,RC会保证Pod的数量。

Replica Set-副本集

RS是新一代的RC,提供同样的高可用能力,RS 能支持更多种类的匹配模式。副本集一般不单独使用,而是作为Deployment的状态参数使用。

Service-服务

RC、RS和Deployment只是保证了支撑服务的微服务Pod的数量,但是没有解决如何访问这些服务,稳定地提供服务需要服务发现和负载均衡能力。

Docker容器该怎么使用

初学云计算要了解什么?Docker容器该怎么使用?Docker容器是一个开源的应用容器引擎,它能够自动执行重复性任务,例如搭建和配置开发环境,用户可以方便地创建和使用容器,还可以进行版本管理、复制、分享、修改。有很多初学云计算的人不清楚Docker容器的使用方法以及应用场景,接下来千锋小编就给大家简单分享一下。

%title插图%num

Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup、namespace以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。目前Docker容器的应用场景包括以下几种:

Docker部署Mongodb环境

1、远程获取Mongodb镜像

docker pull mongo

2、创建一个docker容器

docker run -p 27017:27017 -v /data/db –name docker_mongodb -d mongo

在上面的命令中,几个命令参数的详细解释如下:

-p 指定容器的端口映射(特殊说明:前面的是本机端口,后面的是容器的端口,添加-p参数主动将容器内部端口给暴漏出来,将服务器的27017端口映射到容器的27017端口,这样在外网就可通过 服务器的27017端口访问到我们的服务,Mongodb默认端口为27017。

-v 为设置容器的挂载目录,这里是将即本机中的目录挂载到容器中的/data/db中,作为Mongodb的存储目录

–name 为设置该容器的名称

-d 设置容器以守护进程方式运行

3、测试连接容器中的Mongodb

Docker部署Node项目完整流程(DockerFile实践)

1、使用Koa2初始化一个Node项目,通过Mongose中间件连接Mogodb数据库,实现一个基础接口Mogodb插入数据。

2、在项目根目录下创建.dockerignore文件,把不需要打包进Docker Image里的文件进行过滤:

# /usr/src/nodejs/dockerstudy/.dockerignore

.git

node_modules

3、在项目的根目录中创建Dockerfile文件,部署Node项目的时候,会有一个Dockerfile 文件配置。

# /usr/src/nodejs/hello-docker/Dockerfile

FROM node:10.0

# 在容器中创建一个目录

RUN mkdir -p /usr/src/nodejs/

# 定位到容器的工作目录

WORKDIR /usr/src/nodejs/

# RUN/COPY 是分层的,package.json 提前,只要没修改,就不会重新安装包

COPY package.json /usr/src/app/package.json

RUN cd /usr/src/app/

RUN npm i

# 把当前目录下的所有文件拷贝到 Image 的 /usr/src/nodejs/ 目录下

COPY . /usr/src/nodejs/

EXPOSE 3000

CMD npm start

4、代码环节暂且告一段落,将带有Dockerfile提交到github或gitlab等。

5、首先检出代码,把项目克隆到指定目录。

6、进入目录构建。

7、通过镜像dockerstudy创建一个容器并运行。

8、进入容器。

9、日志检查查看运行日志。

优雅部署方式 DockerCompose

Compose是Docker官方开源的一个项目,可以管理多个Docker容器组成一个应用,例如Web服务,除了服务本身还有数据库、Redis、Nginx等一系列相关联服务需要安装。有个Compose的支持,我们只需要定义一个YAML格式的配置文件(docker-compose.yml),来编写一个项目所需要的多个容器配置及调用关系,通过简单的命令即可同时开始或者关闭这些容器。Compose定位是定义和运行多个Docker容器的应用。

 

云计算中运用哪些技术

没有基础怎么学云计算?云计算中运用哪些技术?云计算石近年来比较火爆的技术之一,受国家政策支持以及互联网更迭推动,云计算应用领域进一步扩张,云计算人才进一步增多。有很多零基础的人想要转行学习云计算,却又担心学不会。下面且看小编为大家分析一下。

%title插图%num

对于没有任何基础的人来说,如果想学习云计算并从事相关的工作岗位,应该先从构建基础知识结构开始,然后加强动手实践能力的培养。而这些仅靠自己摸索学习是远远不够的,你需要系统的学习和较多的项目练习。

如果你想从事云计算运维岗位,通常需要具备三大块知识体系:

一、计算机网络技术;

二、虚拟化技术;

三、存储技术。

在云计算系统中运用了许多技术,其中以编程模型、数据管理技术、数据存储技术、虚拟化技术、云计算平台管理技术更为关键。掌握这些技术点,你可以胜任Linux运维工程师、数据库管理员、Linux高级运维工程师、Linux集群/网站架构师、Python运维开发师、云计算运维工程师、云计算架构师、云安全工程师、开发运维工程师、高级系统工程师、信息技术架构师、企业架构师等职位。

值得一提的是目前企业对于云计算从业者的动手实践能力要求比较高,因此跟随专业人士进行系统的学习很有必要。不过云计算就业工资多少还是要取决自己的能力有多强,对于转行或者刚刚开始学习云计算的新手而言,选择专业学习无疑是非常便捷走进云计算的方法。

如果你想快速掌握企业所需的云计算技术、积累更多云计算实战项目经验,可以选择专业的学习,胜任运维工程师、云计算工程师以及Web渗透测试工程师等岗位,让自己轻松实现高薪梦!

怎么学好Linux知识点

学云计算必备技能是什么?怎么学好Linux知识点?日志在排查文件的时候至关重要,因为Linux系统在运行的程序通常会把一些系统消息和错误消息写入对应的系统日志中。若是一旦出现问题,用户就可以通过查看日志来迅速定位,及时解决故障,所以学会查看日志文件也是在日常维护中很重要的操作。接下来小编就给大家分享Linux日志相关知识点。

%title插图%num

Linux系统日志的三种类型

1、内核及系统日志。这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统中有相当一部分程序会把日志文件交由rsyslog管理,因而这些程序使用的日志记录也具有相似的格式。

2、用户日志。这种日志数据用于记录Linux操作系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。

3、程序日志。有些应用程序会选择由自己独立管理一份日志文件,用于记录本程序运行过程中的各种事件信息,而不是交给rsyslog服务管理。由于这些程序只负责管理自己的日志文件,因此不同程序所使用的日志记录格式可能会存在较大的差异。

Linux系统用户日志相关命令

users#

users命令只是简单地输出当前登录的用户名称,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数。

who#

who命令用于报告当前登录到系统中的每个用户的信息。使用该命令,系统管理员可以查看当前系统存在哪些不合法用户,从而对其进行审计和处理。who的默认输出包括用户名、终端类型、登录日期及远程主机。

w#

w命令用于显示当前系统中的每个用户及其所运行的进程信息,比users、who命令的输出内容要丰富一些。

last#

last命令用于查询成功登录到系统的用户记录,*近的登录情况将显示在*前面。通过last命令可以及时掌握Linux主机的登录情况,若发现未经授权的用户登录过,则表示当前主机可能已被入侵。

lastb#

lastb命令用于查询登录失败的用户记录,如登录的用户名错误、密码不正确等情况都将记录在案。登录失败的情况属于安全事件,因为这表示可能有人在尝试猜解你的密码。

查看日志常用命令

tail:

-n 是显示行号;相当于nl命令;例子如下:

tail -100f test.log 实时监控100行日志

tail -n 10 test.log 查询日志尾部*后10行的日志;

tail -n +10 test.log 查询10行之后的所有日志;

head:

跟tail是相反的,tail是看后多少行日志,而head是查看日志文件的头多少行,例子如下:

head -n 10 test.log 查询日志文件中的头10行日志;

head -n -10 test.log 查询日志文件除了*后10行的其他所有日志;

cat:

tac是倒序查看,是cat单词反写;例子如下:

cat -n test.log |grep “debug” 查询关键字的日志(常用!~)

vim:

1、进入vim编辑模式:vim filename

2、输入“/关键字”,按enter键查找

3、查找下一个,按“n”即可

退出:按ESC键后,接着再输入:号时,vi会在屏幕的*下方等待我们输入命令

wq! 保存退出

q! 不保存退出

想了解更多Linux知识点或云计算运维工程师必备技能,你可以选择专业学习一下,跟着大牛讲师学习高端的技能,搭建更高的职业起点!

怎么成为一名合格的Linux运维工程师

随着云时代的到来,企业对运维工程师提出了新的要求。以某银行Linux运维工程师招聘为例,应聘者不仅要熟悉Linux、Windows等操作系统运维,掌握Oracle数据库、Weblogic中间件技术及网络技术;还要具有ITSM运维体系事件流程、变更流程、服务台管理经验。当然企业需求不同,要求应聘者具备的技能侧重点也不一样。下面为大家分享怎么成为一名合格的Linux运维工程师。

%title插图%num

1、扎实的基础。你需要掌握如何查看文件类型、查看系统运行状态、编辑文件、输出文件、创建用户、分配帐户权限、使用RAID技术和LVM磁盘阵列等*基础的知识。

2、脚本语言和操纵文本文件命令。shell脚本是*常见的、使用*多的脚本语言。sed 是一个精简的、非交互式的编辑器;awk是一种程序语言,擅长从格式化报文或从一个大的文本文件中抽取数据;grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行并打印出来。

3、熟悉数据库的使用。当前市场应用*多的数据库类型是MySQL和MariaDB,无论使用哪种数据库,你都得需要掌握数据的创建、删除、添加、查询、备份和恢复等基础命令。

4、监控zabbix与nagios。对于初学者,Nagios简单直观更容易上手,但zabbix界面更美观、功能更多。zabbix与nagios都能实现大规模监控,都足以满足用户需求。不过Zabbix是商业软件,Nagios是免费软件、插件组合多。

5、rsync备份数据。rsync具有保持原来文件的权限、时间、软硬链接等功能,可以镜像保存整个目录树和文件系统。有了备份无论设备出现任何故障,你都可以从备份当中还原出来原始数据。

Linux运维是一个融合多学科的综合性技术岗位,给运维工程师提供了一个很好的个人能力与技术的发展空间。在一个企业的招聘需求中,Linux运维工程师的项目经验是企业选拔人才的关键。因此*大多数人选择了参加系统专业的学习培训。

了解怎么成为一名合格的Linux运维工程师很重要,但更重要的是你需要掌握企业所需的技术、具备较多的实战经验。如果你想快速掌握企业所需的云计算技术,可以选择专业学习一下,让自己求职起点更高、就业速度更快!

Linux中高效编写Bash脚本的9个小技巧

Shell 脚本编程 是你在 Linux 下学习或练习编程的*简单的方式。尤其对 系统管理员要处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅举几例)更是必备技能。本文中,我们将分享 9个写出高效可靠的 bash 脚本的实用技巧。

 

1脚本中多写注释

这是不仅可应用于 shell 脚本程序中,也可用在其他所有类型的编程中的一种推荐做法。在脚本中作注释能帮你或别人翻阅你的脚本时了解脚本的不同部分所做的工作。

对于刚入门的人来说,注释用 # 号来定义。

 # TecMint 是浏览各类 Linux 文章的*佳站点

2当运行失败时使脚本退出

有时即使某些命令运行失败,bash 可能继续去执行脚本,这样就影响到脚本的其余部分(会*终导致逻辑错误)。用下面的行的方式在遇到命令失败时来退出脚本执行:

 # 如果命令运行失败让脚本退出执行 set -o errexit
   # 或 set -e

3当 Bash 用未声明变量时使脚本退出

Bash 也可能会使用能导致起逻辑错误的未声明的变量。因此用下面行的方式去通知 bash 当它尝试去用一个未声明变量时就退出脚本执行:

# 若有用未设置的变量即让脚本退出执行
 set -o nounset # 或 set -u

4 使用双引号来引用变量

当引用时(使用一个变量的值)用双引号有助于防止由于空格导致单词分割开和由于识别和扩展了通配符而导致的不必要匹配。

看看下面的例子:

        #!/bin/bash     
    # 若命令失败让脚本退出 
    set -o errexit  
    # 若未设置的变量被使用让脚本退出 
    set -o nounset 
    echo "Names without double quotes"  
    echo names="Tecmint FOSSMint Linusay" 
    for name in $names; 
    do   
        echo "$name" 
    done 
    
    echo echo "Names with double quotes"  
    echo 
    for name in "$names"; 
    do   
        echo "$name" 
    done exit 0

保存文件并退出,接着如下运行一下:

 $ ./names.sh

640?wx_fmt=png

在脚本中用双引号

5 在脚本中使用函数

除了非常小的脚本(只有几行代码),总是记得用函数来使代码模块化且使得脚本更可读和可重用。

写函数的语法如下所示:

  function check_root(){   
      command1;    
      command2; 
   } 
   # 或 
   check_root(){   
       command1;    
       command2; 
   }

写成单行代码时,每个命令后要用终止符号:

check_root(){ command1; command2; }

6 字符串比较时用 = 而不是 ==

注意 == 是 = 的同义词,因此仅用个单 = 来做字符串比较,例如:

1请输入标题value1=”tecmint.com”     
value2=”fossmint.com” 
if [ "$value1" = "$value2" ]

7 用 $(command)  来做代换

命令代换 是用这个命令的输出结果取代命令本身。用 $(command) 而不是引号 `command` 来做命令代换。

这种做法也是 shellcheck tool (可针对 shell 脚本显示警告和建议)所建议的。例如:

 user=`echo “$UID”` 
 user=$(echo “$UID”)

8用 readonly 来声明静态变量

静态变量不会改变;它的值一旦在脚本中定义后不能被修改:

 readonly passwd_file=”/etc/passwd” 
 readonly group_file=”/etc/group”

 

9环境变量用大写字母命名,而自定义变量用小写

所有的 bash 环境变量用大写字母去命名,因此用小写字母来命名你的自定义变量以避免变量名冲突:

  1. # 定义自定义变量用小写,而环境变量用大写
  2. nikto_file=”$HOME/Downloads/nikto-master/program/nikto.pl”
  3. perl “$nikto_file” -h “$1”
友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速