物联网数据处理-实验指导书资料_第1页
物联网数据处理-实验指导书资料_第2页
物联网数据处理-实验指导书资料_第3页
物联网数据处理-实验指导书资料_第4页
物联网数据处理-实验指导书资料_第5页
已阅读5页,还剩69页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

物联网数据处理…实验指导书

(完整版)资料

(可以直接使用,可编辑优秀版资料,欢迎下载)

《物联网数据处理》

实验指导书

实验一:熟悉常用的Linux操作(2学时)

一、实验目的与要求

L熟悉安装和配置Linux。

2、熟悉常用的Linux操作。

6、总结在调试过程中的错误。

二、实验类型

验证型

三、实验原理及说明

通过实际操作,使学生对Linux的使用有一个更深刻

的理解;熟悉Linux的开发环境及程序结构。

四、实验仪器

安装操作系统:Linux

五、实验内容和步骤

熟悉常用的Linux操作

请按要求上机实践如下linux基本命令。

cd命令:切换目录

(1)切换到目录/usr/local

(2)去到目前的上层目录

(3)回到自己的主文件夹

Is命令:查看文件与目录

(4)查看目录/usr下所有的文件

mkdir命令:新建新目录

(5)进入/tmp目录,创建一个名为a的目录,并查看有

多少目录存在

(6)创建目录al/a2/a3/a4

rmdir命令:删除空的目录

(7)将上例创建的目录a(/tmp下面)删除

(8)删除目录al/a2/a3/a4,查看有多少目录存在

cp命令:复制文件或目录

(9)将主文件夹下的.bashrc复制到/usr下,命名为

bashrcl

(10)在/tmp下新建目录test,再复制这个目录内容

到/usr

mv命令:移动文件与目录,或更名

(11)将上例文件bashrcl移动到目录/usr/test

(12)将上例test目录重命名为test2

rm命令:移除文件或目录

(13)将上例复制的bashrcl文件删除

(14)rm-rf将上例的test2目录删除

cat命令:查看文件内容

(15)查看主文件夹下的.bashrc文件内容

tac命令:反向列示

(16)反向查看主文件夹下.bashrc文件内容

more命令:一页一页翻动查看

(17)翻页查看主文件夹下.bashrc文件内容

head命令:取出前面几行

(18)查看主文件夹下.bashrc文件内容前20行

(19)查看主文件夹下.bashrc文件内容,后面50行不

显K,只显小刖面几行

tail命令:取出后面几行

(20)查看主文件夹下.bashrc文件内容最后20行

(21)蛰看主文件夹下.bashrc文件内容,只列出50

行以后的数据

touch命令:修改文件时间或创建新文件

(22)在/tmp下创建一个空文件hello并查看时间

(23)修改hello文件,将日期调整为5天前

chown命令:修改文件所有者权限

(24)将hello文件所有者改为root帐号,并查看属性

find命令:文件查找

(25)找出主文件夹下文件名为.bashrc的文件

tar命令:压缩命令

(27)解压缩到/tmp目录

grep命令:查找字符串

(28)从~/上25卜"文件中查找字符串'examples'

(29)配置Java环境变量,在~/.bashrc中设置

(30)查看JAVA_HOME变量的值

六、注意事项

命令的名称。

七、预习与思考题

1、Linux操作系统的安装和使用

2、常用的命令

实验二:安装Hadoop开发环境(2学时)

一、实验目的与要求

1,掌握Linux虚拟机安装方法或者双操作系统安装方

法。Hadoop在Linux操作系统上运行可以发挥最佳性

能,鉴于目前很多读者可能正在使用Windows操作系

统,因此,为了完成本书的后续实验,这里有必要通过

本实验让读者掌握在Windows操作系统上搭建Linux

