物联网工程-hadoop论文

一 前言

在这一学期的时间里,我们系统地学习了物联网工程专业课和相关的技能课程。这些课程是一个紧密联系、密切相关的一个统一整体。了解课程之间的关系,并运用所学的理论知识解决实际问题,进行综合能力的训练,也是教学计划所要求的。而毕业论文的写作过程,实际上正是我们运用所学的知识去解决某一问题的过程,将在一定程度上说明我们是否具有了对知识的综合运用能力。

这一学习由李东晖老师带我们完成了,物联网工程,大数据技术基础实验课程。本次我所选论文研究方向是<<分布式大数据系统Hadoop>>Hadoop 是一个处理、存储和分析海量的分布式、非结构化数据的开源框架。最初由 Yahoo 的工程师 Doug Cutting 和 Mike Cafarella在 2005 年合作开发。后来,Hadoop 被贡献给了 Apache 基金会,成为 Apache 基金会的开源项目。Hadoop 是一种分析和处理大数据的软件平台,是一个用 Java 语言实现的 Apache 的开源软件框架,在大量计算机组成的集群中实现了对海量数据的分布式计算。

而本学期我们从三个大部分来学习了《分布式大数据系统Hadoop》,分别是Hadoop简介、Hadoop生态系统、HDFS分布式文件系统。

那我们又为什么要学习Hadoop呢?我们先来看看大数据时代,什么叫大数据,“大”,说的并不仅是数据的“多”!不能用数据到了多少TB ,多少PB 来说。对于大数据,可以用四个词来表示:大量,多样,实时,不确定。也就是数据的量庞大,数据的种类繁杂多样话,数据的变化飞快,数据的真假存疑。大量:这个大家都知道,想百度,淘宝,腾讯,Facebook,Twitter等网站上的一些信息,这肯定算是大数据了,都要存储下来。多样:数据的多样性,是说数据可能是结构型的数据,也可能是非结构行的文本,图片,视频,语音,日志,邮件等。实时:大数据需要快速的,实时的进行处理。如果说对时间要求低,那弄几个机器,对小数据进行处理,等个十天半月的出来结果,这样也没有什么意义了。不确定: 数据是存在真伪的,各种各样的数据,有的有用,有的没用。很难辨析。

根据以上的特点,我们需要一个东西,来:存储大量数据快速的处理大量数据从大量数据中进行分析。于是就有了这样一个模型Hadoop。

   那有这么多的数据系统Hadoop有许多的优势让我们来学习他。Hadoop在应用过程中,具备如下优点:Hadoop具有可靠性,按位存储和处理数据的能力非常强大。电设计元素和存位失败,那么它维护多个工作数据副本,能确保针对失败的节点重新分处理.Hadoop具有高效性,能够在节点之间动态地移动数据,以并行力“工作,并保位各个节点的动态平衡,处理速度非常快。Hadoop具有可伸缩性,能够处理PB级以上数据。Hadoop依赖于社区服务,与一体机,商用数据仓库以及QlikView, YopeHadoop Suite等数据集市相比,它的成本比较低,是开源的,因此任何人都可以使用。Hadoop具有高可扩展性,在可用的计算机集族间分配数据并完成计算任务,这些集族可以方便地扩展到数以千计的节点Hadoop具有高容错性,能够自动保存数据的多个副本,并且能够自动将失败的务重新分配。Hadoop自带Java语言编写的框架,运行在Linux 平台上是非常理想的。Hadoop的应用程序也可以使用其他语言编写,比如Python, C++。Hadoop最初只应用于网页搜索相关内容,后来迅速发展为大数据的领先平台。Hadoop开发了“大云”(Big Cloud)系统,可用于相关数据分析, 还可对外提供服务

二 摘要

物联网是一个连接日常物品和互联网的系统,它正在迅速改变我们执行日常任务的方式。从建筑、零售到安全、汽车,物联网的影响如今几乎在每一个领域都有体现。这项技术在过去几年里获得了巨大的发展势头,不再被认为是一种炒作。现在几乎所有的物理设备都可以转换成物联网设备。

