Hadoop大数据平台构建与应用教程 课件 项目1-4 Linux操作系统配置 -Mapreduce分布式计算编程实战_第1页
Hadoop大数据平台构建与应用教程 课件 项目1-4 Linux操作系统配置 -Mapreduce分布式计算编程实战_第2页
Hadoop大数据平台构建与应用教程 课件 项目1-4 Linux操作系统配置 -Mapreduce分布式计算编程实战_第3页
Hadoop大数据平台构建与应用教程 课件 项目1-4 Linux操作系统配置 -Mapreduce分布式计算编程实战_第4页
Hadoop大数据平台构建与应用教程 课件 项目1-4 Linux操作系统配置 -Mapreduce分布式计算编程实战_第5页
已阅读5页,还剩392页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目一Linux操作系统配置CONTENTS目录01

项目导读02

知识目标03

技能目标04

素质(思政)目标CONTENTS目录05

任务一Linux网络配置06

任务二Linux远程连接及安全配置07

项目总结08

项目考核项目导读01项目导读Hadoop集群搭建准备现在公司要求工程师小丁搭建Hadoop完全分布式集群,但是Hadoop集群是搭建在Linux操作系统里面,搭建之前需要先做一些Linux基础配置工作。本书虚拟机用的是VMware操作系统用的是CentOS7知识目标02知识目标

了解常见的虚拟机种类

了解常见的网络类型

了解SELinux概念

了解SSH协议技能目标03技能目标01掌握Linux网络配置02掌握SSH远程连接Linux技术03掌握关闭SELinuxSElinux技术素质(思政)目标04素质(思政)目标

培养严谨细致的工匠精神

厚植技术报国梦

培养不骄不躁的工匠心态任务一Linux网络配置05任务工单

任务场景虚拟机装好了,Linux操作系统也配置好了,主机名配置为master,公司要求该主机能够连接外网,访问百度

任务准备全班学生以4人一组,各组选出组长。请组长组员查找相关资料,并进行讨论和汇总问题1:虚拟机有几种网络模式问题2:NAT模式和桥接模式有什么区别必备知识技能:一、虚拟机介绍

虚拟机软件及应用虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,目前流行的虚拟机软件有VMware、VirtualBox和VirtualPC,它们都能在Windows系统上虚拟出多个计算机,每个虚拟计算机均可以独立运行,可以安装各种软件与应用等

虚拟机资源分配影响性能通俗说,虚拟机是将一台计算机虚拟化,使一台计算机具备多台计算机的功能,但整机性能也会被各个虚拟机所分配划分,因此划分虚拟机越多,各个虚拟机所分配的CPU、内存、存储空间资源就越少,因此组建虚拟机通常是配置越高越好

虚拟机的应用与游戏多开技巧虚拟机在现实中的作用还是相当大的,比如最简单我们计算机中没有光驱,如果要安装系统就可以使用虚拟机来安装系统,虚拟机内部拥有虚拟光驱,支持直接打开系统镜像文件安装系统,另外虚拟机技术在游戏爱好者朋友眼中也相当实用,比如一般一台计算机很多游戏不支持同时多开,但我们可以在计算机中多创建几个虚拟机,那么在虚拟机系统中即可单独再运行程序了,这样即可实现一台计算机同时多开同一游戏了必备知识技能:一、虚拟机介绍虚拟机在企业中的应用其实虚拟机在企业中应用非常广,由于服务器通常配置很高,因为很多服务器网络商为了满足中小站长需求,通常将一台服务器划分出多个虚拟机服务器,这样每个网站即可分配独立服务器资源一部分,并且互相不影响且可以配独立IP地址,大大解决了中小企业使用单独服务器费用过高的问题,目前购买的VPS服务器则均采用该技术,做过网站的朋友初期用到的虚拟空间也是该原理必备知识技能:二、虚拟机的三种网络连接模式桥接模式直接连接物理网络。将虚拟机的虚拟网络适配器与主机的物理网络适配器进行连接,虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问外部网络。简而言之,这就好像在局域网中添加了一台新的、独立的计算机一样。因此,虚拟机也会占用局域网中的一个IP地址,并且可以和其他终端进行相互访问必备知识技能:二、虚拟机的三种网络连接模式

NAT模式共享主机的IP地址。NAT是NetworkAddressTranslation的缩写意即网络地址转换。NAT模式也是VMware创建虚拟机的默认网络连接模式。使用NAT模式进行网络连接时,VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。虚拟机向外部网络发送的请求数据包,都会交由NAT网络适配器加上"特殊标记"并以主机的名义转发出去,外部网络返回的响应数据"包",也是先由主机接收,然后交由NAT网络适配器根据"特殊标记"进行识别并转发给对应的虚拟机,因此,虚拟机在外部网络中不必具有自己的IP地址。从外部网络来看,虚拟机和主机在共享一个IP地址,默认情况下,外部网络终端也无法访问到虚拟机此外,在一台主机上只允许有一个NAT模式的虚拟网络。因此,同一台主机上的多个采用NAT模式网络连接的虚拟机也是可以相互访问的前面我们已经提到,默认情况下,外部网络无法访问到虚拟机,不过我们也可以通过手动修改NAT设置实现端口转发功能,将外部网络发送到主机指定端口的数据转发到指定的虚拟机上。比如,我们在虚拟机的80端口上"建立"了一个站点,只要我们设置端口转发,将主机88端口上的数据转发给虚拟机的80端口,就可以让外部网络通过主机的88端口访问到虚拟机80端口上的站点必备知识技能:二、虚拟机的三种网络连接模式

仅主机模式

与主机共享专用网络。仅主机模式,是一种比NAT模式更加封闭网络连接模式,它将创建完全包含在主机中的专用网络。仅主机模式的虚拟网络适配器仅对主机可见,并在虚拟机和主机系统之间提供网络连接。相对于NAT模式而言,仅主机模式不具备NAT功能,因此在默认情况下,使用仅主机模式进行网络连接的虚拟机无法连接到Internet

在同一台主机上可以创建多个仅主机模式的虚拟网络,如果多台多个虚拟机处于同一个仅主机模式网络中,那么它们之间是可以相互通信的;如果它们处于不同的仅主机模式网络,则默认情况下无法进行相互通信任务实施:一、虚拟网络配置

配置VMnet8网络设置启动主机名为master的虚拟机(虚拟机版本建议17以上),选择“编辑”-〉“虚拟网络编辑器”命令,在打开的“虚拟网络编辑器”对话框选择“VMnet8”选项,配置“子网IP”为“”,配置“子网掩码”为“”,单击“确定”按钮,如图1-1-1所示注意:这里IP地址选择局域网IP段就可,本书选择/24子网段任务实施:二、有线网络配置