虚拟机的方法,以及安装双操作系统的方法(同时安装

Windows和Linux系统,电脑开机时,可以选择登录哪

个系统入

2.掌握Hadoop的伪分布式安装方法。很多读者并不

具备集群环境,需要在一台机器上模拟一个小的集群,

因此,需要通过本实验让读者掌握在单机上进行

Hadoop的伪分布式安装方法。

二、实验类型

综合型

三、葺验原理及说明

通过实际操作,使学生对Hadoop的使用有一个更

深刻的理解;熟悉Hadoop的开发环境及程序结构。

四、实验仪器

操作系统:Windows系统或者Ubuntu(推荐)。

虚拟机软件:推荐使用的开源虚拟机软件为

VirtualBox。VirtualBox是一款功能强大的免费虚拟机

软件,它不仅具有丰富的特色,而且性能也很优异,简单

易用,可虚拟的系统包括Windows、MacOSX、Linux、

OpenBSD.Solaris、IBMOS2甚至Android4.0系统等

操作系统。读者可以在Windows系统上安装VirtualBox

软件,然后在VirtualBox上安装并且运行Linux操作系

统。本次实验默认的发行版为

LinuxUbuntul4.04o

五、实验内容和步骤

共享文件夹设置

virtualbox中ubuntu和windows共享文件夹设置

*OracleVM'/irtualBox

a函盒一

a靠加

设mt选o<0利)

先关闭ubuntu,在virtualbox〃设置〃中找到〃共

享文件夹〃,点击进入,点击右边添加目录按钮,添加

windows中要共享的目录,取一个名。比如我在D盘建

一个名为share的文件夹,如下图:

重启ubuntu,在ubuntu系统最上端〃设备〃中找

到〃共享文件夹〃,点击进入,点击右边添加目录按钮,

添加第二步操作的共享目录,如

nubuntu12.04(正行卜OracleVMVirtualBox

Ubunt文件的2I(V)U«(C)借助<H)

ubuntu12.04设置

s««共享文件实

J]

&环

房部》

g0网珞宪全

伪*□

0USy"

。共享文杵突

进入虚拟Ubuntu,在命令行终端下输入:

sudomkdir/mnt/shared

sudomount-tvboxsfshare/mnt/shared

其中”share”是之前创建的共享文件夹的名字。OK,

现在Ubuntu和主机可以互传文件了。

要想自动挂载的话,可以在/etc/fstab中添加一项

share/mnt/sharedvboxsf

rw,gid=100,uid=1000,aut。00

Java安装

第一步获取安装包。到oracle官方去下载jdk安装

包,选择版本时注意选择自己的系统的版本。

第二步:解压安装

cd/usr/lib/jvm

第三步:修改环境变量

vi-/.bashrc

添加:

exportJAVA_HOME=/usr/lib/jvm/java-7-sun

exportJRE_HOME=${JAVA_HOME}/jre

export

CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

exportPATH=${JAVA_HOME}/bin:$PATH

保存退出,输入以下命令使之立即生效。

source-/.bashrc

第四步:配置默认JDK版本由于ubuntu中可能会

有默认的JDK,如openjdk,所以,为了将我们安装的

JDK设置为默认JDK版本,还要进行如下工作。

执行代码:

sudoupdate-alternatives-install/usr/bin/java

java/usr/lib/jvm/java-7-sun/bin/java300

sudoupdate-alternatives--install

/usr/bin/javacjavac

/usr/lib/jvm/java-7-sun/bin/javac300

sudoupdate-alternatives—install/usr/bin/jar

jar/usr/lib/jvm/java-7-sun/bin/jar300

sudoupdate-alternatives--install

/usr/bin/javahjavah

/usr/lib/jvm/java-7-sun/bin/javah300

sudoupdate-alternatives-install

/usr/bin/javapjavap

/usr/lib/jvm/java-7-sun/bin/javap300

执行代码:

sudoupdate-alternatives—configjava

系统会列出各种JDK版本,如下所示:

baidu@baidu:~$sudoupdate-alternatives

—configjava

有3个候选项可用于替换java(提供

/usr/bin/java)o

选择路径

优先级状态

*0