虽然物联网在设备中的应用不再是梦想,但它的用途仍然值得一提。物联网减少了日常生活中的工作量,并帮助机器或设备轻松处理通常需要人工处理的事情。这是一项技术,是人们努力并愿意过上便利生活的结果。

物联网在家庭中的应用,人们谈论最多的物联网应用之一是它在家庭中的应用。今天,物联网在使我们的家用电器更智能化方面发挥了作用。无论你是想到照明系统还是家庭监控,物联网真的把我们家的便利性提升到了一个新的水平。以家庭照明为例,家庭照明系统和监控也与物联网相结合。你可以通过智能手机打开或关闭你家的灯,或者通过设置智能物联网安全摄像头和监控系统来增强你家的安全性,这在很大程度上提高了安全级别。

创建智慧城市是当下的话题。但要做到这一点,诸如水资源管理、交通管理、基础设施开发、废物或电力管理等都需要得到妥善处理。我们非常需要消除我们所说的这些城市日常麻烦。问题是如何将这种便利带入城市居民的生活,而要做到这一点,物联网可以发挥巨大的作用。

如今,世界各国地方和国家一级的主管部门已经开始将物联网融入交通管理和基础设施开发等系统,以提出突破性的智能解决方案。这正好展示了物联网(IoT)在建设智能城市方面的优势。

三 实验步骤

   在学习Hadoop中我们还必须先搭建Hadoop所需要的装备工作,虚拟化软件的安装,学会 VMware Workstation 的安装和使用,以及Linux虚拟机的安装。常见终端模拟访问程序,Xshell的安装和使用。我们学习了虚拟化技术、虚拟化软件和终端模拟访问程序。那我们就完成了Hadoop的装备工作。

   那么最重要的是Hadoop环境搭建和安装,掌握Hadoop的概念与应用。掌握HDFS的概念与应用。掌握Hadoop环境搭建与安装。在准备Hadoop装备工作中在VMware中安装CentOS操作系统,并查看系统IP地址。采用Xshell 6实现终端连接CentOS操作系统,在已安装的CentOS操作系统上进行Hadoop环境搭建与安装。Hadoop安装分为三种模式:单机模式,伪分布式模式和分布式模式。伪分布式模式安装。操作步骤在Xshell 6终端模拟访问程序中实现步骤在Xshell 6的工具栏中单击Xftp按钮。如果没有安装Xfp工具,可通过给定链接下载安装, Xftp工具是一个基于MS Windows平台的功能强大的SFTP,FTP文件传输软件。MS Windows用户能安全地在UNIX/Linux 和Windows PC之间使用Xftp传输文件。第二种传输文件的方法,在CentOS操作系统中安装Irzsz, 具体命令是:yum -y install Irzsz。安装完成后。输人命令rz, 回车弹出本地路径窗口,选择上传的文件,Xshell6会话框中,输入命令sz,会弹出浏览文件夹对话框,选择本地存储路径、

即可将服务器上的文件下载到本地Apache官网下载需要的软件包Hadoop较新较稳

定的Hadop软件hadoop-2.7.3版本

    接下来就需要安装JDK了,Hadoop是Java进程,所以需要添加JDK。Hadoop 安装完后,一般需要在Hadoop行的配置文件hadoop-env. sh中,配置JDK的路径。在Xshell 6会话框中,输人命令rz,选择本地软件包中的jdk- 8u171-linux-x64. tar输人命令ls,查看文件是否上传成功. 从上传的路径移动安装文件到opt目录下,移动文件需要用mv Hadoop.2.7.3.tar gz /opt和mv jdk-8u171-linux-x64 tar.gz /opt.通过ls命令在看上传的安装文件. 在Xshell 6会话框中,输人命令tar -zxvf jdk- 8u171-linux-x64. tar. gz, 查看解压

后的文件。