步骤1以root身份登录Linux,单击右上角的扬声器(1号圈位)图标,会弹出下拉菜单,单击下拉菜单左下角的设置图标(2号圈位),弹出“Settings”对话框,单击“Settings”对话框左下角选项卡“Network”(3号圈位)显示出“NewWork”选项卡,单击“Wired”选项卡栏目的设置图标(4号圈位),弹出“Wired”对话框,也就是有线网络设置主界面,如图1-1-3所示步骤2在“Wired”对话框,也就是有线网络设置主界面,如图1-1-3所示,单击“IPV4”选项卡,在“IPvV4Method”单选框选中“Automatic(DHCP)”单选按钮,单击“Apply”按钮步骤3打开Linux终端,检测是否能够ping通外网。能够ping通电子工业出版社官网,则说明Linux有外网。命令如下ping任务二Linux远程连接及安全配置06任务工单

任务场景工程师小丁下班回到家中,需要远程连接公司机房里的Linux服务器进行管理和操作,这个时候就需要使用终端模拟软件(SecureCRT等)来完成

任务准备全班学生以4人左右为一组,各组选出组长。请组长组员查找相关资料,并进行讨论和汇总问题1:Linux远程终端连接软件有哪些问题2:SELinux有什么作用必备知识技能:一、SSH服务

SSH简介SSH协议(SecureShell,安全外壳)是一种需要进行加密和认证的,用于远程访问及文件传输的网络安全协议。SSH功能类似于Telnet服务,但SSH基于加密和认证的特性可以为用户提供更强大的安全保障机制,在用户使用不安全的网络环境登录设备时,SSH能够有效保护设备不受IP地址欺诈、明文密码截取等攻击。目前存在SSHv1和SSHv2两个版本,二者互不兼容。相比SSHv1,SSHv2能够提供更高的性能和安全性

SSH基本结构SSH协议基于客户端/服务器结构,客户端可以使用SSH协议登录到服务器,进行远程访问或文件传输等操作

SSH基本交互流程SSH客户端和SSH服务器交互流程可以分为以下七个阶段:建立连接、版本号协商、密钥交换与算法协商、用户认证、会话请求、会话交互和会话关闭必备知识技能:一、SSH服务3.SSH基本交互流程

建立连接阶段a.服务器端监听TCP22号端口,等待客户端连接b.客户端向服务器22号端口发起TCP连接请求,与服务器建立TCP连接版本号协商阶段a.服务器端向客户端发送版本协商报文b.客户端接收并处理该报文后,回复服务端决定采用的协议版本号c.服务器端处理客户端回复的信息,确认协商版本成功与否密钥交换与算法协商阶段若版本号协商成功,进入密钥交换与算法协商a.服务器端与客户端互相向对端发送算法协商报文,根据本端支持的算法来确定最终使用的算法b.服务器端与客户端利用密钥交换算法、主机密钥等相关信息,生成会话密钥与会话ID,利用它们进行后续的用户认证以及数据传输的加解密必备知识技能:一、SSH服务用户认证阶段

加密通道建立起来之后,进入用户认证阶段a.客户端向服务器端发送认证请求b.服务器端对客户端进行认证。若认证成功,则进入下一阶段;若认证失败次数达到上限,则服务器端关闭连接会话请求阶段

a.认证成功后,客户端向服务器端发送会话请求b.服务器等待并处理客户端的会话请求,请求被处理成功之后,SSH进入会话交互阶段会话交互阶段

会话请求成功后,进入会话交互阶段,允许加密数据双向传送与处理a.客户端将需要执行的命令发送给服务器b.服务器接收到命令后进行解密、解析并处理c.服务器将处理结果加密后发给客户端d.客户端收到服务器消息后进行解密与处理会话关闭阶段

服务器和客户端断开连接并关闭会话必备知识技能:二、常用的SSH连接工具SecureCRT:安全远程连接工具SecureCRT,一款用于连接运行包括Windows、UNIX和VMS的远程系统的理想工具,通过使用内含的VCP命令行程序可以进行加密文件的传输。SecureCRT将SSH(SecureShell)的安全登录、数据传送性能和Windows终端仿真提供的可靠性、可用性和可配置性结合在一起Xshell:强大的终端模拟软件Xshell,一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及MicrosoftWindows平台的TELNET协议。Xshell通过Internet到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好地达到远程控制终端的目的。除此之外,其还有丰富的外观配色方案以及样式选择必备知识技能:二、常用的SSH连接工具

01Termius:Cross-PlatformSSHToolTermius,一款支持跨平台多终端的SSH工具,适用于Windows、MacOS、Linux、iPhone、iPad、Android等多个平台,并支持全平台账号数据的同步。用户可以选择免费版或付费版,免费版功能相对有限但足够满足基本需求。有些时候可以通过GitHub教育优惠,可以免费享受到付费版功能。Termius提供了便捷的SSH连接管理和操作,为用户提供了高效的远程访问解决方案。无论是个人用户还是专业人士,Termius都是一个实用且灵活的工具,帮助用户轻松管理和连接到远程服务器

02FinalShell:一体化服务器管理软件FinalShell,国产的一体化的服务器和网络管理软件,不仅作为SSH客户端,还承担着开发和运维工具的重要功能,完美满足用户在开发和运维方面的需求。其特色功能包括云端同步、本地化命令输入框、支持自动补全、命令历史记录、自定义命令参数等。FinalShell提供跨Windows、MacOS、Linux等多终端平台的支持,并提供免费版和高级版两个版本,高级版增加了一些监控功能,直观地查看和运维服务器提供帮助参考必备知识技能:二、常用的SSH连接工具

MobaXterm:RemoteWorkToolsetMobaXterm,一款功能丰富的Win客户端的SSH工具组合,专为程序员、网站管理员、IT管理员以及所有需要以更简单方式处理远程工作的用户量身定制。用户可以方便地获得各种重要的远程网络工具(如SSH、X11、RDP、VNC、FTP、MOSH等)和Unix命令(如bash、ls、cat、sed、grep、awk、rsync等),全部集成在一个开箱即用的可移植exe文件中TabbySSH:Multi-TabSSHClientTabbySSH是一款跨平台的SSH客户端应用程序。它提供了直观的用户界面和便捷的功能,使用户可以轻松连接和管理远程服务器。TabbySSH支持多标签页,用户可以同时管理多个SSH会话,提高工作效率。该软件还具有分屏功能,方便用户在同一窗口内同时查看和操作多个会话Xterminal:强大开发工具Xterminal,一款国产的强大开发工具,不仅仅是SSH客户端和终端工具,还集成了笔记、云端仓库、监控等功能。该工具具有快捷操作和命令提示等特性,为用户提供便捷的操作体验。Xterminal支持Windows、macOS和Linux等多个平台,使用户能够在不同操作系统上灵活地进行开发工作,并提供了全面的开发环境和工具,满足各种开发需求SSH工具很多,本书使用的是SecureCRT必备知识技能:三、SELinux介绍

