版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大数据基础项目1大数据概述项目2Linux操作系统的安装及常用命令项目3Hadoop集群部署项目4HDFS基础操作项目5HBase数据库的安装与应用项目6MapReduce应用开发项目7Hive数据仓库项目8Flume和Sqoop的安装与使用项目9数据可视化技术大数据概述项目1知识目标学习目标能力目标(1)了解大数据的基本概念(2)掌握大数据的基本特征(3)掌握大数据处理的基本流程(4)了解大数据和云计算及物联网的关系(5)掌握Hadoop生态系统各组件的基本功能(6)了解Hadoop在各行业的应用(1)能够描述大数据的基本特征(2)会复述大数据处理的基本流程(3)会复述Hadoop生态系统各组件的基本功能(4)能够描述Hadoop在各行业的应用任务1初识大数据大数据已成为社会各界研究及关注的焦点,本任务主要学习大数据的基本概念,其中包括大数据的基本特征、大数据的影响、大数据处理的基本流程以及大数据与云计算、物联网的关系。大数据(BigData),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产,如购物网站的消费记录,这些数据只有进行处理整合才有意义。任务1初识大数据大数据具有如下特征:(1)数据量大(2)种类和来源多样化(3)数据价值密度低(4)处理速度快任务1初识大数据(1)大数据对科学研究的影响(2)大数据对思维方式的影响(3)大数据对社会发展的影响(4)大数据对就业市场的影响(5)大数据对人才培养的影响任务1初识大数据任务1初识大数据云计算、大数据和物联网三者已经彼此渗透、相互融合,在很多应用场合都可以同时看到三者的身影,在未来,三者会继续相互促进、相互影响,更好地服务于社会生产和生活的各个领域。下面总结一下三者的区别与联系:(1)大数据、云计算和物联网的区别(2)大数据、云计算和物联网的联系任务2
认识Hadoop生态系统Hadoop是一个开发和运行处理大规模数据的软件平台,是Apache的一个用Java语言实现的开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。下面详细介绍一下Hadoop生态系统。Hadoop是一个能够对大量数据进行分布式处理的软件框架,具有可靠、高效、可伸缩的特点。Hadoop的核心是HDFS和MapReduce,Hadoop2.0还包括YARN。图1-3所示为Hadoop生态系统。任务2
认识Hadoop生态系统任务2
认识Hadoop生态系统1.在线旅游2.移动数据3.电子商4.能源发5.能源节省6.基础设施管理7.图像处理8.欺诈检测9.IT安全10.医疗保健感谢观看大数据基础Linux操作系统的安装及常用命令项目2知识目标学习目标能力目标(1)掌握VirtualBox的安装和Ubuntu系统的安装方法(2)掌握FTP软件FileZilla的安装方法(3)掌握Windows和Linux操作系统之间文件的传输方法(4)掌握Linux系统常用命令的使用方法(5)掌握vim编辑器的使用方法(1)能够安装Linux虚拟机(2)能够安装FTP软件(3)会使用FTP软件在Windows和Linux系统之间传输文件(4)会使用Linux系统常用命令(5)会使用vim编辑器任务1安装及配置Linux虚拟机Ubuntu是目前流行的Linux操作系统,是大数据平台必备的系统。本任务主要完成Ubuntu64位系统的安装和网络配置,并使用FTP软件FileZilla向Ubuntu传输文件。开机时按F2、F12、Del、Esc等键就可以进入BIOS,这就需要根据计算机的品牌和采用的BIOS才能确定到底是哪一个按键,当不知道你的BIOS或者主板的型号的时候,可以上百度查找。进入BIOS后,找到Configuration选项或者Security选项,然后选择Virtualization,如图2-1所示,或者IntelVirtualTechnology,就可以开始操作了。任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机任务1安装及配置Linux虚拟机(1)设置网络连接方式任务1安装及配置Linux虚拟机(1)设置网络连接方式任务1安装及配置Linux虚拟机(1)设置网络连接方式任务1安装及配置Linux虚拟机(1)设置网络连接方式任务1安装及配置Linux虚拟机(1)设置网络连接方式任务1安装及配置Linux虚拟机1.Ubuntu中Eclipse安装与配置安装Eclipse有三种方式:第一种是通过Ubuntu自带的程序安装功能安装Eclipse,应用程序→Ubuntu软件中心,搜索Eclipse安装即可。第二种方法是用命令:应用程序→附件→终端,然后输入相应命令行。第三种是进入官网下载。本教材采用第二种方式进行安装,按键盘上的“Ctrl+Alt+T”打开终端,输入:Sudoapt-getinstalleclipsesudoapt-getinstalleclipse-pdesudoapt-getinstalleclipse-jdt任务1安装及配置Linux虚拟机2.Ubuntu安装MySQL在Ubuntu上安装MySQL非常简单,只需要几条命令就可以完成。(1)sudoapt-getinstallmysql-server(2)apt-getinstallmysql-client(3)sudoapt-getinstalllibmysqlclient-dev任务1安装及配置Linux虚拟机2.Ubuntu安装MySQL任务2Linux系统常用命令1.使用pwd命令2.使用cd命令3.使用ls命令4.使用cat命令5.使用mkdir命令6.使用cp命令7.使用rm命令8.使用mv命令9.使用tar文件解压缩命令任务2Linux系统常用命令vim编辑器是Linux系统上著名的文本/代码编辑器,是vi编辑器的加强版,可以帮助我们完成文件的创建和代码的编写。默认情况下,Linux系统中已安装好vim编辑器。如果未安装,可以在系统中打开终端,执行下面命令完成:sudoapt-getinstallvim执行上面命令以后,如果屏幕上出现信息要求进行确认,在提示处输入“y”即可。感谢观看大数据基础Hadoop集群部署项目3知识目标学习目标能力目标(1)掌握Hadoop的安装(2)掌握Hadoop的配置(3)掌握Hadoop的启动和Web监控(4)掌握wordcount实例(1)能够安装Hadoop(2)能够配置Hadoop伪分布模式集群(3)能够启动Hadoop和使用Web监控集群(4)能够使用Hadoop附带的实例wordcount任务1Hadoop安装与配置Hadoop是大数据发展的领军平台,应该说是Hadoop把大数据推上高潮的,所以要学习大数据,就应该从Hadoop开始。本任务通过在Ubuntu系统上搭建Hadoop环境,对配置好的环境进行测试。第一步:按Ctrl+Alt+T打开终端窗口,输入如下命令创建新用户:sudouseradd-mhadoop-s/bin/bash这条命令创建了可以登录的hadoop用户,并使用/bin/bash作为shell任务1Hadoop安装与配置第二步:接着使用如下命令设置密码,可简单设置为hadoop,按提示输入两次密码:sudopasswdhadoop可为hadoop用户增加管理员权限,以方便部署,避免一些权限问题:sudoadduserhadoopsudo第三步:注销当前用户(单击屏幕右上角的齿轮,选择注销),返回登录界面。在登录界面中选择刚创建的hadoop用户进行登录。第四步:用hadoop用户登录后,更新一下apt,后续我们使用apt安装软件,如果没更新可能有一些软件安装不了。按Ctrl+Alt+T打开终端窗口,执行如下命令:sudoapt-getupdate任务1Hadoop安装与配置集群、单节点模式都需要用到SSH登录(类似于远程登录,可以登录某台Linux主机,并且在上面运行命令)。下面安装SSH,配置SSH无密码登录。第一步:在终端输入如下命令,安装SSHserver:sudoapt-getinstallopenssh-server第二步:使用如下命令登录本机:sshlocalhost此时会有提示(SSH首次登录提示),输入yes。然后按提示输入密码hadoop,这样就登录到本机了。任务1Hadoop安装与配置第三步:退出刚才的SSH,回到原先的终端窗口,然后利用ssh-keygen生成密钥,并将密钥加入授权中:exit#退出刚才的sshlocalhostcd~/.ssh/#若没有该目录,请先执行一次sshlocalhostssh-keygen-trsa#会有提示,都按Enter键就可以cat./id_rsa.pub>>./authorized_keys#加入授权用sshlocalhost命令,这时无须输入密码就可以直接登录了,如图3-1所示。任务1Hadoop安装与配置任务1Hadoop安装与配置第一步:输入如下命令,安装java-jdk:sudoapt-getinstalldefault-jredefault-jdk上述安装过程需要访问网络下载相关文件,请保持联网状态。第二步:配置JAVA_HOME环境变量,在Linux终端中输入如下命令,打开当前登录用户的环境变量配置文件.bashrc:vim~/.bashrc在文件最前面添加如下单独一行(注意,“=”前后不能有空格),然后保存退出:exportJAVA_HOME=/usr/lib/jvm/default-java任务1Hadoop安装与配置第三步:执行如下命令,让环境变量立即生效:source~/.bashrc#使变量设置生效第四步:执行如下命令,检验一下是否设置正确:echo$JAVA_HOME#检验变量值java-version$JAVA_HOME/bin/java-version#与直接执行java-version一样至此,就成功安装了Java环境。下面就可以进入Hadoop的安装。任务1Hadoop安装与配置第一步:Hadoop安装包下载,本教材采用的是hadoop-2.6.0,下载完存放在~/下载/目录下。第二步:Hadoop安装包解压,输入如下命令,将Hadoop安装至/usr/local/中。sudotar-zxf~/下载/hadoop-2.6.0.tar.gz-C/usr/localcd/usr/local/sudomv./hadoop-2.6.0/./hadoop#将文件夹名改为hadoopsudochown-Rhadoop./hadoop#修改文件权限第三步:输入如下命令,将Hadoop安装目录添加到系统环境变量(~/.bashrc)中。vim~/.bashrc在文件最前面添加如下两行,并在exportPATH=$PATH:的后面添加“/usr/任务1Hadoop安装与配置local/hadoop/bin:/usr/local/hadoop/sbin”,然后保存退出。exportHADOOP_HOME=/usr/local/hadoopexportHADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native执行source~/.bashrc使变量设置生效。第四步:检查Hadoop是否可用,输入如下命令,如果Hadoop安装成功,则会显示Hadoop版本信息。cd/usr/local/hadoop./bin/hadoopversion任务1Hadoop安装与配置伪分布模式是指在一台机器上启动Hadoop需要的所有进程进行工作。该节点既作为NameNode也作为DataNode,同时,读取的是HDFS中的文件。伪分布模式需要修改core-site.xml和hdfs-site.xml两个配置文件,这两个文件均位于/usr/local/hadoop/etc/hadoop/中。第一步:配置hadoop核心文件core-site.xml。第二步:修改HDFS文件hdfs-site.xml。第三步:将mapred-site.xml.template修改为mapred-site.xml第四步:配置YARN文件yarn.xm。任务2Hadoop的启动和测试本任务主要学习格式化NameNode,启动HDFS和YARN,测试HDFS和YARN是否启动成功,学习用Web界面监控Hadoop集群。(1)格式化NameNode./bin/hdfsnamenode-format说明:格式化NameNode只有第一次才使用,如果对已有的集群做格式化操作,集群上的数据会全部丢失。(2)启动HDFS./sbin/start-dfs.sh启动完成后,可以通过命令jps来判断是否成功,若成功启动则会列出如下进程“NameNode”“DataNode”和“SecondaryNameNode”,如图3-2所示。任务2Hadoop的启动和测试任务2Hadoop的启动和测试任务2Hadoop的启动和测试(3)启动YARN任务2Hadoop的启动和测试(3)启动YARN任务3Hadoop伪分布模式实例Hadoop附带了丰富的例子(运
./bin/hadoopjar./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar可以看到所有例子),包括wordcount、terasort、join、grep等。我们选择运行wordcount例子,将input文件夹中的hello.txt作为输入文件,统计每个单词出现的次数,最后输出结果到output文件夹中。hello.txt内容:hellowordhellohadoophellowelcomehadoop第一步:在HDFS中创建用户目录和输入文件目录。第二步:将/usr/local/hadoop/data/input/hello.txt作为输入文件复制到分布式文件系统/user/hadoop/input/目录中。任务3Hadoop伪分布模式实例第三步:通过如下命令查看文件列表。第四步:执行jar程序,完成单词统计。第五步:查看运行结果,如图3-6所示。感谢观看大数据基础HDFS基础操作项目4知识目标学习目标能力目标(1)了解HDFS的相关概念(2)掌握HDFS的工作原理(3)掌握HDFS的Shell操作(4)掌握HDFS中的API编程(1)会描述HDFS中的名称节点、数据节点等基本概念(2)能复述HDFS的工作原理(3)能够使用Shell命令操作HDFS文件和目录(4)能够编写简单的Java应用程序对HDFS文件和目录进行操作任务1
认识HDFSHDFS是HadoopDistributedFileSystem的简称,是Hadoop抽象文件系统的一种实现。本任务需要掌握HDFS工作原理以及常用的Shell命令。HDFS的文件分布在集群机器上,如图4-1所示,同时提供副本进行容错及可靠性保证。例如客户端写入、读取文件的直接操作都是分布在集群各个机器上的,没有单点性能压力。任务1
认识HDFS1.设计原则(1)适用场景●存储非常大的文件●采用流式的数据访问方式●运行于商业硬件上任务1
认识HDFS1.设计原则(2)不适用场景●低延时的数据访问●大量小文件●多方读写,需要任意的文件修改任务1
认识HDFS2.存储原理分布式文件系统管理的文件是被切块存储在若干台datanode服务器上的。分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,这些节点分为两类,一类叫“主节点”(MasterNode)或者也被称为“名称节点”(NameNode),另一类叫“从节点”(SlaveNode)或者也被称为“数据节点”(DataNode)。HDFS提供了一个统一的目录树来定位HDFS中的文件,客户端访问文件时只要指定目录树的路径即可,不用关心文件的具体物理位置。任务1
认识HDFS2.存储原理任务1
认识HDFS2.存储原理任务1
认识HDFS任务1
认识HDFS任务2
上传文件到HDFS目录本节的任务是把存储在本地系统中原始数据myfile.txt上传到Hadoop伪分布集群中的HDFS目录user/hadoop/input中。要完成本任务,必须要对HDFS文件系统有一定的了解,需要在HDFS中为hadoop用户创建一个目录,才能完成相应的操作。任务2
上传文件到HDFS目录1.创建目录user/hadoop/input任务2
上传文件到HDFS目录创建了新目录/user/hadoop/input后,接下来要向这个目录上传文件,可以查看hdfsdfs的命令帮助,发现HDFS上传文件的命令主要有以下几个:[-copyFromLocal[-f][-p][-l]<localsrc>...<dst>][-moveFromLocal<localsrc>...<dst>][-put<localsrc>...<dst>]主要参数<localsrc>为本地文件路径,<dst>为上传的目标路径。任务2
上传文件到HDFS目录任务2
上传文件到HDFS目录通过查看hdfsdfs的命令帮助,发现HDFS查看文件内容的命令主要有cat和text命令。其命令格式如下:[-cat[-p][-ignoreCrc]<src>...][-text[-p][-ignoreCrc]<src>...]其中<src>为HDFS文件系统路径。这里只演示cat命令,text命令读者可以自己动手操作。例如需要查看4.2.2中上传的myfile.txt文件的内容时,可以输入如下命令:./bin/hdfsdfs-catinput/myfile.txt任务2
上传文件到HDFS目录在HDFS中删除文件或目录所使用的命令有区别,一个是rm命令,一个是rm-r命令。删除指定文件或空目录使用rm命令,递归删除指定目录下的所有目录和文件使用rm-r命令。例如:删除input命令下的myfile.txt文件可以输入如下命令,然后通过ls命令验证是否删除。./bin/hdfsdfs-rminput/myfile.txt运行结果如图4-10所示。任务2
上传文件到HDFS目录任务3
编写HDFS程序HDFS除了使用Shell命令的方式访问HDFS上的数据,Hadoop还为其提供了JavaAPI的方式来操作HDFS上的数据。在实际开发大数据应用时都是以代码的方式来提供交互的,所以通过使用JavaAPI编程的方式来操作HDFS数据也必须要掌握。本任务需要通过JavaAPI编写向HDFS中读写文件以及判断HDFS中文件是否存在,并通过编译和安装部署应用程序。任务3
编写HDFS程序1.创建项目编写程序之前首先要创建Java项目,本教材使用的都是Eclipse集成环境,如果系统未安装,需要在Linux系统中安装Eclipse。第一次打开Eclipse,需要填写Workspace(工作空间),用来保存程序所在的位置。任务3
编写HDFS程序任务3
编写HDFS程序任务3
编写HDFS程序任务3
编写HDFS程序2在项目中添加相应的JAR包任务3
编写HDFS程序2在项目中添加相应的JAR包任务3
编写HDFS程序2在项目中添加相应的JAR包任务3
编写HDFS程序3.编写应用程序任务3
编写HDFS程序3.编写应用程序任务3
编写HDFS程序3.编写应用程序任务3
编写HDFS程序4.编译运行程序在开始编译运行程序之前,请一定确保Hadoop已经启动运行,如果还没有启动,则需要打开一个Linux终端,输入以下命令启动Hadoop:cd/usr/local/hadoop./sbin/start-dfs.sh现在就可以编译运行上面编写的代码。可以直接单击Eclipse工作界面上部的运行程序的快捷按钮,当把鼠标移动到该按钮上时,在弹出的菜单中选择“Run”开始运行程序。程序运行结束后,会在底部的“Console”面板中显示运行结果信息,显示README.txt文件的内容,如图4-21所示。同时,“Console”面板中还会显示一些类似“log4j:WARN...”的警告信息。任务3
编写HDFS程序5.部署应用程序把Java应用程序生成JAR包,部署到Hadoop平台上运行,首先需要在Hadoop安装目录下新建一个存放的JAR包目录HDFSJavaAPP,用来存放编写的Hadoop应用程序,可以在Linux的终端中执行如下命令:cd/usr/local/hadoopmkdirHDFSJavaAPP然后,请在Eclipse工作界面左侧的“PackageExplorer”面板中,在工程名称“HDFSReadFile”上右击,在弹出的菜单中选择“Export”,在弹出的窗口中选择“RunnableJARfile”,如图4-22所示。然后,单击“Next”按钮。任务3
编写HDFS程序任务3
编写HDFS程序任务3
编写HDFS程序任务3
编写HDFS程序任务3
编写HDFS程序publicclassHDFSWriteFile{ publicstaticvoidmain(String[]args){ try{ Configurationconf=newConfiguration(); conf.set(″fs.defaultFS″,″hdfs://localhost:9000″); conf.set(″fs.hdfs.impl″,″org.apache.hadoop.hdfs.DistributedFileSystem″); FileSystemfs=FileSystem.get(conf); byte[]buff=″Helloworld″.getBytes();//要写入的内容 Stringfilename=″test″;//要写入的文件名 FSDataOutputStreamos=fs.create(newPath(filename)); os.write(buff,0,buff.length); System.out.println(″Create:″+filename);
任务3
编写HDFS程序 os.close(); fs.close(); }catch(Exceptione){ e.printStackTrace(); } }}任务3
编写HDFS程序按照4.3.1中的方法在Eclipse中添加项目FileIfExists,添加程序所需要的JAR包。在FileIfExists中新建类FileIfExists,编写如下代码:importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoop.fs.Path;importjava.util.Scanner;publicclassFileIfExists{publicstaticvoidmain(String[]args){ try{ System.out.println(″请输入文件名件名:″); Scannerscan=newScanner(System.in); Stringfilename=scan.nextLine();
任务3
编写HDFS程序 Configurationconf=newConfiguration(); conf.set(″fs.defaultFS″,″hdfs://localhost:9000″); conf.set(″fs.hdfs.impl″,″org.apache.hadoop.hdfs.DistributedFileSystem″); FileSystemfs=FileSystem.get(conf); if(fs.exists(newPath(filename))){ System.out.println(″文件存在″); }else{ System.out.println(″文件不存在″); } fs.close(); }catch(Exceptione){ e.printStackTrace(); } }}感谢观看大数据基础HBase数据库的安装与应用项目5知识目标学习目标能力目标(1)了解HBase数据库的特点(2)熟悉HBase逻辑视图、概念视图和物理视图的关系(3)掌握HBase体系架构(4)掌握HBaseShell常用命令(5)掌握HBaseAPI编程(1)能够安装部署HBase分布式数据库系统(2)能够使用HBaseShell命令创建、修改和删除表(3)能够使用HBaseShell命令插入和删除数据(4)能够使用HBaseAPI完成对HBase的编程任务1
认识HBaseHBase是一个分布式的、面向列的开源数据库,是一种比较流行的NoSQL数据库,由Google的Bigtable演变而来。HBase在Hadoop上提供了类似Bigtable的能力,主要解决非关系型数据库存储问题,本任务主要学习HBase的特点、逻辑视图、概念视图、物理视图,深刻理解HBase的体系架构等基本概念。任务1
认识HBaseHBase是一种构建在HDFS之上的分布式、面向列、多版本、非关系型的数据库。HBase具有如下特点:大:一个表可以有上亿行,上百万列。面向列:面向列(组)的存储和权限控制,列(组)独立检索。稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计得非常稀疏。无模式:每一行都有一个可以排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列。数据多版本:每个单元中的数据可以有多个版本,默认情况下,版本号自动分配,版本号就是单元格插入时的时间戳。数据类型单一:HBase中的数据都是字符串,没有类型,存储在HBase上的都是字节数组。任务1
认识HBase1.HBase逻辑视图HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳。每一个值都是一个未经解释的字符串,没有任何数据类型。以表的形式存储数据,表由行和列组成。列划分为若干个列族,如图5-1所示。任务1
认识HBase2.概念视图任务1
认识HBase3.物理视图任务1
认识HBase3.物理视图任务1
认识HBaseHBase是基于Hadoop的开源分布式数据库。体系架构为master/slave架构。主节点运行的服务称为HMaster,从节点服务称为HRegionServer,底层采用HDFS存储数据。HMaster负责管理多个HRegionServer、恢复HReigionServer故障等。HRegionServer负责多个区域的管理及相应客户端请求。HRegionServer还负责区域划分并通知HMster有了新的子区域。HBase需要ZooKeeper集群服务,默认情况下,它管理一个ZooKeeper实例,作为“权威机构”。ZooKeeper会记录HMaster位置、根目录表位置等核心数据,此时若有HRegionServer崩溃,就可以通过ZooKeeper来进行分配协调。此外,当HBaseClient连接到HBase时,其必须首先访问ZooKeeper,在获取HMaster、HRegionServer、-ROOT-等核心数据后,方可连接到HRegionServer,如图5-2所示。任务1
认识HBase任务2HBase开发环境安装与配置第一步:从官网上下载安装包hbase-1.1.5-bin.tar.gz,并通过上传软件上传至相应目录,解压至路径/usr/local,命令如下:sudotar-zxf~/下载/hbase-1.1.5-bin.tar.gz-C/usr/local第二步:将解压的文件名hbase-1.1.5改为hbase,以方便使用,命令如下:sudomv/usr/local/hbase-1.1.5/usr/local/hbase第三步:配置环境变量,将hbase目录下的bin目录添加到PATH中,这样,启动HBase就无须到usr/local/hbase目录下,大大地方便了HBase的使用。下面的部分还是切换到了/usr/local/hbase目录操作,有助于初学者理解运行过程,熟练之后可以不必切换。任务2HBase开发环境安装与配置任务2HBase开发环境安装与配置第四步:添加HBase权限,在终端输入如下命令:cd/usr/localsudochown-Rhadoop./hbase#将hbase目录下的所有文件的所有者改为hadoop,hadoop是当前用户的用户名第五步:查看HBase版本,确定HBase安装成功与否,若成功则在终端输入如下命令:./hbase/bin/hbaseversion命令执行后,出现如图5-4所示输出消息,表示HBase已经安装成功。任务2HBase开发环境安装与配置任务2HBase开发环境安装与配置第六步:配置hbase-env.sh文件,hbase-env位于/usr/local/hbase/conf/目录下。配置Java环境变量,并添加配置HBASE_MANAGES_ZK为true,用vim命令打开并编辑hbase-env.sh,命令如下:vi/usr/local/hbase/conf/hbase-env.sh任务2HBase开发环境安装与配置HBase伪分布模式与单机模式一样也是在单个主机上运行的,分别是HMaster、HRegionServer和ZooKeeper,和单机模式不同的是,它们均在单独的进程中,伪分布模式下每个HBase守护进程会作为一个独立的进程运行。其具体操作如下:第一步:配置hbase-env.sh文件,配置JAVA_HOME,HBASE_CLASSPATH,HBASE_MANAGES_ZK。hbase-env.sh文件位于/usr/local/hbase/conf/目录下。在终端输入如下命令:vim/usr/local/hbase/conf/hbase-env.sh任务2HBase开发环境安装与配置第二步:配置hbase-site.xml文件,该文件位于/usr/local/hbase/conf/目录下,用vim命令打开并编辑hbase-site.xml,在终端输入如下命令:vim/usr/local/hbase/conf/hbase-site.xml第三步:启动Hadoop。首先登录SSH,再切换目录至/usr/local/hadoop,再启动Hadoop。第四步:测试运行HBase。第五步:在HDFS中检查HBase文件。第六步:进入HBaseShell界面。任务3
使用HBaseShell管理分布式数据库任务3
使用HBaseShell管理分布式数据库任务3
使用HBaseShell管理分布式数据库任务3
使用HBaseShell管理分布式数据库1.HBase中创建表创建表语法:create'表名','列名称1','列名称2',...,'列名称N'查看表结构语法:describe'表名'其中,表名、列名都必须要用单引号括起来并用逗号分隔,以下相同。案例1:在HBase中用create命令创建表student,列族为Sname、Ssex、Sage、Sdept、course并查看表的结构。命令:create'student','Sname','Ssex','Sage','Sdept','course'任务3
使用HBaseShell管理分布式数据库2.添加数据HBase中用put命令添加数据,注意:一次只能为一个表的一行数据的一个列,也就是一个单元格添加一个数据,所以直接用Shell命令插入数据效率很低,在实际应用中,一般都是利用编程操作数据。添加数据语法:put'表名','行键','列键','值','时间戳‘命令:put'student','95001','course:math','80'任务3
使用HBaseShell管理分布式数据库3.获取数据get用于获取行的所有单元或者指定某个单元。语法如下:get'表名','行键',{COLUMNS=>['列族名1','列族名2',...],参数名=>参数值...}get'表名','行键',{COLUMN=>['列族名1','列族名2',...],参数名=>参数值...}任务3
使用HBaseShell管理分布式数据库4.扫描表scan用于进行全表单元扫描。语法如下:scan'表名',{COLUMNS=>['列族名1','列族名2',...],参数名=>参数值...}大括号内的内容为扫描条件,如不指定则查询所有数据。与get相比少了一个行键。scan查找的目标是全表的某个列族、列键,而get查找的目标是某个列族、列键。任务3
使用HBaseShell管理分布式数据库5.删除数据在HBase中用delete以及deleteall命令进行删除数据操作,它们的区别是:delete用于删除一个数据,是put的反向操作。deleteall操作用于删除一行数据。删除行中的某个列值语法:delete'表名','行键','列键','时间戳'删除行语法:deleteall'表名','行键','时间戳'任务3
使用HBaseShell管理分布式数据库6.删除表HBase表分为两种状态:Enabled和Disabled,分别表示可用和不可用。删除表需要两步,第一步先让该表不可用,第二步删除表。使表无效语法:disable'表名'删除表语法:drop'表名'任务3
使用HBaseShell管理分布式数据库7.查询表历史数据在添加数据时,HBase会自动为添加的数据添加一个时间戳,故在需要修改数据时,只需直接添加数据,HBase即会生成一个新的版本,从而完成“改”操作,旧的版本依旧保留,系统会定时回收垃圾数据,只留下最新的几个版本,保存的版本数可以在创建表的时候指定。查询表的历史版本,需要两步。第一步:在创建表的时候,指定保存的版本数,插入数据然后更新数据,使其产生历史版本数据。注意:这里插入数据和更新数据都是用put命令。第二步:查询时,指定查询的历史版本数。默认会查询出最新的数据。任务3
使用HBaseShell管理分布式数据库8.退出HBase数据库表操作最后退出数据库操作,输入exit命令即可,注意:这里退出HBase数据库是退出对数据库表的操作,而不是停止启动HBase数据库后台运行。命令:exit掌握了以上命令,我们就可以对HBase数据库表进行基本的管理了,对数据表进行增加、删除、修改和查询操作。而对于表单元的修改实质上是增加操作,HBase保留了单元的多个版本,默认查询最新版本。任务4HBase编程HBase是用Java编写的,因此它提供JavaAPI和HBase通信。JavaAPI是与HBase通信的最快方法。HBase的JavaAPI可以让我们在IDE环境下对HBase进行编程,首先需要完成Eclipse下的HBase编程环境配置,然后结合HBase相关JavaAPI开发HBase应用程序。HBase编程环境依赖HBase、Hadoop、ZooKeeper及其他第三方相关jar文件。第一步:启动Hadoop,启动HBase。在终端输入如下命令:cd/usr/local/hadoop./sbin/start-dfs.shcd/usr/local/hbase./bin/start-hbase.sh任务4HBase编程第二步:创建普通Java工程。打开Eclipse,新建Java工程,如图5-25所示,然后单击“Next”按钮。任务4HBase编程第三步:导入jar包到工程,构成路径。任务4HBase编程第四步:编写代码。任务4HBase编程下面给出HBase数据库存储管理提供的主要类,涵盖用于管理表的任务。HBaseAdmin、HBaseConfiguration、Connection、HTable、HTableDescriptor、Put、Get、Scanner。任务4HBase编程感谢观看大数据基础MapReduce应用开发项目6知识目标学习目标能力目标(1)了解MapReduce的概念(2)掌握MapReduce编程模型(3)掌握MapReduce工作流程(4)掌握MapReduce数据类型(5)掌握Hadoop-Eclipse-Plugin插件的安装(6)掌握MapReduce环境的配置(7)掌握英语单词统计程序的编写(8)掌握气象数据分析程序的编写(1)能够复述MapReduce数据模型和工作流程(2)能够复述MapReduce数据类型(3)能够安装Hadoop-Eclipse-Plugin插件(4)能够配置MapReduce环境(5)能够编写英语单词统计程序(6)能够编写气象数据分析程序任务1
认识MapReduce编程模型MapReduce是Hadoop生态系统的核心组件,要运用MapReduce进行编程,就必须掌握MapReduce编程模型。本任务主要学习什么是MapReduce,MapReduce是用来做什么的,MapReduce设计理念及优缺点,MapReduce编程模型和数据类型。任务1
认识MapReduce编程模型MapReduce是一个编程模型,是Google提出的,基于该模型能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的、具有容错能力的方式并行地处理上TB级别的海量数据集。主要用于搜索领域,解决离线海量数据的计算问题,不能实现对实时数据的分析和处理。1.MapReduce是什么任务1
认识MapReduce编程模型MapReduce采用“分而治之,迭代汇总”策略,一个存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理。下面简单举一个案例帮助大家理解什么是MapReduce。如果老师收取作业,可能会让课代表收齐,而课代表把这个任务分给各个小组的组长,各小组组长收齐作业后会交给课代表,课代表收齐后再交给老师。这就是一个典型的MapReduce过程,在这个例子里面,课代表把任务分给组长称为Map过程,各组长把作业收齐后交给班长的过程就是Reduce过程。2.MapReduce做什么任务1
认识MapReduce编程模型MapReduce设计的一个理念就是“计算向数据靠拢”,而不是“数据向计算靠拢”,因为移动数据需要大量的网络传输开销。在一个大的集群中,MapReduce框架会将Map程序就近地在HDFS数据节点所在的节点运行,将计算节点和存储节点放在一起运行,从而减少了节点之间的数据移动开销。同时,MapReduce适合大文件的处理,对小文件的处理效率不是很高。3.MapReduce设计理念任务1
认识MapReduce编程模型优点:易于编程、良好的扩展性、高容错性、适合PB级以上海量数据的离线处理。缺点:据规模在TB/PB以下的应用不适合;实时响应的应用不适合;主要数据结构是图或网络的应用不适合;纯数学计算的应用不适合。4.MapReduce优缺点任务1
认识MapReduce编程模型MapReduce是一种非常简单又非常强大的编程模型。简单在于其编程模型只包含Map和Reduce两个过程,Map的主输入一对<key,value>值,经过Map计算后输出一对<key,value>值;然后将相同key合并,形成;再将这个输入Reduce,经过计算输出0个或多个对。1.MapReduce模型简介任务1
认识MapReduce编程模型下面介绍一下MapReduce的工作流程,首先是MapReduce经过SplitInput输入分片决定map的个数,然后用Record记录key和value。(1)Map任务处理的执行步骤(2)Reduce任务处理的执行步骤(3)在Map端执行详细过程(4)在Reduce端执行详细过程2.MapReduce工作流程任务1
认识MapReduce编程模型任务2
使用Eclipse创建MapReduce工程第一步:因为项目2已经安装过Eclipse,这里就不需要重新安装了,要在Eclipse上编译和运行MapReduce程序,需要安装Hadoop-Eclipse-Plugin,可以从官网直接下载。第二步:下载后,将release中的hadoop-eclipse-kepler-plugin-2.6.0.jar复制到Eclipse安装目录的plugins文件夹中,运行eclipse-clean,重启Eclipse即可(添加插件后只需要运行一次该命令,以后按照正常方式启动就行了)。unzip-qo~/hadoop2x-eclipse-plugin-master.zip-d~/下载#解压到~/下载中sudocp~/下载/hadoop2x-eclipse-plugin-master/release/hadoop-eclipse-plugin2.6.0.jar/usr/lib/eclipse/plugins/#复制到Eclipse安装目录的plugins目录下/usr/lib/eclipse/eclipse-clean#添加插件后需要用这种方式使插件生效任务2
使用Eclipse创建MapReduce工程任务2
使用Eclipse创建MapReduce工程任务2
使用Eclipse创建MapReduce工程第一步:在终端开启Hadoop,命令为:cd/usr/local/hadoop和./sbin/start-dfs.sh。选择Eclipse界面Window菜单下的Preference。任务2
使用Eclipse创建MapReduce工程第二步:切换Map/Reduce开发视图,在Window菜单下选择“OpenPerspective”下的Other,在弹出的窗体中选择“Map/Reduce”选项,如图6-4所示。任务2
使用Eclipse创建MapReduce工程第三步:建立与Hadoop集群的连接,单击Eclipse软件右上角的“Map/ReduceLocations”面板,在面板中右击,在弹出的快捷菜单中选择“NewHadooplocation”,如图6-5所示。任务2
使用Eclipse创建MapReduce工程第四步:在弹出来的General选项面板中,General的设置要与Hadoop的配置一致。一般两个Host值是一样的,因为是伪分布模式,所以填写localhost即可,因为在项目3中设置了core-site.xml文件中的fs.defaultFS为hdfs://localhost:9000,则DFSMaster的Port要改为9000。Map/Reduce(V2)Master的Port使用默认值,Locationname随意填写。最后的设置如图6-6所示。任务2
使用Eclipse创建MapReduce工程任务3MapReduce实现英语单词统计首先,检查单词计数是否可以使用MapReduce进行处理。因为在单词计数程序任务中,不同单词的出现次数之间不存在相关性,相互独立,所以可以把不同的单词分发给不同的机器进行并行处理。因此,可以采用MapReduce来实现单词计数的统计任务。其次,确定MapReduce程序的设计思路。把文件内容分解成许多个单词,然后把所有相同的单词聚集到一起,计算出每个单词出现的次数。最后,确定MapReduce程序的执行过程。把一个大的文件切分成许多个分片,将每个分片输入不同节点,形成不同的Map任务。每个Map任务分别负责完成从不同的文件块中解析出的所有的单词。任务3MapReduce实现英语单词统计下面对单词计数进行更详细的讲解。(1)将文件拆分成多个分片。(2)将分割好的<key,value>对交给用户定义的Map方法进行处理,生成新的<key,value>对,如图6-9所示。任务3MapReduce实现英语单词统计(3)在实际应用中,每个输入分片在经过Map函数分解以后都会生成大量类似<Hello,1>的中间结果,为了减少网络传输开销,框架会把Map方法输出的<key,value>对按照key值进行排序,并执行Combine过程,将key值相同的value值累加,得到Map的最终输出结果,如图6-10所示。任务3MapReduce实现英语单词统计(4)Reduce先对从Map端接收的数据进行排序,再交由用户自定义的Reduce方法进行处理,得到新的<key,value>对,并作为结果输出,如图6-11所示。任务3MapReduce实现英语单词统计编写MapReduce程序的第一个任务就是编写Map程序。在单词计数任务中,Map需要完成的任务就是把输入的文本数据按单词进行拆分,然后以特定的键值对的形式进行输出。(1)编写Map程序(2)编写Reduce程序(3)编写main函数(4)核心代码包(5)在Eclipse中实现单词统计任务4MapReduce实现气象数据分析气象数据分析主要是查找数据中每年最高温度、最低温度和平均温度,是比较典型的MapReduce例子。本任务主要完成天气预报数据分析,使用Eclipse工具编写分析程序,完成年度最高温度、最低温度以及平均温度。气象数据集下载地址为:ftp://ftp.ncdc./pub/data/noaa,由于数据量比较大,本任务只提供了数据样例,表6-8是对数据格式的解释。任务4MapReduce实现气象数据分析(1)Mapper阶段任务Mapper阶段主要是对文本进行切割,提取时间和温度形成<日期,<温度,温度,温度>>的键值对。(2)Reducer阶段任务Reducer阶段任务就是从<日期,<温度,温度,……,温度>>中遍历温度并查找最大值、最小值和平均值。(3)在Eclipse中实现气象数据分析感谢观看大数据基础Hive数据仓库项目7知识目标学习目标能力目标(1)了解Hive概念(2)了解Hive架构及组件(3)掌握Hive系统安装与配置(4)掌握Hive数据类型(5)掌握Hive创建数据库和表(6)掌握Hive数据的导入和导出(1)能够复述Hive架构及组件(2)能够安装与配置Hive(3)能够使用HiveShell命令创建数据库和表(4)能够使用HiveShell命令导入导出数据、查询数据(5)能够使用HiveShell命令解决简单的问题任务1
认识HiveHive是一个数据仓库基础工具,在Hadoop中用来处理结构化数据。它架构在Hadoop之上,便于大数据查询和分析,提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。最初,Hive由Facebook开发,后来由Apache软件基金会开发,并进一步将它作为一个开源项目。Hive没有专门的数据格式。Hive可以很好地工作在Thrift之上,控制分隔符,也允许用户指定数据格式。Hive不适用于在线事务处理。它最适用于传统的数据仓库任务。1.什么是Hive任务1
认识Hive基于Hive友好的接口:操作接口采用类SQL的语法,提供快速开发的能力;更低的学习成本:避免了写MapReduce,减少开发人员的学习成本;更好的扩展性:可自由扩展集群规模而无须重启服务,还支持用户自定义函数。2.为什么使用Hive任务1
认识HiveHive是Hoop生态圈中的一个工具,是基于Hadoop的一个数据仓库工具。该项目是由Facebook于2008年开源,贡献给了Apache基金会。Hive可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL(HQL)查询功能,可以将HQL语句转换为MapReduce任务进行运行,Hive实现了简单的MapReduce统计,解决了需要使用Java开发MapReduce的应用,降低了开发与学习成本。3.Hive与Hadoop的关系任务1
认识Hive从图7-1看出Hive的内部架构由四部分组成:任务1
认识HiveCLI,Shell终端命令行(CommandLineInterface),采用交互形式使用Hive命令行与Hive进行交互,最常用的。JDBC/ODBC,是Hive的基于JDBC操作提供的客户端,用户(开发员、运维人员)通过这连接至HiveServer服务。WebUI,通过浏览器访问Hive。1.用户接口:CLI,JDBC/ODBC,WebUI任务1
认识HiveThriftServer提供了一种能力,让用户可以使用多种不同的语言来操作Hive。Trift是Facebook开发的一个软件框架,可以用来进行可扩展且跨语言的服务的开发,Hive集成了该服务,能让不同的编程语言调用Hive的接口。2.跨语言服务任务1
认识Hive驱动器Driver包括编译器Compiler、优化器Optimizer、执行器Executer。Driver组件完成HQL查询语句从词法分析,语法分析,编译,优化,以及逻辑执行计划的生成。生成的逻辑执行计划存储在HDFS中,并随后由MapReduce调用执行。Hive的核心是驱动引擎,驱动引擎由四部分组成:(1)解释器:解释器的作用是将HiveSQL语句转换为抽象语法树(AST)。(2)编译器:编译器是将语法树编译为逻辑执行计划。(3)优化器:优化器是对逻辑执行计划进行优化。(4)执行器:执行器是调用底层的运行框架执行逻辑执行计划。3.底层的Driver任务1
认识Hive元数据,通俗地讲,就是存储在Hive中的数据的描述信息。Hive中的元数据通常包括:表的名字、表的列和分区及其属性、表的属性(内部表和外部表)、表的数据所在目录。元数据默认存储在自带的Derby数据库中。缺点就是不适合多用户操作,并且数据存储目录不固定,数据库跟着Hive走,不方便管理。所以我们把元数据通常存在MySQL库(本地或远程),Hive和MySQL之间通过MetaStore服务交互。HiveQL通过命令行或者客户端提交,经过Compiler编译器,运用MetaStore中的元数据进行类型检测和语法分析,生成一个逻辑方案(LogicalPlan),然后通过优化处理,产生一个MapReduce任务。4.元数据存储系统:MySQL任务1
认识Hive任务2Hive安装与配置Hive需要将元数据保存到数据库,需要配置相应服务,本任务主要完成Hive的安装与配置、MySQL服务启动和用户授权、Hive启动测试。Hadoop伪分布模式搭建在项目3已经介绍了,现在在此基础上安装Hive。第一步:下载并解压Hive源程序。第二步:配置环境变量。第三步:Metastore安装与配置。第四步:修改Hive配置文件。第五步:启动MySQL。第六步:启动Hive。任务3HiveShell操作Hive的数据类型分为两大类:基础数据类型和复杂数据类型,Hive不仅支持关系数据库中的大多数数据类型,同时还支持集合数据类型(STRUCT、MAP、ARRAY)。1.基本数据类型(表7-2)任务3HiveShell操作Hive的数据类型分为两大类:基础数据类型和复杂数据类型,Hive不仅支持关系数据库中的大多数数据类型,同时还支持集合数据类型(STRUCT、MAP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年工业用地租赁协议
- 2024年培训学校教员聘用合同版
- 2024个人借款展期借款合同
- 2024年度公共停车场车位使用权转让协议
- 工业智能操作系统白皮书(2024版)
- 2024年创业团队股东退股协议样本版B版
- 2024年债务变更及转让协议范本版B版
- 2024年个人专属协议授权委托模板版B版
- 2024年度商业招商教学辅导合同样本版
- 2024年度土地产权确认与配额协议
- 工程机械租赁服务方案及保障措施
- JB-T 8236-2023 滚动轴承 双列和四列圆锥滚子轴承游隙及调整方法
- 2024年黑龙江哈尔滨道里区“丁香人才周”(春季)事业单位招聘52人历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 2024年浙江省宁波市科技局下属事业单位招聘4人历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 小学数学加括号、去括号练习测试题
- 4S店晨夕会管理
- 《中华人民共和国保守国家秘密法》试题
- 金属矿产开采环境保护评估
- 2024住宅设计规范
- 绿色建筑节能设计案例分析
- 医院护理培训课件:《伤口治疗原则及处理规范》
评论
0/150
提交评论