/usr/lib/jvm/java-6-openjdk/jre/bin/java1061

自动模式

1

/usr/lib/jvm/java-6-openjdk/jre/bin/java1061

手动模式

2

/usr/lib/jvm/java-6-sun/jre/bin/java63

手动模式

3

/usr/lib/jvm/java-7-sun/bin/java300

手动模式

要维持当前值[*]请按回车键,或者键入选择的编号:

3

update-alternatives:使用

/usr/lib/jvm/java-7-sun/bin/java来提供

于手动模式中。

/usr/bin/Java(java)z

第五步:测试

baidu@baidu:-$java-version

JavaHotSpot(TM)ServerVM(build21.0-bl7,

mixedmode)

Hadoop安装

L创建hadoop用户

安装Ubuntu的时候不是用的〃hadoop〃用

户,那么需要增加一个名为hadoop的用户。

首先按ctrl+alt+t打开终端窗口,输入如下命令创

建新用户:

sudouseradd-mhadoop-s/bin/bash

接着使用如下命令设置密码,可简单设置为

hadoop,按提示输入两次密码:

sudopasswdhadoop

可为hadoop用户增加管理员权限,方便部署,避

免一些对新手来说比较棘手的权限问题:

sudoadduserhadoopsudo

最后注销当前用户(点击屏幕右上角的齿轮,选择注

销),返回登陆界面。在登陆界面中选择刚创建的

hadoop用户进行登陆。

2.安装SSH、配置SSH无密码登陆

集群、单节点模式都需要用到SSH登陆(类似于远

程登陆,你可以登录某台Linux主机,并且在上面运行

命令),Ubuntu默认已安装了SSHclient,此外还需

要安衰SSHserver:

安装后,可以使用如下命令登陆本机:

sshlocalhost

利用ssh-keygen生成密钥,并将密钥加入到授

权中:

$exit#退出刚才

的sshlocalhost

$cd~/.ssh/#若没有该

目录,请先执行一次sshlocalhost

$ssh-keygen-trsa#会有提

示,都按回车薪可以

$cat./id_rsa.pub>>./authorized_keys#力口

入授权

$cd/usr/local/

$sudochown-Rhadoop./hadoop#

修改文件权限

$cd/usr/local/hadoop

$./bin/hadoopversion

六、注意事项

七、预习与思考题

1、在Linux环境下完成伪分布式环境的搭建,并运

行Hadoop自带的WordCount实例检测是否运行正常。

实验三:熟悉Hadoop平台(2学时)

一、实验目的与要求

L理解Hadoop平台运行原理。

2、熟悉Hadoop的操作

二、实验类型

设计型

三、实验原理及说明

通过实际操作,使学生对Hadoop的使用有一个更

深刻的理解;熟悉Hadoop的开发环境及程序结构。

四、实验仪器

安装Ubuntu系统的计算机若干台

五、实验内容和步骤

1.Hadoop单机酉己置(三卜分布式)

Hadoop默认模式为非分布式模式(本地模式),

无需进行其他配置即可运行。非分布式即单Java进程,

方便进行调试。

Hadoop附带了丰富的例子(运行.可以看到所有

例子),包括wordcount,terasort,join、grep等。

在此我们选择运行grep例子,我们将input文件

夹中的所有文件作为输入,筛选当中符合正则表达式

dfs[a-z.]+的单词并统计出现的次数,最后输出结果到

output文件夹中。

SheU命令

$cd/usr/local/hadoop

$mkdir./input