使用命令vi /etc/profile打开配置文件,将jdk1.8的环境变址配置到配置文在配置文件中, 按下Inert 键,切换为插人模式,在配置文件最后输入命令:环境变量配置完成后,按下ESC键,退出插人模式,输人命令wq,保存配置文件。让配置文件生效,还需要输人命令source/ete/profile或者. /etc/profle输人命令java -version, 显示安装成功的JDK的版本,在Xshell6会话框中,输人命令tar -zxvf hadoop-2.7. 3, tar. gz,查看解压后的文件,修改hadoop-2.7.3文件名为hadoop2.7,输入命令mv hadoop-2. 7.3 hadoop2. 7。查看修改后的Hadoop文件名CentOS已安装SSH, 要配置SSH无密码登录,先输人命令ssh-keygen, 产生密钥,遇到提示直接按回车键,即密码为空。

再输人命令ssh-copy-id 192. 168. 209 137,把上一步生成的空的密码拷贝给指定主

机,如本地的192.168. 209. 137.在提示输人“root@ 192. 168. 209. 137’s Password”时,输人原有rool的密码123456。最后通过ssh192168.209137访问本地主机,不用输人密码,即可访问成功, Hadoop伪分布式安装,先找到配置文件路径,配置core-site. xml文件,是为了指定NameNode的地址和指定使用Hadoop时产生文件的存放目录。输人vi /opt/ hadoop2.7/ete/ hadoop/core-site. xml,按下键盘上的Insert键进入插人模式,修改core-site. xml配置文件,按下键盘上的ESC键退出插人模式,输人命令wq,保存并退出core-site.xml配置文件。配置hadoop-env.sh文件,是为了配置Hadoop运行环境,用来定义Java环境变量。输入vi/opt hadoop2.7/etc/hadoop/hadoop-env. sh,按下键盘上的Insert键,进入插入模式,修改hadoop-env.sh配置文件,按下键盘上的ESC键退出插入模式,输入命令wq,保存并退出hadoop-env. sh配置文件。配置hdfs-site. xml文件,是为了配置HDFS, 如名称节点和数据节点的存放位置、文件副本的个数、文件的读取权限等。输人vi /op/ hadoop2.7/ete/hadoop/hdfs-site. xml,按下键盘上的Insert键,进入插人模式,修改hdfs-site. xml配置文件,;按下键“上的ESC键退出插人模式。输入命令wq, 保存并退出hdfs-site. xml配置文件。配置mapred-site.xml文件,是为了配置MapReduce参数。包括JobHistory Sever和应用程序参数两部分,如Reduce任务的默以个数、任务所能够使用内存的数认上下限等。/opt/hadoop2.7/etc/hadoop录下只有mapred-site.xml文件.配置yarn-site xml文件,是为了配置集群资源管理系统参数,包括ResourceManager, NodeManager 的通信端口,Web监控端口等。然后输人vi yarn-site. xml,按下键盘上的Insert键,进人插人模式,修改yarm-site. xml配置文件.配置Hadoop环境变量,输人命令v/e/pfile。修改完环境变量后,保存并退出。刷新配置source /etc/ profile配置完成后,执行NameNode的格式化,进opt/hadoop2.7/sbin目录,执行命令hdfs namenode -format,提示成功。如果直接开启所有服务,进入/opt/hadoop2.7/sbin目录,执行命令: /start-all.sh通过输人命令jps查看所有服务是否启动. 大数据技术空一注意:开启NameNode和DaNode,进入op/hadop2. 7/sbin目录,执行命s-dfs.sh, 如果无错误提示,通过输入命令jps查看NameNode和DataNode是否启动SanHadoop 中HDFS还提供Web访问页面,默认通过50070端口,通过HTTP协议访问,如虚拟机地址为192.168.209.137,在览器中输人http: //192.168.209.137:50070,可查看Hadoop中的HDFS,在此页面中可查看HDFS的文件信息、不能上传和下载。Hadoop 集群信息也提供Web访问页面,默认通过8088端口,通过HTTP协议访问,如虚拟机IP地址为192. 168. 209. 137,在浏览器中输人http: //192. 168. 209. 137:8088可查看Hadoop集群信息

 搭建好Hadoop相关环境后,我们还需要一点Hadoop shell的命令帮助我们熟悉一下