SELinux简介安全增强型Linux(Security-EnhancedLinux)简称SELinux,它是一个Linux内核模块,也是Linux的一个安全子系统。SELinux主要由美国国家安全局开发。2.6及以上版本的Linux内核都已经集成了SELinux模块必备知识技能:三、SELinux介绍

2.SELinux基本概念主体(Subject)可以完全等同于进程对象(Object)被主体访问的资源。可以是文件、目录、端口、设备等。以下均把文件或者目录视为对象政策和规则(Policy&Rule)系统中通常有大量的文件和进程,为了节省时间和开销,通常我们只是选择性地对某些进程进行管制。而哪些进程需要管制、要怎么管制是由政策决定的。一套政策里面有多个规则。部分规则可以按照需求启用或禁用(以下把该类型的规则称为布尔型规则)规则是模块化、可扩展的。在安装新的应用程序时,应用程序可通过添加新的模块来添加规则。用户也可以手动地增减规则在CentOS7系统中,有三套政策,分别是a.targeted:对大部分网络服务进程进行管制。这是系统默认使用的政策b.minimum:以targeted为基础,仅对选定的网络服务进程进行管制。一般不用c.mls:多级安全保护。对所有的进程进行管制。这是最严格的政策,配置难度非常大。一般不用,除非对安全性有极高的要求政策可以在/etc/selinux/config中设定必备知识技能:三、SELinux介绍

安全上下文(SecurityContext)安全上下文是SELinux的核心。安全上下文我自己把它分为“进程安全上下”和“文件安全上下文”。一个“进程安全上下文”一般对应多个“文件安全上下文”。只有两者的安全上下文对应上了,进程才能访问文件。它们的对应关系由政策中的规则决定。文件安全上下文由文件创建的位置和创建文件的进程所决定。而且系统有一套默认值,用户也可以对默认值进行设定。需要注意的是,单纯的移动文件操作并不会改变文件的安全上下文必备知识技能:三、SELinux介绍

SELinux的工作模式SELinux有三种工作模式,分别是a.enforcing:强制模式。违反SELinux规则的行为将被阻止并记录到日志中b.permissive:宽容模式。违反SELinux规则的行为只会记录到日志中。一般为调试用c.disabled:关闭SELinuxSELinux工作模式可以在/etc/selinux/config中设定如果想从disabled切换到enforcing或者permissive的话,需要重启系统。反过来也一样。enforcing和permissive模式可以通过setenforce1或者setenforce0命令临时切换需要注意的是,如果系统已经在关闭SELinux的状态下运行了一段时间,在打开SELinux之后的第一次重启速度可能会比较慢,因为系统必须为磁盘中的文件创建安全上下文。另外,SELinux日志的记录需要借助auditd.service这个服务任务实施:一、SecureCRT远程连接Linux

步骤1启动主机名为master的虚拟机,打开SecureCRT软件,选择点击菜单“文件”-〉“快速连接”命令,打开“快速连接”对话框,如图1-2-1所示,在“主机名”文本框中填写master的IP地址,在“用户名”文本框中填入“root”,单击“连接”按钮,弹出“输入安全外壳密码”对话框

步骤2在“输入安全外壳密码”对话框中输入用户名“root”及其密码,选中“保存密码”复选框,如图1-2-2所示,单击“确定”按钮

步骤3:成功连接上master,如图1-2-3所示单击此处添加项正文任务实施:二、关闭SELinux

步骤1:暂时关闭SELinux。在上面连接上的SecureCRT界面或者Linux终端执行以下命令setenforce0步骤2永久关闭SELinux。编辑SELinux的config文件,在SecureCRT界面或者Linux终端输入命令vim/etc/selinux/config禁用SELINUX配置编辑config文件,找到“#SELINUX=enforcing“开头的行,删掉改行开头的“#”字符,修改配置项:SELINUX=disabled,如图1-2-4。未修改前默认的是“SELINUX=enforcing“项目总结07项目总结Linux网络配置演示项目本项目主要演示了Linux虚拟网络配置、有线网络配置、远程连接等操作。项目、任务里面穿插了相关的理论知识项目考核08填空题

虚拟机网络模式1.虚拟机有、、三种网络模式

SElinux配置文件参数SELINUX可能的取值有、单击此处添加项正文判断题

不建议使用SSH软件远程连接Linux。()

SSH是安全的。()

关闭SELinux会降低系统的安全性。()选择题单击此处添加正文

常见的SSH远程连接软件有()(多选题)

A.SecureCRTB.XshellC.FinalShellD.MobaXterm

常用的虚拟机软件有?()(多选题)

A.VMwareWorkstationB.VirtualBoxTHEEND谢谢项目二Hadoop集群搭建CONTENTS目录01

项目导读02

知识目标03

技能目标04

素质(思政)目标05

任务一Hadoop本地模式搭建CONTENTS目录06

任务二Hadoop伪分布式集群搭建07

任务三Hadoop完全分布式集群搭建08

项目总结09

项目考核项目导读01项目导读

Hadoop集群搭建指南工欲善其事,必先利其器,要想使用Hadoop做大数据分析,首先得掌握Hadoop大数据集群平台的搭建。Hadoop运行模式主要包括三种:本地模式、伪分布式模式以及完全分布式模式,本项目带领大家从零开始搭建Hadoop完全分布式集群知识目标02知识目标

了解Hadoop生态体系

熟悉Hadoop应用场景

熟悉XML文件

熟悉shell脚本

熟悉hosts文件知识目标熟悉Linux环境变量了解密钥公钥熟悉Hadoop的三种运行模式熟悉Hadoop日志技能目标03技能目标

掌握JDK安装

掌握SSH免密登录

掌握Hadoop本地模式配置

掌握Hadoop伪分布式模式配置

掌握Hadoop完全分布式集群搭建素质(思政)目标04素质(思政)目标

培养严谨细致的工匠精神

厚植技术报国梦

培养不骄不躁的工匠心态

培养保密意识

培养网络安全意识任务一Hadoop本地模式搭建05任务场景

本地运行模式下的Hadoop开发与调试在无需部署完整Hadoop集群,仅需进行开发与调试的场景下,可采用本地运行模式。此模式下,Hadoop将在单一Java虚拟机(JVM)进程中运行,通过本地存储系统与内存资源模拟分布式文件系统(HDFS)及MapReduce并行计算过程任务准备单击此处添加正文

学生技术研讨小组任务全体学生以4至5人为单位组建研讨小组,每组推选组长一名。组长需组织组员完成以下工作:1.查阅相关技术文献资料2.主持组内技术讨论3.汇总形成技术结论问题1:XML文件具备哪些技术特征单击此处添加项正文问题2:请阐述代码风格的核心要义及其在软件开发实践中的意义单击此处添加项正文问题3:请描述Java可执行文件的具体执行流程与方法单击此处添加项正文必备知识技能Hadoop生态体系