$cp./etc/hadoop/*.xml./input

$./bin/hadoopjar./share/hadoop/mapreduce/hadoop-mapreduce-exatnples-*.jargrep./input./o

utput'dfs[a-z.]+'

$cat./output/*

执行成功后如下所示,输出了作业的相关信息,输

出的结果是符合正则的单词dfsadmin出现了1次

fhadoop(9>DBLab-XMU:/usr/local/hadoop

IO_ERROR=0

WRONG.LENCTHsO

WRONC2MAP-O程R

WR0NG_REDUCE-0

FileInputFornatCounters

BytesRedd^i23

FileOutputFornatCounters

hadoop@DBLdb-XMU:/usr/local/hadoop$cat./outpjt/*

[1dfadMn

Hadoop单机模式运行grep®检出结室

注意,Hadoop默认不会覆盖结果文件,因此再次运行

上面实例会提示出错,需要先将./output删除。

2.Hadoop伪分布式配置

Hadoop可以在单节点上以伪分布式的方式运行,

Hadoop进程以分离的Java进程来运行,节点既作为

NameNode也作为DataNode,同时,读取的是

HDFS中的文件。

Hadoop的配置文件位于

/usr/local/hadoop/etc/hadoop/中,伪分布式需要修

改2个配置文件core-site.xml和hdfs-site.xmlo

Hadoop的配置文件是xml格式,每个配置以声明

property的name和value的方式来实现。

修改配置文件core-site.xml(诵过aedit编辑会

比较方便:)将当中

gedit./etc/hadoop/core-site.xmlz

XMLL®</>

.〈configuration)

修改为下面配置:

XML(?]</>

1<configuration>

2<property>

3<name>hadoop.tmp.dir</name>

4<v£xue>file:/usr/local/hadoop/tmo:/value>

5<de£crip-Abaseforothertemoorarydirectories.<de-ciprion>

6</property>

7<property>

8<nefs.defaultFS

9<value>hdfs://localhost:9000</value>

10</property>

11</configuration>

同样的,修改配置文件hdfs-site.xml:

XML

1.〈configuration)

2•〈property》

3.<narredfs.replication:/name>

<value>l</value>

5.</property>

6.<property>

dfs.namenode.name.dir

file:/usr/local/hadoop/tmp/dfs/name

10.<property>

randfs.datanode.data.dir</rare>

file:/usr/local/hadoop八mp/dfs/data

Hadoop配置文件说明

Hadoop的运行方式是由配置文件决定的(运行

Hadoop时会读取配置文件),因此如果需要从伪分布

式模式切换回非分布式模式,需要删除core-site.xml

中的配置项。

配置完成后,执行NameNode的格式化:

Shell命令

$./bin/hdfsnamenode-format

成功的话,会看到"successfullyformatted”和

“Exittingwithstatus0〃的提示,若为"Exitting

withstatusV则是出错。

❽鲁@hadoop@)DBLab-XMU:/usr/local/hadoop

15/12/1718:35:26INFOnamenode.FSImage:AllocatednewBlockPo

--1450348526600

15/12/17二驻3舁跖。/oragedirectory/usr/

fs/namehasbeensuccessfullyformatted.

15/12/171873027INFOTiamenodeTNNSforageRetentionManager:Goii

geswithtxtd>=0二一

15/12/1718:35:27INFOutil.ExttUttl:|fxlttngwithstatuT@

15/12/1718:35:27INFOnamenode.NameNode7-SHUTDOWN_MSGl-

/******★★★★★★*★*****★**********★*****★****♦**********★★★*★★*★

SHUTDOWN_MSG:ShuttingdownNameNodeatDBLab-XMU/

************************************************************y

如果在这一步时提示Error:JAVA.HOMEisnot

setandcouldnotbefound.的错误,则说明之前设

置JAVA.HOME环境变量那边就没设置好,请先设置

好JAVA.HOME变量,否则后面的过程都是进行不下

去的。

接着开启NameNode和DataNode守护进程。

Shell命令I的</>

$./sbin/start-dfs.sh^start-dfs.sh/.

若出现如下SSH提示,输入yes即可。

hadoop@DBLab-XMU:/usr/local/hadoopSsbtn/start-dfs.sh

Startingnamenodeson[localhost]

localhost:startingnamenode,loggingto/usr/local/hadoop/logs/hadoop-hadoop-na

localhost:startingdatanode,loggingto/usr/local/hadoop/logs/hadoop-hadoop-da

Startingsecondarynanenodes[]

Theauthenticityofhost'e.e.O.e(e.O.e.O)'can'tbeestablished.

ECDSAkevfinoerprintisa9:28:e6:4e:89:40:a4:cd:75:8f:6b:8b:57:79:67:86.

,reyousureyouwanttocontinueconnecting(yes/no)?yes

启动时可能会出现如下WARN提示:WARN

util.NativeCodeLoader:Unabletoload

native-hadooplibraryforyourplatform...using

builtin-javaclasseswhereapplicableWARN提示击

以忽略,并不会影响正常使险

启动Hadoop时提示Couldnotresolve

hostname

如果启动Hadoop时遇到输出非常多Mssh:

Couldnotresolvehostnamexxx〃的异常情况,如下

图所示:

❽cGhadoopt^vm:/usr/local/hadoop

library:ssh:Couldnotresolvehostnamelibrary:Nameorservt

cenotknown

which:ssh:Couldnotresolvehostnamewhich:Nameorservicen

otknown

disabled:ssh:Couldnotresolvehostnamedisabled:Nameorser

vicenotkncwn

warning::ssh:Couldnotresolvehostnamewarning::Nameorser

vicenotkncwn

stack:ssh:Couldnotresolvehostnamestcick:Nameorservicen

otknown

启动Hadoop时的异常提示

这个并不是ssh的问题,可通过设置Hadoop环

境变量来解决。首先按键盘的Ctrl+c中断启动,然后

在-/.bashrc中,增加如下两行内容(设置过程与

JAVA.HOME变量一样,其中HADOOP_HOME为

Hadoop的安装目录):

Shell

exportHADOOP_HOME=/usr/local/hadoop

2.exportHADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

保存后,务必执行source~/.bashrc使变量设置

生效,然后再次执行./sbin/start-dfs.sh启动

Hadoopo

启动完成后,可以通过命令jps来判断是否成功启

动,若成功启动则会列出如下进程:

〃NameNode〃、"DataNodez,和

/ySecondaryNameNoden(如果

SecondaryNameNode没有启动,请运行

sbin/stop-dfs.sh关闭进程,然后再次尝试启动尝试\

如果没有NameNode或DataNode,那就是配置不

成功,请仔细检查之前步骤,或通过查看启动日志排查

原因。

|hadoop@powerxing-Ml:/usr/local/hadoop$jps

7100Jps

6867SecondaryNameNode

6445NameNode

I_6_5_9_4__D_a_t_a_N_o_de___________________________■__

通过jps查看启动的Hadoop进程

成功启动后,可以访问Web界

面://localhost:50070查看NameNode和

Datanode信息,上可以在线查看HDFS中的文件。

Namenodeinformationx|

K.)•iMiiBWtSOOTC/dfih—ItKhtmlMtbovtrvltw▼

HadoopOverviewDatanodesSnapshotStartupProgressUtilities

Overview1ocalhost:9000,(active)

Started:ThuAug0710:33:16CST2014

Version:2.4.1.r1604318

Comptlexl:2014*06-21T05:43ZbyJenkinsfrombrarxh*2.4.1

ClusterID:a0-7a8af(to-c5<M-46b0-873f-68c7e843474c

六、注意事项

熟悉Hadoop的配置文件。

七、预习与思考题

单机版与伪分布式的配置。

实验四:Hadoop初级实践(2学时)

一、实验目的与要求

L理解Hadoop平台运行原理。

2、熟悉wordcount程序。

二、实验类型

设计型

三、实验原理及说明

通过实际操作,使学生对Hadoop的使用有一个更

深刻的理解;熟悉Hadoop的开发环境及程序结构。

四、实验仪器

安装Ubuntu系统的计算机若干台

五、实验内容和步骤

单词计数是最简单也是最能体现MapReduce思想

的程序之一,可以称为版

MapReduce“HelloWorld"z

该程序的完整代码可以在Hadoop安装包的

“src/examples”目录下找到。单词计数主要完成功能是:

统计一系列文本文件中每个单词出现的次数,如下图所

示。以“hadoop”用户登录Hadoop服务器。

2

Hello1

World

Hadoop

1.创建本地的示例数据文件:

homeF主文件夹hadoop-1.2.1file

HelloHella

myTest1.txtmyTest2.txt

并在这个目录下创建2个文件分别命名为【myTestl.tx

t]和[myTest2.txt]或者你想要的任何文件名。

分别在这2个文件中输入下列示例语句:

myTest1.txtX

HelloworldHellomel|

「myTest2.txtX

HelloHadoopHelloYou!

2.在HDFS上创建输入文件夹

调出终端,输入下面指令:

$cd/usr/local/hadoop

$./bin/hadoopfs-mkdirhdfslnput

执行这个命令时可能会提示类似安全的问题,如果提示

了,请使用

$./bin/hadoopdfsadmin-safemodeleave

来退出安全模式。

当分布式文件系统处于安全模式的情况下,文件系统中

的内容不允许修改也不允许删除,直到安全模式结束。

安全模式主要是为了系统启动的时候检查各个

DataNode上数据块的有效性,同时根据策略必要的复

制或者删除部分数据块。运行期通过命令也可以进入安

全模式。

3.上传本地file中文件到集群的hdfslnput目录下

在终端依次输入下面指令:

$./bin/hadoopfs-putfile/myTest*.txthdfslnput

c~~>/h«doop-1.2.1

hadoop0Node3:-$cdhadoop-1.2.1

hadoop^Node3:-/hadoop-1.2.1$btn/hadoopfs-putftle/RyTest*.txthdfslnput

hadoop9Node3:>/hadoop*1.2.1$

4.运行例子:

在终端输入下面指令:

$./bin/hadoop

$./bin/hadoopjarhadoop-examples-*.jar

wordcounthdfslnputhdfsOutput

应该出现下面结果:

hxfooHMode):-$cdhadeop-1.2.1

hAdoop*Mode>:-/h4doop-!.2.1$bln/fs-putflle/RyTeste.txthdfslnput

h«dooHHode):*/h3doop.l,2.1$btn/j«rh4doop-exa«ple*-1.2.1.jirerdcost