相关知识,使用能调用Hadop文件系统的shell 命令,可以创建文件夹、上传文件、下载文件和查看文件等。命令形式为hadoop fs 的形式。所有的Hadoop shell 命令都使用URI路径作为参数。URI路径是统一-资源标识符 (Uniform Resource Identifter),表示Web上每一种可用的资源,如HTML文档、 图像、视频片段、程序等都由一个URI来进行定位。URI 由三部分组成:访问资源的命名机制,存放资源的主机名,资源自身的名称。URI格式是scheme://authority/pathHDFS文件系统中,scheme 是HDFS;对于本地文件系统,scheme 是file。 其中scheme和authorily参数都是可选的。如果未指定,就会使用配置中默认的scheme.HDFS 文件系统中有一个 目录/usr/a, 可以表示成hdfs: //namenode:namenodepor/usr/a,或者直接简写成/usr/a,此时配置文件中的默认值为namenode:namenodeport。

先使用Hadoop shell命令在Hadoop集群中新建一个 文件夹/usr/data/input, 将本地Windows中的log.txt文件上传至HDFS文件系统中的input目求。先在本地CentOS系统中新建一个input文件夹,从本地Windows中上传log. txt文件到CentOS中,使用命令rz,从弹出的上传对话框中选择要上传的log. txt文件,提示上传成功后,采用命令ls查看上传的文件是否存在, 从本地CentOS 中将input/log. txt文件再上传到HDFS中的/ usr/ data/input 目录,也可以通过50070端口查看上传到/usr/data/input目录下的log.txt文件, 下载HDFS上上传的log. txt文件到本地CentOS中,把HDFS上的/usr/ data/ input/log. txt文件复制到/aa目录下。复制完成后到/aa目录下,查看是否成功复制文件。把HDFS上的/usr/ data/ inpu/log. xt文件移动到/a目录下, 移动完成,到/a目录下查看是否成功移动文件、也可以通过50070端口查看移动到/a目录下的文件,HDFS上的/a目录下的log. txt 文件删除,在HDFS上新建一个目录/aa/bb, 强制删除目录/aa. 从本地CentOS系统中剪切文件到HDFS上.最后我们的任务也到此结束。

四 实验心得体会

关于我这一学期的学习我有了一个新的认识和总结。特别是学习物联网一定要有相关的知识基础,在我们进行VMware Workstation安装和使用,是一个要掌握的点,幸好我们在上一学期的《Linux》学习中有一定的基础,掌握了VMware的简单安装和使用,以及Linux虚拟机的安装,我们要自行到网上去下载CentOS最小化发行版,这对于我们计算机科学与技术专业的学生来说是一件比较容易的事,在安装虚拟机中就是比较常规的安装,用户名的账户,密码。以及时间,语言的确定。我们也要掌握Xshell的安装和使用,这是一个虚拟化的软件吗,一样的我们也要去网上下载Xshell应用程序,网上有许多的版本,Xshell6,Xshell7,这里最需要注意的就是我下载的一个Xshell软件用了一两个月竟然就过期了,这导致我以前做的实验都前功尽弃了,这对我是有比较大的影响,不过我因为有过做实验的经历第二次做的时候就比较快了,也相当是复习了一次,所以对于我们学生来说对于有比较长的时间来用一个软件的话,还是需要去找一个可以长期运行的软件,不管是买也好还是用我们的专业知识去破解一个软件也好,也相当是对于我们一个能力的提升,因为在美国,欧美那些国家小孩子从小就散发自己的思维,运用自己的大脑在计算机开阔了一片天地,这是我们中国孩子都要学习的一方面而不是被自己的思维所束缚,在后面进行Hadoop的安装时发现这个故事,Hadoop名字的由来是Doug Cutting给孩子一个棕黄色的大象玩具命的名。他的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子恰恰是这方面的高手,这也让我想到了我们这学期《Java语言基础》的相关学习,Java之父当年命名Java的故事,当时印度尼西亚有一个重要的盛产咖啡的岛屿叫Java,中文译名为爪哇,而当时java之父当时正在喝一杯咖啡,他就把名字命名为java,其寓意为世人端上一杯热咖啡。