Hadoop概述Hadoop是由Apache软件基金会开发的分布式系统基础架构,旨在解决海量数据存储与分析计算问题。广义而言,Hadoop常指代更广泛的概念——Hadoop生态系统Hadoop生态体系:2.Hadoop发展历史Hadoop起源与发展Hadoop最初源于Lucene项目,由DougCutting主导开发的ApacheNutch项目,始于2002年,是ApacheLucene的子项目之一。该项目采用Java语言编写,旨在实现与Google类似的全文搜索功能,提供包含完整查询引擎和搜索引擎的全文检索引擎架构。2001年底,Lucene成为Apache基金会子项目。面对海量数据处理挑战,Lucene借鉴Google的解决方案,衍生出微型版Nutch框架Nutch性能提升的秘密2003至2004年期间,Google公开了部分GFS(Google文件系统)与MapReduce的核心设计思想。基于此,DougCutting团队耗费两年业余时间实现了分布式文件系统(DFS)和MapReduce机制,显著提升Nutch性能Hadoop的诞生与发展2005年,Hadoop作为Lucene子项目Nutch的组成部分引入Apache基金会。2006年3月,MapReduce和Nutch分布式文件系统(NDFS)被整合至独立项目Hadoop。其名称源自DougCutting儿子的玩具象,标志Hadoop正式诞生并快速发展Hadoop三大发行版本中Apache版本保持最原始基础架构,适用于入门学习;Cloudera版本在大型互联网企业应用广泛;Hortonworks版本则以完善文档著称Hadoop生态体系:3.Hadoop核心优势

高可靠性:预设计算单元与存储节点可能失效,通过维护多副本数据机制实现故障节点的任务重分配

高扩展性:支持在集群节点间分配任务数据,可便捷扩展至数千节点规模

高效性:基于MapReduce并行计算模型实现任务高速处理

高容错性:自动维护数据多副本存储,并对失败任务执行重新分配Hadoop生态体系:4.Hadoop生态体系Hadoop生态体系Hadoop体系作为计算框架,支持通过多机构构成的集群,采用简易编程模型实现大数据集的分布式处理。其具备良好扩展性,可从单服务器无缝扩展至数千服务器集群,各节点独立执行本地计算与存储。除依赖硬件高可用性外,软件库本身提供数据保护机制,并在应用层实现故障处理,从而在集群层面保障高可用服务HDFSHadoop分布式文件系统(HDFS)是生态体系的数据存储管理基础,具备高度容错能力,可检测并响应硬件故障YARNApacheHadoopYARN(YetAnotherResourceNegotiator)作为新型资源管理器,是通用资源管理系统,为上层应用提供统一的资源管理与调度服务,显著提升集群利用率、资源统一管理及数据共享能力MapReduce分布式计算框架MapReduce采用特定计算模型处理海量数据。Map阶段对数据集独立元素执行指定操作,生成键-值对形式的中间结果;Reduce阶段对相同键值的中间结果进行规约,输出最终结果Hive基于Hadoop的数据仓库工具,由Facebook开源,最初用于海量结构化日志数据统计分析。其类SQL查询语言(HQL)可将查询指令转化为MapReduce任务在Hadoop集群执行Hadoop生态体系:4.Hadoop生态体系

HBaseHBase是针对结构化数据的可伸缩、高可靠、高性能分布式列式动态模式数据库。区别于传统关系型数据库,其采用BigTable数据模型,优化稀疏排序映射表(键/值存储)。数据键由行关键字、列关键字及时间戳构成,支持大规模数据的实时随机读写访问,并可通过MapReduce进行数据处理,实现存储与并行计算的深度整合

ZooKeeper分布式协作服务,解决分布式环境下的统一命名、状态同步、集群管理及配置同步等数据协同问题

Sqoop结构化数据同步工具(SQL-to-Hadoop),主要实现传统数据库与Hadoop间的数据传输。其导入导出过程本质为MapReduce程序,充分应用了MapReduce的并行处理与容错特性

Pig基于Hadoop的数据流处理系统,通过专用数据流语言PigLatin将脚本转化为MapReduce任务,适用于离线分析场景

Mahout机器学习算法库,旨在创建可扩展的经典机器学习算法实现,助力开发者高效构建智能应用。涵盖聚类、分类、推荐引擎(协同过滤)及频繁项集挖掘等数据挖掘方法,并提供数据输入/输出工具及与数据库、MongoDB、Cassandra等存储系统的集成架构

Flume分布式高可靠日志收集系统(由Cloudera开源),具备高容错性、易定制及可扩展特性。其将数据产生、传输、处理至目标路径的过程抽象为数据流模型,支持定制化数据发送方以适配多协议数据采集Hadoop应用场景01实践案例表明2009年Facebook约30%非编程人员使用HiveQL(HQL)进行数据分析;淘宝搜索平台采用Hive实现自定义筛选功能;Pig支撑高级数据处理,如Twitter与LinkedIn的社交关系挖掘、Amazon式协同过滤推荐(淘宝商品推荐系统同理应用);Yahoo约40%的Hadoop作业通过Pig运行,涵盖垃圾邮件识别过滤及用户特征建模02知名科技专栏作家DerrickHarris基于多年Hadoop技术追踪,总结十大典型应用场景单击此处添加项正文Hadoop应用场景在线旅游全球80%在线旅游网站采用ClouderaHadoop发行版,典型案例包括Expedia等平台移动数据服务美国70%智能手机数据服务依托Hadoop实现,涵盖数据存储及运营商数据处理环节电子商务eBay为代表性实践者,国内电商企业亦具备深厚Hadoop技术储备能源勘探全美第二大石油公司Chevron利用Hadoop处理海洋地震数据,辅助油田定位勘探能源节约能源服务商Opower通过Hadoop分析用户电费数据,提供节能建议及费用预测基础设施管理支持从服务器、交换机等设备采集并分析运行数据,实现基础架构智能化管理Hadoop应用场景

卫星图像处理初创企业SkyboxImaging应用Hadoop存储处理卫星高清图像,探测地理变迁信息金融反欺诈金融服务及政府机构通过存储全量交易数据(含非结构化数据),识别异常活动以预防欺诈行为IT安全防护处理机器生成数据以识别恶意软件攻击及网络入侵行为,增强企业安全防护能力医疗健康IBMWatson等医疗系统以Hadoop集群为基础,结合语义分析技术辅助医护人员诊断决策Hadoop运行模式本地模式(独立模式)无需启用守护进程,所有程序于单一JVM内执行。数据存储于本地Linux文件系统,适用于学习及MapReduce程序调试伪分布式模式守护进程运行于单台物理机,模拟小规模集群环境。数据存储于HDFS文件系统完全分布式模式守护进程部署于多节点集群(企业级部署标准)。数据存储于HDFS文件系统,由多台服务器协同工作任务实施Linux系统配置