hdfsUputMf$0utput

14/OS/MO7:M:3OINFOInput.FtlelnputFoffMt:Tot«lInputp«th$toprocess:6

14/6S/54”:M:30XNFOuttl.H4tlveCodelo4der:Lo4drdtheruH・h$opItbriry

14/e5/M07:16:30WARNsnappy.lo«d$n«ppy:Snappynativelibrarynotloaded

i4/e5/w07:3e:31INFO.JobCKent:)ob:Job.2ei40M4OeM.MM

14/OS/M07:M:32INFOR4pred.3obClteni:MreduceM

14/eS/M07:M:42INFOR4pred.X>bCltent:3MreduceM

14/eS/M07:M:5)IMFOfwpred.JobCltent:MMreduceM

14/05/M07:37:02INFOzpred.Rbcm:MMreduce22%

14/05/MO7:J7:e$IMFOrupred.JobCltent:10Mreduce22,

14/es/MO7:J7:1OINFOR4pred.JobCltent:IM%reduce100%

14/OS/M07:37:12XMFOR«pred.JobCUent:JobcoRplete:job_2014050W54_WM

i4/e5/M07:J7:12INFOiwpre^.Jo^CUent:Counters:29

i4/e5/M07:J7:12INFOaapred.j0bCltent:JobCoimters