在Hadoop环境搭建和安装中有许多难点和疑点,令我几次非常头痛,不过幸好的老师,同学以及网络的查找下得到了解决。我们在登录CentOS中登录要注意用户root和密码的登录在登录密码是密码是看不见的,通过IP a指令可以看到自己的IP地址,这里如果你没有发现ip地址的话说明你前面相关的软件搭建出现了问题,那么这里就需要重新的安装软件,认真的配置了,直到可以看到自己电脑的ip地址,直到Xshell上可以显示连接成功,那么在安装相关Hadoop的操作中我们还需要相关具体的命令:如安装lrzsz的命令为 yum -y install lrzsz  以及rz进行上传的命令。这都是需要我们去学习、去掌握的。在软件包hadoop的下载中我们是在Apache官网去下载,这里让我非常头疼,我登陆Apache网站很难登录上去,我初步判定可能是由于是外网的原因,用我们校园网非常之慢,或许可以通过谷歌等浏览器去进行访问,最后我也是通过CSDN上相关的链接进行的下载,最后也可以进行完成安装了,最重要的一步就是jdk的下载,因为Hadoop是由java语言来编写的,做到这里我也想到了一件我们计组老师说的一件事,我们要好好的学习指令程序的编写,因为只有通过底层语言的编写我们才能不被其他国家所束缚,像java语言,如果别的公司把Java给关闭了,那么我们所有与java语言相关的软件,程序就都运行不了。这对于一个社会,一个国家都是影响很大的。所以我们一样学好指令程序创造属于自己国家的语言,如果我们有了自己的语言,说不定Hadoop就是由我们的语言来编写了。在安装完jdk完成后我们一定要注意显示安装成功的版本,命令为java -version 这里的命令和我们在自己Windows系统下cmd中检查一样的,最后如果成功了就会显示自己jdk版本。还要注意命令的书写如查看命令 ls 如果书写成is那么就查看不到安装成功的文件,Hadoop启动失败,输入jps 之显示jps而没有其他几个Node参数的另一个原因可能是ssh的安装配置出现问题,输入ssh localhost若没有显示地址,ssh可能没有安装好,重新安装SSH server,并重设无密码登录

关于Hadoop伪分布式配置会出现很多不同的错误一般出错的提示在最后面,通常是写着 Fatal、Error、Warning 或者 Java Exception 的地方。不同环境出现的错误也不同,需要自己查看日志来分析错误原因,在网上搜索一下出错信息,尝试一些相关的解决方法。如果启动成功,输入jps则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode,在火狐浏览器访问 Web 界面 http://localhost:9870 可以查看 NameNode 和 Datanode 信息,到这一步就算成功的安装并配置好Hadoop伪分布式了,我们还需要相关Linux系统的常用命令和练习,切换到local文件夹cd /usr/local返回上一级cd .. 切换到用户主文件夹:cd ~等。

五 致谢

这次物联网工程论文得到了很多老师、同学和同事的帮助,其中我的老师龙陈锋对我的关心和支持尤为重要,每次遇到难题,我最先做的就是向龙老师寻求帮助,而耿老师每次不管忙或闲,总会抽空来找我面谈,然后一起商量解决的办法,每次我都还喜欢和老师述说我的困难,开着玩笑说好难啊,老师也笑着说这对于你们计算机专业不是小菜一碟嘛,每次实验课我都坐在老师旁边,就是为了多获得一点老师的帮助,每次我们都在做实验的时候老师经常指导我们,没有事的时候,就忙碌自己的课程实验。老师也培养了我一样孜孜不倦,先自己努力的解决困难的精神。他以严谨细致、一丝不苟的学术作风,循循善诱、不拘一格的教导风格深深的影响着我,也使我在学术方面不断进取、刻苦追求。感谢龙老师在上课和实验课的教授与鞭策

你可能感兴趣的:(hadoop,物联网,big,data)