步骤1:修改主机名。切换至root用户,在master节点执行以下命令

hostnamectlset-hostnamemaster

步骤2:配置hosts文件,在三台虚拟机中分别编辑hosts文件,命令为

vim/etc/hostsLinux系统配置

hosts文件内容为

0master

注意:0为master的IP地址JDK环境部署(三台虚拟机均需执行)

LinuxJDK安装配置指南Linux上一般会预装OpenJDK,系统预装的OpenJDK需先行卸载,随后安装指定版本JDK并配置环境变量步骤1:卸载系统自带的OpenJDK以及相关的Java文件。在命令窗口键入java-version可以看到系统自带的OpenJDK版本信息,如图2-1-1所示步骤2:查看OpenJDK自带Java文件。在终端命令窗口键入rpm-qa|grepjavaJDK环境部署(三台虚拟机均需执行)

可以看到系统自带的OpenJDKJava相关文件,如图2-1-2上图文件中,文件名下面以“java-”开头的4个文件需要删除,分别是Java1.8Update161java-1.8.0-openjdk-headless-61-2.b14.el7.x86_64java-1.7.0-openjdk-71-.el7.x86_64java-1.8.0-openjdk-61-2.b14.el7.x86_64JavaOpenJDK1.8.0Update102java-1.8.0-openjdk-headless-02-4.b14.el7.x86_64JDK环境部署(三台虚拟机均需执行)

JavaOpenJDKUpdatesjava-1.7.0-openjdk-headless-71-.el7.x86_64java-1.7.0-openjdk-headless-11-.el7.x86_64下面这3个noarch文件可以不用删除python-javapackages-3.4.1-11.el7.noarchtzdata-java-2016g-2.el7.noarchjavapackages-tools-3.4.1-11.el7.noarch步骤3:删除OpenJDK自带Java文件。在终端命令窗口键入JDK环境部署(三台虚拟机均需执行)

卸载OpenJDKrpm-e--nodepsjava-1.7.0-openjdk-11-.el7.x86_64UninstallOpenJDK1.8rpm-e--nodepsjava-1.8.0-openjdk-02-4.b14.el7.x86_64卸载OpenJDK1.8rpm-e--nodepsjava-1.8.0-openjdk-headless-02-4.b14.el7.x86_64卸载OpenJDKrpm-e--nodepsjava-1.7.0-openjdk-headless-11-.el7.x86_64步骤4:检查是否已经删除成功,在命令窗口键入java-versionJDK环境部署(三台虚拟机均需执行)

执行结果如图2-1-3,代表Linux系统自带的OpenJDK已经删除成功了步骤5拷贝JDK,把事先下载好的JDK安装包用拖拽的方式,拷贝进/usr/local/src目录下(安装的JDK版本和IDEA里面的配置一样,因为IDEA自带JDK11)步骤6:解压JDK,把事先下载好的JDK安装包解压缩成目录,在命令窗口键入tar-zxvfjdk-8u144-linux-x64.tar.gz此时,usr/local/src目录下会有一个名为“jdk-8u144-linux-x64”的目录步骤7:删除JDK压缩包,在命令窗口键入JDK环境部署(三台虚拟机均需执行)

rm-rfjdk-8u144-linux-x64.tar.gz步骤8:配置JDK环境变量,在命令窗口键入vim/etc/profile粘贴内容至文本末尾进入文本编辑状态下,光标移动到文件最后一行,键盘按下字母“i”,进入插入状态,在文本的最后一行粘贴如下内容#javaenvironmentexportJAVA_HOME=/usr/local/src/jdk1.8.0_221JDK环境部署(三台虚拟机均需执行)

JavaEnvironmentConfigurationexportCLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jarexportPATH=$PATH:${JAVA_HOME}/binHOME,CentOS7是${JAVA_HOME}步骤9:让刚刚设置的环境变量生效,在命令窗口键入source/etc/profile步骤10:检查Java是否配置成功,在命令窗口键入java-versionJDK环境部署(三台虚拟机均需执行)命令执行结果如图2-1-4,即为Java配置成功安装Hadoop

步骤1把提前下载好的Hadoop安装包“hadoop-2.7.3.tar.gz”拷贝到/usr/local/src目录下步骤2:解压安装包。在命令窗口键入tar-zxvfhadoop-2.7.3.tar.gz步骤3:配置环境变量,编辑配置文件profile,在命令窗口键入vim/etc/profile在最后添加以下代码安装Hadoop#hadoopenvironmentexportHADOOP_HOME=/usr/local/src/hadoop-2.7.3exportPATH=$PATH:${HADOOP_HOME}/binexportPATH=$PATH:${HADOOP_HOME}/sbin步骤4:让修改后的profile文件立即生效安装Hadoop

source/etc/profile

步骤5:测试是否安装成功,在命令窗口键入

hadoopversion

命令执行结果如图2-1-5,即安装成功本地模式核心文件配置

步骤1在Hadoop主目录下,配置hadoop-env.sh文件,修改JAVA_HOME值为:exportJAVA_HOME=/usr/local/src/jdk1.8.0_221本地模式运行程序

01步骤1:在Hadoop主目录下,创建一个input目录,在命令窗口键入

02mkdirinput

03步骤2:将Hadoop的xml配置文件复制到input,在命令窗口键入

