版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
物联网数据处理…实验指导书
(完整版)资料
(可以直接使用,可编辑优秀版资料,欢迎下载)
《物联网数据处理》
实验指导书
实验一:熟悉常用的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
nysecondarynamenode-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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 唐甄《潜书》思想解析
- 辛弃疾的抗金壮志
- 2026年鸡兔同笼教学方案设计
- 2026年教师教育教学管理培训方案
- 2026年对国贸专业职业认知
- 2026年加油站职业病防治计划
- 2026年科室护理安全隐患自查报告
- 2026年数学活动评课 幼儿园
- 2026年大学生学业规划与职业发展
- 2026年植树节幼儿园主题活动方案策划
- 220kV架空输电线路工程监理实施细则
- 人工智能导论(哈尔滨工程大学)知到智慧树章节答案
- 抽象函数的奇偶性、对称性和周期性
- (高清版)AQ 5203-2008 电镀生产装置安全技术条件
- 2020部编版六年级下道德与法治全册知识要点归纳考点背诵资料
- (正式版)YS∕T 5040-2024 有色金属矿山工程项目可行性研究报告编制标准
- AQ/T 2080-2023 金属非金属地下矿山在用人员定位系统安全检测检验规范(正式版)
- DB33T 1232-2021 蒸压加气混凝土墙板应用技术规程
- 2024年甘肃省天水市中考生物·地理试题卷(含答案)
- 数学谜语大全及答案
- 行为金融学(洞察非理性投资心理和市场)
评论
0/150
提交评论