资源描述
年工业物联网白皮书(完整版)资料
(可以直接使用,可编辑 优秀版资料,欢迎下载)
工业物联网白皮书(2021)
目前,物联网进入与传统产业深度融合发展的崭新阶段,工业制造领域的转型升级成为工业物联网发展的重要驱动力,世界各国纷纷发布相关的战略举措,抢占新一轮发展战略机遇。值此工业物联网的关键发展时期,《工业物联网白皮书(2021)》重点围绕工业物联网的发展背景、内涵本质、技术现状、标准现状以及产业应用等方面展开论述。
《工业物联网白皮书(2021)》对工业物联网的定位是:工业物联网是支撑智能制造的一套使能技术体系。依据物联网的相关定义及在工业制造领域中应用现状的深入研究,本白皮书尝试地给出工业物联网的定义:工业物联网是通过工业资源的网络互连、数据互通和系统互操作,实现制造原料的灵活配置、制造过程的按需执行、制造工艺的合理优化和制造环境的快速适应,达到资源的高效利用,从而构建服务驱动型的新工业生态体系。工业物联网表现出六大典型特征:智能感知、泛在连通、精准控制、数字建模、实时分析和迭代优化。
《工业物联网白皮书(2021)》目录
一、工业物联网的发展背景
(一)工业物联网的发展现状
(二)工业物联网的发展需求
工业物联网的发展意义
二、工业物联网的内涵
(一)工业物联网的本质
(二)工业物联网的阶段
(三)工业物联网的价值
三、工业物联网的技术现状
(一)工业物联网的参考体系架构
(二)工业物联网的技术体系
(三)工业物联网的技术趋势
四、工业物联网的产业现状
(一)工业物联网的终端产业现状
(二)工业物联网的平台产业现状
五、工业物联网的标准现状
(一)国内外已开展的物联网标准化工作
(二)国内外已开展的工业物联网标准化工作
(三)有待解决的工业物联网标准化问题
六、工业物联网的应用
(一)服务模式创新:基于机床物联网的租赁应用
(二)金融领域创新:基于工业物联网的新保险模式
(三)生产工艺优化:实现对轧辊磨削的全程自动控制
(四)智能物流应用:基于工业物联网的物流自动化
C、千兆以太网 D、万兆以太网
case t=space(1)
【答案】C
numspace=numspace+1
8. 在数据库设计中,将E-R图转换为关系模式是在________阶段。
ENDFOR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
ENDFOR
numn=numn+1
【答案】B
《物联网数据处理》
实 验 指 导 书
实验一:熟悉常用的Linux操作(2学时)
一、实验目的与要求
1、熟悉安装和配置Linux。
2、熟悉常用的Linux操作。
6、总结在调试过程中的错误。
二、实验类型
验证型
三、实验原理及说明
通过实际操作,使学生对Linux的使用有一个更深刻的理解;熟悉Linux的开发环境及程序结构。
四、实验仪器
安装操作系统:Linux
五、实验内容和步骤
熟悉常用的Linux操作
请按要求上机实践如下linux基本命令。
cd命令:切换目录
(1)切换到目录 /usr/local
(2)去到目前的上层目录
(3)回到自己的主文件夹
ls命令:查看文件与目录
(4)查看目录/usr下所有的文件
mkdir命令:新建新目录
(5)进入/tmp目录,创建一个名为a的目录,并查看有多少目录存在
(6)创建目录a1/a2/a3/a4
rmdir命令:删除空的目录
(7)将上例创建的目录a(/tmp下面)删除
(8)删除目录a1/a2/a3/a4,查看有多少目录存在
cp命令:复制文件或目录
(9)将主文件夹下的.bashrc复制到/usr下,命名为bashrc1
(10)在/tmp下新建目录test,再复制这个目录内容到/usr
mv命令:移动文件与目录,或更名
(11)将上例文件bashrc1移动到目录/usr/test
(12)将上例test目录重命名为test2
rm命令:移除文件或目录
(13)将上例复制的bashrc1文件删除
(14)rm -rf 将上例的test2目录删除
cat命令:查看文件内容
(15)查看主文件夹下的.bashrc文件内容
tac命令:反向列示
(16)反向查看主文件夹下.bashrc文件内容
more命令:一页一页翻动查看
(17)翻页查看主文件夹下.bashrc文件内容
head命令:取出前面几行
(18)查看主文件夹下.bashrc文件内容前20行
(19)查看主文件夹下.bashrc文件内容,后面50行不显示,只显示前面几行
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)从~/.bashrc文件中查找字符串'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、Mac OS X、Linux、OpenBSD、Solaris、IBM OS2甚至Android 4.0系统等操作系统。读者可以在Windows系统上安装VirtualBox软件,然后在VirtualBox上安装并且运行Linux操作系统。本次实验默认的Linux发行版为Ubuntu14.04。
五、实验内容和步骤
共享文件夹设置
virtualbox中ubuntu和windows共享文件夹设置
先关闭ubuntu,在virtualbox“设置”中找到“共享文件夹”,点击进入,点击右边添加目录按钮,添加windows中要共享的目录,取一个名。比如我在D盘建一个名为share的文件夹,如下图:
重启ubuntu,在ubuntu系统最上端“设备”中找到“共享文件夹”,点击进入,点击右边添加目录按钮,添加第二步操作的共享目录,如
进入虚拟Ubuntu,在命令行终端下输入:
sudo mkdir /mnt/shared
sudo mount -t vboxsf share /mnt/shared
其中"share"是之前创建的共享文件夹的名字。OK,现在Ubuntu和主机可以互传文件了。
要想自动挂载的话,可以在/etc/fstab中添加一项
share /mnt/shared vboxsf rw,gid=100,uid=1000,auto 0 0
Java安装
第一步 获取安装包。到oracle官方去下载jdk安装包,选择版本时注意选择自己的系统的版本。
第二步:解压安装
cd /usr/lib/jvm
第三步:修改环境变量
vi ~/.bashrc
添加:
export JAVA_HOME=/usr/lib/jvm/java-7-sun
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存退出,输入以下命令使之立即生效。
source ~/.bashrc
第四步:配置默认JDK版本由于ubuntu中可能会有默认的JDK,如openjdk,所以,为了将我们安装的JDK设置为默认JDK版本,还要进行如下工作。
执行代码:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-sun/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-sun/bin/javac 300
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java-7-sun/bin/jar 300
sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java-7-sun/bin/javah 300
sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java-7-sun/bin/javap 300
执行代码:
sudo update-alternatives --config java
系统会列出各种JDK版本,如下所示:
baidu@baidu:~$ sudo update-alternatives --config java
有 3 个候选项可用于替换 java (提供 /usr/bin/java)。
选择 路径 优先级 状态
----------------------------------------------------------
* 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 自动模式
1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 手动模式
2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 手动模式
3 /usr/lib/jvm/java-7-sun/bin/java 300 手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:3
update-alternatives: 使用 /usr/lib/jvm/java-7-sun/bin/java 来提供 /usr/bin/java (java),于 手动模式 中。
第五步:测试
baidu@baidu:~$ java -version
Java HotSpot(TM) Server VM (build 21.0-b17, mixed mode)
Hadoop安装
1、创建hadoop用户
安装 Ubuntu 的时候不是用的 “hadoop” 用户,那么需要增加一个名为 hadoop 的用户。
首先按 ctrl+alt+t 打开终端窗口,输入如下命令创建新用户 :
sudo useradd -m hadoop -s /bin/bash
接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码:
sudo passwd hadoop
可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题:
sudo adduser hadoop sudo
最后注销当前用户(点击屏幕右上角的齿轮,选择注销),返回登陆界面。在登陆界面中选择刚创建的 hadoop 用户进行登陆。
2. 安装SSH、配置SSH无密码登陆
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:
安装后,可以使用如下命令登陆本机:
ssh localhost
利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
$exit # 退出刚才的 ssh localhost
$cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
$ssh-keygen -t rsa # 会有提示,都按回车就可以
$cat ./id_rsa.pub >> ./authorized_keys # 加入授权
$cd /usr/local/
$sudo chown -R hadoop ./hadoop # 修改文件权限
$cd /usr/local/hadoop
$./bin/hadoop version
六、注意事项
七、预习与思考题
1、在Linux环境下完成伪分布式环境的搭建,并运行Hadoop自带的WordCount实例检测是否运行正常。
实验三:熟悉Hadoop平台(2学时)
一、实验目的与要求
1、理解 Hadoop平台运行原理。
2、熟悉Hadoop的操作
二、实验类型
设计型
三、实验原理及说明
通过实际操作,使学生对Hadoop的使用有一个更深刻的理解;熟悉Hadoop的开发环境及程序结构。
四、实验仪器
安装Ubuntu系统的计算机若干台
五、实验内容和步骤
1. Hadoop单机配置(非分布式)
Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。
Hadoop 附带了丰富的例子(运行 . 可以看到所有例子),包括 wordcount、terasort、join、grep 等。
在此我们选择运行 grep 例子,我们将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。
执行成功后如下所示,输出了作业的相关信息,输出的结果是符合正则的单词 dfsadmin 出现了1次
注意,Hadoop 默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将 ./output 删除。
2. Hadoop伪分布式配置
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: gedit ./etc/hadoop/core-site.xml),将当中的
修改为下面配置:
同样的,修改配置文件 hdfs-site.xml:
Hadoop配置文件说明
Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。
配置完成后,执行 NameNode 的格式化:
成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。
如果在这一步时提示 Error: JAVA_HOME is not set and could not be found. 的错误,则说明之前设置 JAVA_HOME 环境变量那边就没设置好,请先设置好 JAVA_HOME 变量,否则后面的过程都是进行不下去的。
接着开启 NameNode 和 DataNode 守护进程。
若出现如下SSH提示,输入yes即可。
启动时可能会出现如下 WARN 提示:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable WARN 提示可以忽略,并不会影响正常使用。
启动 Hadoop 时提示 Could not resolve hostname
如果启动 Hadoop 时遇到输出非常多“ssh: Could not resolve hostname xxx”的异常情况,如下图所示:
这个并不是 ssh 的问题,可通过设置 Hadoop 环境变量来解决。首先按键盘的 ctrl + c 中断启动,然后在 ~/.bashrc 中,增加如下两行内容(设置过程与 JAVA_HOME 变量一样,其中 HADOOP_HOME 为 Hadoop 的安装目录):
保存后,务必执行 source ~/.bashrc 使变量设置生效,然后再次执行 ./sbin/start-dfs.sh 启动 Hadoop。
启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。
成功启动后,可以访问 Web 界面 ://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。
六、注意事项
熟悉Hadoop的配置文件。
七、预习与思考题
单机版与伪分布式的配置。
实验四:Hadoop初级实践(2学时)
一、实验目的与要求
1、理解 Hadoop平台运行原理。
2、熟悉wordcount程序。
二、实验类型
设计型
三、实验原理及说明
通过实际操作,使学生对Hadoop的使用有一个更深刻的理解;熟悉Hadoop的开发环境及程序结构。
四、实验仪器
安装Ubuntu系统的计算机若干台
五、实验内容和步骤
单词计数是最简单也是最能体现MapReduce思想的程序之一,可以称为MapReduce版"Hello World",该程序的完整代码可以在Hadoop安装包的"src/examples"目录下找到。单词计数主要完成功能是:统计一系列文本文件中每个单词出现的次数,如下图所示。以"hadoop"用户登录Hadoop服务器。
1. 创建本地的示例数据文件:
并在这个目录下创建2个文件分别命名为【myTest1.txt】和【myTest2.txt】或者你想要的任何文件名。
分别在这2个文件中输入下列示例语句:
2. 在HDFS上创建输入文件夹
调出终端,输入下面指令:
$cd /usr/local/hadoop
$./bin/hadoop fs -mkdir hdfsInput
执行这个命令时可能会提示类似安全的问题,如果提示了,请使用
$./bin/hadoop dfsadmin -safemode leave
来退出安全模式。
当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入 安全模式。
3. 上传本地file中文件到集群的hdfsInput目录下
在终端依次输入下面指令:
$./bin/hadoop fs -put file/myTest*.txt hdfsInput
4. 运行例子:
在终端输入下面指令:
$./bin/hadoop
$./bin/hadoop jar hadoop-examples-*.jar wordcount hdfsInput hdfsOutput
应该出现下面结果:
Hadoop命令会启动一个JVM来运行这个MapReduce程序,并自动获得Hadoop的配置,同时把类的路径(及其依赖关系)加入到Hadoop的库中。以上就是Hadoop Job的运行记录,从这里可以看到,这个Job被赋予了一个ID号:job_2_0002,而且得知输入文件有两个(Total input paths to process : 2),同时还可以了解map的输入输出记录(record数及字节数),以及reduce输入输出记录。
查看HDFS上hdfsOutput目录内容:
在终端输入下面指令:
bin/hadoop fs -ls hdfsOutput
从上图中知道生成了三个文件,我们的结果在"part-r-00000"中。
使用下面指令查看结果输出文件内容
bin/hadoop fs -cat output/part-r-00000
输出目录日志以及输入目录中的文件是永久存在的,如果不删除的话,如果出现结果不一致,请参考这个因素。
六、注意事项
熟悉Hadoop常用的命令。
七、预习与思考题
Hadoop的执行过程。
实验五:熟悉常用的HDFS操作(2学时)
一、实验目的与要求
1、理解 Hadoop平台运行原理。
2、熟悉HDFS系统
二、实验类型
设计型
三、实验原理及说明
通过实际操作,使学生对Hadoop的使用有一个更深刻的理解;熟悉Hadoop的开发环境及程序结构。
四、实验仪器
安装Ubuntu系统的计算机若干台
五、实验内容和步骤
1. 编写简单shell脚步
1. 使用gedit等任意文本编辑工具,都可以编写shell脚本。使用“gedit test.sh”在当前目录下,创建一个测试shell脚本。shell脚本的后缀习惯性写成“.sh”。
1. 2
shell脚本的开始需要声明此脚本使用什么程序解析执行,首行为“#!/bin/sh ”,标明使用bash解析器解析当前shell脚本。
2. 3
完成所有语言都有的入门级显示效果,使用shell脚本打印hello world,第二行为“echo ‘Hello World!’”。
3. 4
由于新建的shell脚本没有执行权限,首先使用“chmod 755 test.sh”对shell脚本添加执行权限。
4. 5
使用“./test.sh”命令执行新建的shell脚本。
5. 6
看看自己编写第一个shell脚本执行的结果吧。
2. 利用Hadoop提供的Shell命令完成相同任务:
(1) 向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件;
先到Hadoop主文件夹cd /usr/local/hadoop
启动Hadoop服务sbin/start-dfs.sh
sbin/start-yarn.sh
创建两个任意文本文件用于实验echo "hello world" > local.txt
echo "hello hadoop" >text.txt
检查文件是否存在hadoop fs -test -e text.txt
echo $?
上传本地文件到HDFS系统(上传之后再执行一遍上一步,如果是第一次做HDFS操作第一次做这一步会出错,可以直接做一次hadoop fs -appendToFile local.txt text.txt就能解决)hadoop fs -put text.txt
追加到文件末尾的指令hadoop fs -appendToFile local.txt text.txt
查看HDFS文件的内容hadoop fs -cat text.txt
覆盖原有文件的指令(覆盖之后再执行一遍上一步)hadoop fs -copyFromLocal -f local.txt text.txt
以上步骤也可以用如下Shell脚步实现
if $(hadoop fs -test -e text.txt);
then $(hadoop fs -appendToFile local.txt text.txt);
else $(hadoop fs -copyFromLocal -f local.txt text.txt);
fi
(2) 从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名;
Shell命令实现:
if $(hadoop fs -test -e /usr/local/hadoop/text.txt);
then $(hadoop fs -copyToLocal text.txt ./text.txt);
else $(hadoop fs -copyToLocal text.txt ./text2.txt);
fi
(3) 将HDFS中指定文件的内容输出到终端中;
hadoop fs -cat text.txt
(4) 显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息;
hadoop fs -ls -h text.txt
(5) 给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息;
hadoop fs -ls -R -h /user/tiny
(6) 提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录;
Shell命令实现:
if $(hadoop fs -test -d dir1/dir2);
then $(hadoop fs -touchz dir1/dir2/filename);
else $(hadoop fs -mkdir -p dir1/dir2 && hdfs dfs -touchz dir1/dir2/filename);
fi
删除操作hadoop fs -rm dir1/dir2/filename
(7) 提供一个HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,如果目录文件所在目录不存在则自动创建相应目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录;
a) 创建目录
hadoop fs -mkdir -p dir1/dir2
b) 删除目录(如果目录非空则会提示not empty,不执行删除)
hadoop fs -rmdir dir1/dir2
c) 强制删除目录
hadoop fs -rm -r dir1/dir2
(8) 向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾;
追加到文件末尾hadoop fs -appendToFile local.txt text.txt
追加到文件开头hadoop fs -get text.txt
cat text.txt >> local.txt
hadoop fs -copyFromLocal -f text.txt text.txt
(9) 删除HDFS中指定的文件;
hadoop fs -rm text.txt
(10) 删除HDFS中指定的目录,由用户指定目录中如果存在文件时是否删除目录;
a) 删除目录(如果目录非空则会提示not empty,不执行删除)
hadoop fs -rmdir dir1/dir2
b) 强制删除目录
hadoop fs -rm -R dir1/dir2
(11) 在HDFS中,将文件从源路径移动到目的路径。
hadoop fs -mv text.txt input
3. 编程实现一个类“MyFSDataInputStream”,该类继承“”,要求如下:实现按行读取HDFS中指定文件的方法“readLine()”,如果读到文件末尾,则返回空,否则返回文件一行的文本。
public class MyFSDataInputStream extends FSDataInputStream {
public MyFSDataInputStream(InputStream in) {
super(in);
// TODO Auto-generated constructor stub
}
public static String readline(Configuration conf, String remoteFilePath) throws IOException {
FileSystem fs = FileSystem.get(conf);
Path remotePath = new Path(remoteFilePath);
FSDataInputStream in = fs.open(remotePath);
BufferedReader d = new BufferedReader(new InputStreamReader(in));
String line = null;
if((line=d.readLine())!=null)
{
d.close();
in.close();
fs.close();
return line;
}
else{
d.close();
in.close();
fs.close();
return null;
}
}
public static void main(String[] args) {
Configuration conf = new Configuration();
String remoteFilePath = "/user/tiny/text.txt"; // HDFS路径
try {
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
4. 查看Java帮助手册或其它资料,用“”和“”编程完成输出HDFS中指定文件的文本到终端中。
public class FsUrl {
static {
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
public static void cat(String remoteFilePath) throws IOException {
InputStream in = null;
try {
in = new URL("hdfs","localhost",9000,remoteFilePath).openStream();
IOUtils.copyBytes(in, System.out, 4096, false);
} finally {
IOUtils.closeStream(in);
}
}
/**
* 主函数
*/
public static void main(String[] args) {
String remoteFilePath = "/user/tiny/text.txt"; // HDFS路径
try {
FsUrl.cat(remoteFilePath);
} catch (Exception e) {
e.printStackTrace();
}
展开阅读全文