04cpetc/hadoop/*.xmlinput

05步骤3:执行share目录下的MapReduce程序,在命令窗口键入本地模式运行程序

01HadoopGrepExamplebin/hadoopjarshare/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jargrepinputoutput'dfs[a-z]+

02步骤4:查看输出结果,在命令窗口键入单击此处添加项正文

03catoutput/*单击此处添加项正文任务二Hadoop伪分布式集群搭建06任务场景伪分布式Hadoop开发测试开发人员需在本地设备进行开发与测试工作。在伪分布式模式下,Hadoop运行于单台设备,各组件以独立进程形式运行,可模拟真实分布式环境任务准备学生小组任务分配

全体学生以约4人为单位分组,每组推选组长。组长需组织组员完成以下工作:1.检索相关技术资料;2.组织研讨与观点汇总问题1:阐述对分布式系统的理解

单击此处添加项正文问题2:论述进程相关概念及其特性

单击此处添加项正文XML文件介绍

XML数据描述与传输XML(可扩展标记语言)是一种标记语言,用于描述数据的结构和含义。它被设计用来存储和传输数据,并可以用于创建自定义的标记语言。XML提供了一种简单而强大的方式来存储和传输结构化数据,通过其自我描述性和可扩展性,XML成为数据交换和配置文件的重要格式XML文档结构解析XML文档由一系列的元素组成,每个元素可以包含属性和文本内容。元素可以嵌套在其他元素中,以表示数据的层次结构。例如,一个XML文档可以用来描述一个购物车中的商品列表,每个商品都可以表示为一个元素,包含商品的名称、价格和数量等信息XML标签与属性详解在XML中,标签用于定义元素的名称,属性用于提供有关元素的附加信息。例如,在上面的购物车示例中,每个商品都可以使用一个名为“product”的标签来表示,并使用属性来指定商品的名称、价格和数量XML文档可以使用任何文本编辑器创建和编辑,也可以使用各种编程语言和工具进行处理和解析XML的用途是存储数据,作为系统之间传输数据的格式,作为项目的配置文件,保存有结构关系的数据XML与HTML的比较XML文档的标记可以随意扩展,HTML的标记是预定义好的;XML区分大小写,HTML不区分大小写;HTML主要是用来显示数据的,XML是用来保存数据的;HTML中,空格会自动过滤,而XML不会;HTML中可以有多个根节点,在XML里面只有一个XML基本语法

XML声明

XML声明应该位于文档的第一行,指示文档是XML文档,并定义版本和编码

<?xmlversion="1.0"encoding="UTF-8"XML基本语法:2.标签和元素单击此处添加正文

XML标签是成对出现的,用于包围元素内容,起始标签和结束标签应该匹配

<note>

<to>bob</to>XML基本语法:2.标签和元素

<heading>warning</heading>单击此处添加项正文

RemembertheUmbrella<body>Remembertobringanumbrellawithyou!</body>

</note>单击此处添加项正文XML基本语法

01属性元素可以拥有属性,属性提供了有关元素的额外信息<notedate="2024-06-01"><to>bob</to></note>

02注释XML中的注释以<!--开始,以-->结束<!--Thisisacomment-->

03规范性XML标签对大小写敏感。XML必须正确嵌套。XML文档必须有一个根元素

04空元素如果元素为空,可以使用空元素语法<line-break/>

05实体引用为了表示特殊字符,XML定义了一些实体引用:lt;表示小于号<,>表示大于号>&表示和号&'表示单引号',"表示双引号"LinuxShell脚本介绍

Shell脚本基础Shell脚本就是命令解析器,包含一系列命令序列的文本文件。当运行这个脚本文件时,文件中包含的命令序列将得到执行。如果有一系列经常使用的Linux命令,可以把它们存储在一个文件中,Shell可以读取这个文件并执行其中的命令,这样的文件被称为脚本文件。比如,现在有个名为test.sh的文件,其内容如下pwdwhoamiid首先,我们通过执行以下命令给test.sh一个可执行权限chmodu+xtest.shLinuxShell脚本介绍

接下来我们就可以执行命令,输入。test.sh,结果如下/root/scriptsrootuid=0(root)gid=0(root)groups=0(root)Shell脚本解析与执行shell脚本本质是一个文件,文件里面存放的是特定格式的指令,系统可以使用脚本解析器解析指令并执行,不需要编译,shell既是应用程序又是一种脚本语言使用命令cat/etc/shells查看当前系统支持的shell,在master上执行结果为LinuxShell脚本介绍

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologinLinuxShell脚本介绍

/bin/tcsh

/bin/csh

使用命令echo$SHELL查看当前shell,在master上执行结果为

/bin/bash编写Shell脚本:1.基本规则01脚本文件命名的后缀必须是“sh”单击此处添加项正文02Shell脚本Shebang行规范(2)Shell脚本第一行必须以‌Shebang(#!)‌开头,后接解释器的绝对路径。正确格式为#!bin/sh或#!bin/bash,通常为/bin/bash。这一行不是注释而是shell脚本的标识,表明这是一个脚本文件03脚本文件里以#作为语句的注释单击此处添加项正文04使用echo输出内容单击此处添加项正文05使用cat查看文件内容单击此处添加项正文编写Shell脚本:2.Shell变量Shell变量Shell变量没有数据类型,都是字符串,即使数值也是字符串创建变量命令:变量名称=值等号两边不能有空格。如果值有空格则必须用双引号或单引号引用起来#!bin/basha=10b="10"readonlyc=3#只读变量,不可修改引用变量命令:$变量名。以下三种引用变量的方式等价#!bin/basha=10echo$aecho${a}echo"${a}"运行脚本:输出三行10删除变量命令:unset变量名#!bin/basha=10unsetaecho$a因为中间删除了变量,所以不会输出任何东西从键盘读取变量命令:read变量。允许用户从键盘输入,实现程序交互#!bin/bashecho"Pleaseinputthefirstnumber:"readaecho"Thisnumberis:$a"编写Shell脚本:2.Shell变量

特殊变量在Shell脚本编程中,特殊变量是用来引用Shell环境或脚本执行过程中的一些特定值。这些特殊变量通常以美元符号($)开头,后面跟着一个或多个字母或符号来代表特定的含义。特殊变量如表2-2-1$@是参数列表,本质上是所有位置参数的列表集合,把参数看作一个数组,每个元素保持独立,保持每个参数的原始边界和完整性。$*是参数字符串,本质上是所有位置参数的字符串拼接,把参数看作一个长字符串,参数间用空格连接,将所有参数合并为单个字符串。$@和$*关键区别如表2-2-2特殊变量应用示例如下#!bin/bashecho"脚本运行的当前进程ID号:$$"echo"传递给脚本的参数个数:$#"echo"\$*不使用双引号:"forargin$*;doecho"参数:$arg"doneecho"\"\$*\"使用双引号:"forargin"$*";doecho"参数:$arg"doneecho"\$@不加双引号:"forargin$@;doecho"参数:[$arg]"doneecho"\"\$@\"加双引号:"forargin"$@";doecho"参数:[$arg]"done运行上述名为“bob.sh”的脚本并传递三个参数:bob.sharg1arg2arg3,输出结果如下脚本运行的当前进程ID号:3707传递给脚本的参数个数:3$*不使用双引号参数:arg1参数:arg2参数:arg3"$*"使用双引号参数:arg1arg2arg3$@不加双引号参数:[arg1]参数:[arg2]参数:[arg3]"$@"加双引号参数:[arg1]参数:[arg2]参数:[arg3]编写Shell脚本:3.系统(环境)变量

系统预定义的变量,一般在/etc/profile中进行定义。使用env查看所有系统变量

HOME:用户主目录PATH:文件搜索路径

PWD:用户当前工作目录

HOSTNAME:主机名字编写Shell脚本:3.系统(环境)变量单击此处添加正文

USER:指目前环境使用者的名称等。还有其他的系统变量单击此处添加项正文使用export命令可以把变量变为全局变量。格式为单击此处添加项正文exportvar单击此处添加项正文环境变量持久化方法变为全局变量后,就可以在多个文件里使用该变量。但是在命令行,使用export声明为全局变量后,只对当前的命令窗口有效。如果要想始终有效可以直接将环境变量添加到bashrc中去。使用vi~bashrc编辑,添加后,使用source~bashrc刷新来使得文件生效编写Shell脚本:4.重定向符

使用重定向符时,文件不存在则自动创建文件

#!bin/bash

echohello>1.c#将hello输入到1.c文件里

cat<1.c>2.c#从1.c文件里获取内容,输出到2.c文件里

cat2.c#查看2.c文件里的内容编写Shell脚本

管道符号‘|’管道操作符|用于连接左右两个命令,将|左边的命令执行结果(输出)作为|右边命令的输入编写Shell脚本:6.单双引号

使用单引号时,字符串内的内容会被原样输出,不进行任何解释或扩展双引号内字符串解释与扩展规则使用双引号时,字符串内的内容除了特定的特殊字符($、\和!)外,其他大部分内容都会被解释或扩展,特别是变量会被扩展为它们的值#!bin/bashb=10编写Shell脚本:6.单双引号

echo${b}#输出:10echo"${b}"#输出:10echo'${b}'#输出:${b}任务实施配置HDFS集群

步骤1进入Hadoop配置文件主目录,编辑hadoop-env.sh文件,修改JAVA_HOME路径,将以“#exportJAVA_HOME=”开头的那一行代码替换成如下exportJAVA_HOME=/usr/local/src/jdk1.8.0_221注意本书Hadoop配置文件路径为“usr/local/src/hadoop-2.7.3/etc/hadoop”步骤2:编辑core-site.xml文件,清空文件,在里面输入如下代码<configuration><!--指定HDFS中NameNode的地址-->配置HDFS集群<property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property><!--指定Hadoop运行时产生文件的存储目录--><property>配置HDFS集群

HadoopTemporaryDirectoryConfiguration<name>hadoop.tmp.dir</name><value>usr/local/src/hadoop-2.7.3/data/tmp</value></property></configuration>步骤3:编辑hdfs-site.xml,清空文件,在里面输入如下代码<configuration><property>配置HDFS集群

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>启动HDFS集群

步骤1:进入Hadoop配置主目录,在Hadoop主目录下,格式化NameNode,命令如下注意第一次启动时格式化,以后不用格式化。本书Hadoop主目录路径为“usr/local/src/hadoop-2.7.3”bin/hdfsnamenode-format步骤2:在Hadoop主目录下,启动Hadoop,命令如下sbin/start-dfs.sh步骤3:查看集群是否启动成功,命令为jps,有4个进程则启动成功,如图2-2-1启动HDFS集群

注意:jps是JDK中的命令,不是Linux命令。不安装JDK不能使用jps步骤4:Web端查看HDFS文件系统是否启动成功,网址为http://master的ip:50070/启动成功页面如图2-2-2注意格式化NameNode,会产生新的集群ID,导致NameNode和DataNode的集群ID不一致,集群找不到以往数据。所以,格式化NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode配置YARN集群

步骤1进入Hadoop配置文件主目录,编辑yarn-env.sh文件,配置其JAVA_HOME,修改JAVA_HOME路径,将以“#exportJAVA_HOME=”开头的那一行代码替换成如下exportJAVA_HOME=/usr/local/src/jdk1.8.0_221步骤2:编辑yarn-site.xml文件,清空文件,在里面输入如下代码<configuration><!--Reducer获取数据的方式--><property>配置YARN集群

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<!--指定YARN的ResourceManager的地址-->

<property>

<name>yarn.resourcemanager.hostname</name>配置YARN集群

<value>master</value></property></configuration>步骤3编辑mapred-env.sh文件,修改JAVA_HOME路径,将以“#exportJAVA_HOME=”开头的那一行代码替换成如下exportJAVA_HOME=/usr/local/src/jdk1.8.0_221步骤4:生成mapred-site.xml文件。在Hadoop主目录下执行如下命令配置YARN集群单击此处添加正文ConfigureMapRedSiteXMLcpetc/hadoop/mapred-site.xml.templateetc/hadoop/mapred-site.xml步骤5:清空文件mapred-site.xml,在里面输入如下代码单击此处添加项正文<configuration>单击此处添加项正文<!--指定MR运行在YARN上-->单击此处添加项正文<property>单击此处添加项正文<name></name>单击此处添加项正文配置YARN集群

<value>yarn</value>

</property>

</configuration>启动YARN集群注意:启动前必须保证NameNode和DataNode已经启动步骤1:在Hadoop主目录下,启动ResourceManager,命令如下sbin/yarn-daemon.shstartresourcemanager步骤2:启动NodeManager。命令如下sbin/yarn-daemon.shstartnodemanager启动YARN集群

步骤3:Web端查看YARN是否启动成功,网址为

http://master的ip:8088/cluster

启动成功页面如图2-2-3任务三Hadoop完全分布式集群搭建07任务工单

任务场景现在需要构建企业级Hadoop系统,Hadoop的守护进程分别运行在由多个主机搭建的集群上,不同节点担任不同的角色

任务准备全班学生以4人左右为一组,各组选出组长。请组长组织组员查找相关资料,并组织讨论和汇总问题1:Linux的shell脚本怎么编写问题2:请谈谈你对端口号的理解问题3:什么是SSH免密登录必备知识技能:一、Linuxhosts文件"hosts文件功能解释"hosts是一个没有扩展名的系统文件,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”。当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页版。hosts文件通常用于补充或取代网络中DNS的功能,与DNS不同的是,计算机的用户可以直接对hosts文件进行控制修改hosts文件实现域名解析hosts文件还可用于将IP地址映射到主机名。hosts文件位于/etc/目录下。通过修改hosts文件,我们可以手动指定某个域名(主机名)对应的IP地址,从而实现域名(主机名)解析。修改hosts文件需要root权限,在进行操作前请确认自己是否具备足够的权限。如果你不确定要添加哪些内容到hosts文件,请谨慎操作。修改完hosts文件后,请务必重启网络服务或者重启计算机以使修改生效必备知识技能:二、Linux环境变量

概念环境变量(environmentvariables),一般是指在操作系统中用来指定操作系统运行环境的一些参数。环境变量通常具有某些特殊用途,在系统当中通常具有全局特性(类似于程序中的全局变量)

运行程序要执行一个程序,首先要找到该程序在磁盘中的位置,那么如何去寻找该程序呢?当然是通过该程序的路径。问题来了,为什么系统命令也是程序,但是执行它们时我们不需要带上路径,而我们自己的程序需要带上路径(例如:执行当前目录下的可执行文件ta,需要用。ta,字符。是当前路径的意思,因此是执行当前路径的文件ta)。如果我们想让自己的程序在执行时也不需要带上路径(即,直接使用ta)应该怎样做方法1:将要执行的文件拷贝到系统的默认路径下(系统执行命令会在默认路径下寻找)。命令cp文件名/usr/bin/但是,我们不推荐这种方法,因为我们自己的程序未经过测试会污染操作系统的指令池。这种方法之所以可以实现,是因为系统的环境变量会帮助编译器查找对应的文件方法2:直接将程序路径添加到环境变量里。命令exportPATH=$PATH:#程序路径添加到“”后面在Linux中的bash(命令行)是可以定义变量的。Linux终端或者SecureCRT等远程连接工具登录的时候,系统会将。bash_profile执行一次,将环境变量放置在当前的shell中,所以一旦启动成功系统就会在内存中维护一个环境变量$PATH必备知识技能:二、Linux环境变量etc/profile文件Linux的/etc/profile文件为系统的每个用户设置环境变量信息,此文件的修改会影响到所有用户。登录Linux时,etc/profile、bash_profile等文件有一定的执行顺序,执行顺序为/etc/profile->(bash_profile|~bash_login|~profile)->bashrc->/etc/bashrc->~bash_logout必备知识技能:二、Linux环境变量

3.etc/profile文件执行顺序分析在刚登录Linux时,首先启动/etc/profile文件,然后再启动用户目录下的~bash_profile、bash_login或~profile文件中的其中一个,执行的顺序为:bash_profile、bash_login、profile。如果~bash_profile文件存在的话,一般还会执行~bashrc文件。因为在~bash_profile文件中一般会有下面的代码if[-f~bashrc];then.~bashrcfi~bashrc中,一般还会有以下代码if[-f/etc/bashrc];then.bashrcfi所以,bashrc会调用/etc/bashrc文件。最后,在退出shell时,还会执行~bash_logout文件必备知识技能:二、Linux环境变量

文件作用域1)/etc/profile此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置2)/etc/bashrc为每一个运行bashshell的用户执行此文件,当bashshell被打开时,该文件被读取3)~bash_profile每个用户都可使用该文件输入自己专用的shell信息,用户登录时,该文件仅执行一次!默认情况下,会执行用户的。bashrc文件4)~bashrc该文件包含专用于你的bashshell的bash信息,当登录以及每次打开新的shell时,该文件被读取5)~bash_logout当每次退出系统(退出bashshell)时,执行该文件。另外,etc/profile中设定的变量(全局)可以作用于任何用户,而~bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,它们是"父子"关系注意1)~bash_profile是交互式、login方式进入bash运行的2)~bashrc是交互式、non-login方式进入bash运行的通常二者设置大致相同,前者会调用后者必备知识技能:三、SSH免密登录

SSH免密登录原理SSH(SecureShell)是一种网络通信协议,用于在不安全的网络上进行加密的连接。为了避免登录时每次都要输入密码,可以使用SSH免密登录功能。免密登录的原理如下使用ssh-keygen命令生成A服务器的密钥对(一对密钥,公钥A和私钥A)将A服务器的公钥A拷贝给另外一台服务器B保存起来,这个过程也叫作授权授权完成后,A服务器再访问B服务器,会携带着用私钥A加密过的数据B服务器接收到请求数据后,使用公钥A解密必备知识技能:三、SSH免密登录

B服务器将解密成功的信息通过公钥A加密后返回给A服务器A服务器接收到数据后,用私钥A解密,解密成功,即“对暗号”成功,登录成功.ssh目录下(ssh)的文件功能如表2-3-1注意SSH免密登录仅适用于已经知道正确的私钥的情况。因此,必须小心管理好自己的私钥,不要与他人共享。当更换计算机、重装系统等情况时,需要重新生成新的密钥对,然后再将公钥添加到目标主机的authorized_keys文件中必备知识技能:四、Hadoop日志

Hadoop日志Hadoop存在多种日志文件,其中master上的日志文件记录全面信息,包括slave上的jobtracker与datanode也会将错误信息写到master中。而slave中的日志主要记录完成的task信息默认情况下,Hadoop日志保存在HADOOP_HOME/logs目录,但一般情况下建议重新指定路径,常用的是/var/log/hadoop,通过在hadoop-env.sh中增加以下一行来实现exportHADOOP_LOG_DIR=/var/log/hadoop以本书为例,slave为hadoop1和hadoop2,本书的完全分布式Hadoop主目录HADOOP_HOME值为/usr/local/src/hadoop-2.7.3/启动HDFS的时候就提示了日志路径,日志文件存储路径为:/usr/local/src/hadoop-2.7.3/logsnamenode日志文件名为hadoop-root-namenode-master.outdatanode日志文件名为hadoop-root-datanode-master.outhadoop-root-datanode-hadoop1.outhadoop-root-datanode-hadoop2.outsecondarynamenode日志文件名为hadoop-root-secondarynamenode-hadoop2.outresourcemanager日志文件名为yarn-root-resourcemanager-hadoop1.outnodemanager日志文件名为yarn-root-nodemanager-hadoop1.outyarn-root-nodemanager-hadoop1.outyarn-root-nodemanager-hadoop2.out必备知识技能:四、Hadoop日志master服务器上的日志master中主要有2种日志,分别以log与out作后缀,其中每一个守护进程都会产生这2个日志,如jobtracker、namenode、tasktracker、datanode均会分别产生这2个日志文件,这2个文件均是每天生成一个。log日志文件通过log4j记录的,大部分应用程序的日志消息都写到该日志文件中,故障诊断的首要步骤即为检查该文件,此日志文件最重要。out日志文件记录标准输出和标准错误日志,由于大多日志均使用log4j输出至log日志文件中,因此此文件很小或者为空,系统仅保留最新的5个日志。这2类日志的命名均包含用户名称、守护进程名和本地主机名等信息。tasktracker与datanode上的部分日志会保存在master中,方便出现问题时定位至具体服务器slave服务器上的日志每个tasktracker子进程都用log4j产生日志文件,这些日志记录了各个task的日志输出。tasktracker会记录它所运行的所有task的日志,默认目录为$HADOOP_LOG_DIR/userlogs,且每个job单独生成一个目录。slave上面还有datanode相关日志必备知识技能:四、Hadoop日志

审计日志

这个日志记录所有HDFS请求,默认是关闭的。一般写入namenode的日志中,在perties属性文件中设置以下选项

#AllauditeventsareloggedatINFOlevel

node.FSNamesystem.audit=WARN

由于审计信息在INFO级别实现的,因此将WARN改为INFO即可开启审计任务实施:一、HDFS集群配置

步骤1进入Hadoop配置文件主目录,配置core-site.xml,清空文件,在里面输入如下代码

<configuration>单击此处添加项正文

<!--指定HDFS中NameNode的地址-->单击此处添加项正文

<property>单击此处添加项正文

<name>fs.defaultFS</nam

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论