14/OS/M07:37:12IMfOnapred.JobCllent:Launchedreducet4iics«l

x〃s/xO/:37:XZXMFOMpred.jobcltenc:MO!,」ufn*r,・,y703

14/eS/M07:37:12INFORapred.JobCllent:Tot4ltlMspentbyallr2uc・sgt

Cto4afterreservingslots(«n)»0

14/OS/M07:17:12INFOrwpred.JobClteAt:TotalttRespentby4ll2”w«ltln

9«ftcrreservingslots(m)>0

14/e5/M07:37:12IMFOzpred.XbcnLMnched2P3,k$Y

14/05/0407:J7:12INFOO«t<-loc«l7P3$k”6

14/05/M07:>7:12INFOR4pred.JobCltentSIOYS」ULUSJUDUaS3122

14/OS/M07:17:12INFOMpred.JobCltentFileOutputForRitCounters

i4/es/e407:S7:12INFOn>pred.JobCltentBytesWftttenvlM

14/es/M”:3九12INFO»Mpre^.j0bCU«ntFtleSysteRCounteri

14/OS/M":":12INFOR4pred.JobCltcntFIie.BYTCS.lltA0.2M

14/eS/M•7:37:12IMFOfwpred.3obCItentMOfS•BYTES二・皿--D-・892.

Hadoop命令会启动一个JVM来运行这个MapReduce

程序,并自动获得Hadoop的配置,同时把类的路径(及

其依赖关系加入至(JHadoop的库中。以上就是Hadoop

Job的运行记录,从这里可以看到,这个Job被赋予了

一个ID号:job_2_0002,而且得知输入文件有两个

(Totalinputpathstoprocess:2),同时还可以了解

m叩的输入输出记录(record数及字节数),以及

reduce输入输出记录。

查看HDFS±hdfsOutput目录内容:

在终端输入下面指令:

bin/hadoopfs-IshdfsOutput

Mdoop|Rode):«/K4doop>1.2.1$bln/Kadoopfs-IsMfsOutput

Found3Item

-rw«f3hadoopsupergroup62649S0407:37/vser/hadoop/MfsOut

ovt/.success

drwxr・xr・x•hadoopsupergroup02ei405e4":M/vser/hadoop/MfsOut

put/.loQi

rw-r--r-*3h«doopsupergroupne2640saez:37/vs«r/h>doop/hdf(Out

pUt/p4ft-r-0MM

h4doop^Node):«/h«doop-1.2.1$I

从上图中知道生成了三个文件,我们的结果在

”part-r-00000”中。

使用下面指令查看结果输出文件内容

bin/hadoopfs-catoutput/part-r-00000

hadoop^Node):-/hadoop-1.2.1$btn/hadoopfs-cathdfs0utput3/part-r­(MMMM

H・doop1

Hello4

You!1

Re!1

world1

had<x>ptNode3:-/hd<k>op・1・2.1$________________________________________

输出目录日志以及输入目录中的文件是永久存在的,如

果不删除的话,如果出现结果不一致,请参考这个因素。

六、注意事项

熟悉Hadoop常用的命令。

七、预习与思考题

Hadoop的执彳亍过程。

实验五:熟悉常用的HDFS操作(2学时)

一、实验目的与要求

L理解Hadoop平台运行原理。

2、熟悉HDFS系统

二、实验类型

设计型

三、实验原理及说明

通过实际操作,使学生对Hadoop的使用有一个更

深刻的理解;熟悉Hadoop的开发环境及程序结构。

四、实验仪器

安装Ubuntu系统的计算机若干台

五、实验内容和步骤

1.编写简单shell脚步

1.使用gedit等任意文本编辑工具,都可以编写shel

I脚本。使用"gedittest.shz/在当前目录下,创

建一个测试shell脚本。shell脚本的后缀习惯性写

成〃.sh〃。

childGtkScrollbar0xla92cl(

tualBox:-$gedittest.sh

tualBox:~$f_________________

2

shell脚本的开始需要声明此脚本使用什么程序解

析执行,首行为〃#!/bin/sh〃,标明使用bash

解析器解析当前shell脚本。

test.shx

#!/bin/sh

echo1helloworld!

3

完成所有语言都有的入门级显示效果,使用shell

脚本打印helloworld,第二行为"echo'Hello

World。

4

由于新建的shell脚本没有执行权限,首先使用

hmod755test.sh”对shell脚本添加执行权限。

rootSdebian:chmod755test.sh

5

使用〃./testsh〃命令执行新建的shell脚本。

rootSdebian:-#./test.sh

6

看看自己编写第一个shell脚本执行的结果吧。

root@debian:./test.sh

HelloWorld!|

root@debian:|

2.利用Hadoop提供的Shell命令完成相同任务:

⑴向HDFS中上传任意文本文件,如果指定的文件

在HDFS中已经存在,由用户指定是追加到原有

文件末尾还是覆盖原有的文件;

先至ljHadoop主文件夹cd/usr/local/hadoop

启动Hadoop服务sbin/start-dfs.sh

tinygtiny-virtua'L-nachine:/usr/'local/hadoop$sbin/start-dfs.sh

Startingnamenodeson[localhost]

ilocalhost:startingnamenode,loggingto/usr/local/hadoop/logs/hadoop-tiny-name

node-tiny-virtual-machine.out

localhost:startingdatanode,loggingto/usr/local/hadoop/logs/hadoop-tiny-data

node-tiny-virtual-machine.out

Startingsecondarynampnodes[fl.0fl.fi]

:startingsecondarynamenode,loggingto/usr/local/hadoop/logs/hadoop-ti

ny­secondarynamenode-tiny-virtualmachine.out

sbin/start-yarn.sh

tiny@tiny-virtual-nachine:/usr/local/hadoop$sbin/start-yarn.sh

startingyarndaemons

startingresourcemanager,loggingto/usr/local/hadoop/logs/yarn-tiny-resourcem

nager-tiny-virtual-machine.out

localhost:startingnodemanager,toggingto/usr/locat/hadoop/logs/yarn-tiny-no

emanager-tiny-virtual-machine.out

创建两个任意文本文件用于实验echo"hello

world">local.txt

echo"hellohadoop">text.txt

检查文件是否存在hadoopfs-test-etext.txt

echo$?

上传本地文件到HDFS系统(上传之后再执行一

遍上一步,如果是第一次做HDFS操作第一次做

这一步会出错,可以直接做一次hadoopfs

-appendToFilelocal.txttext.txt就能解

决)hadoopfs-puttext.txt

追加到文件末尾的指令had。叩fs

-appendToFilelocal.txttext.txt

查看HDFS文件的内容hadoopfs-cattext.txt

覆盖原有文件的指令(覆盖之后再执行一遍上一

步)hadoopfs-copyFromLocal-flocal.txt

text.txt

以上步骤也可以用如下Shell脚步实现

if$(hadoopfs-test-etext.txt);

then$(hadoopfs-appendToFilelocal.txt

text.txt);

else$(hadoopfs-copyFromLocal-flocal.txt

text.txt);

fi

⑵从HDFS中下载指定文件,如果本地文件与要下

载的文件名称相同,则自动对下载的文件重命

名;

Shell命令实现:

if$(hadoopfs-test-e

/usr/local/hadoop/text.txt);

then$(hadoopfs-copyToLocal

text.txt./text.txt);

else$(hadoopfs-copyToLocal

text.txt./text2.txt);

fi

⑶将HDFS中指定文件的内容输出到终端中;

hadoopfs-cattext.txt

(4)显示HDFS中指定的文件的读写权限、大小、创

建时间、路径等信息;

hadoopfs-Is-htext.txt

⑸给定HDFS中某一个目录,输出该目录下的所有

文件的读写权限、大小、创建时间、路径等信息,

如果该文件是目录,则递归输出该目录下所有文

件相关信息;

hadoopfs-Is-R-h/user/tiny

<6)提供一个HDFS内的文件的路径,对该文件进行

创建和删除操作。如果文件所在目录不存在,则

自动创建目录;

Shell命令实现:

if$(hadoopfs-test-d

温馨提示

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

评论

0/150

提交评论