当前位置: 首页 > news >正文

那个网站推作者自己搭建网站

那个网站推作者,自己搭建网站,英文网站建设cms,汕头老城区图片Hadoop入门系列(四) HDFS的使用与编程 内容 使用Hadoop Shell命令操作hdfs文件系统,熟悉分布式文件系统及操作命令。配置Maven及使用Maven构建的Hadoop工程项目。使用Hadoop的JAVA api操作hdfs文件系统。 HDFS的使用与编程 HDFS基本命令 mkdir创建文件目录 ha…

Hadoop入门系列(四) HDFS的使用与编程

内容

  • 使用Hadoop Shell命令操作hdfs文件系统,熟悉分布式文件系统及操作命令。
  • 配置Maven及使用Maven构建的Hadoop工程项目。
  • 使用Hadoop的JAVA api操作hdfs文件系统。

HDFS的使用与编程

HDFS基本命令

mkdir创建文件目录

hadoop  fs  -mkdir  -p  /Software/hadoop/
hadoop  fs  -mkdir  -p  hdfs://localhost:9000/Software/Java/

put上传文件

hadoop  fs  -put  ~/hadoop-2.8.3.tar.gz  /Software/hadoop/
hadoop  fs  -put  ~/jdk-8u172-linux-x64.rpm  /Software/Java/
hadoop  fs  -put  /usr/local/hadoop2/README.txt  /

ls显示目录结构

hadoop fs -ls  /Software/

chmod修改文件权限

hadoop fs -chmod 600 /Software/hadoop
hadoop fs -ls  /Software/

rm删除文件

hadoop fs -rm /Software/Java/*

rmdir删除目录

hadoop fs -rmdir /Software/Java

get下载文件

hadoop fs -get /README.txt  ~
ls -l ~

cat显示文件内容

hadoop fs -cat /README.txt

cp复制文件

hadoop fs -cp /Software/hadoop/hadoop-2.8.3.tar.gz /Software

mv移动文件

hadoop fs -mkdir -p /input
hadoop fs -mv /README.txt /input

使用Java API 访问HDFS文件系统

ApacheMaven是一套软件工程管理和整合工具。基于工程对象模型(POM)的概念
通过一个中央信息管理模块,Maven能够管理项目的构建、发布、报告和文档。即使常用
的Eclipse这样的JavaIDE开发环境,其内部也是通过Maven管理Java项目的。在编程时,
通过Maven的包管理功能可以自动下载程序所需要的jar包,使得开发过程十分方便。

MAVEN 的安装与配置

这里的安装包我已经事先准备好了,所以可以直接从sudo tar开始执行

cd 
curl  -O  http://mirrors.shu.edu.cn/apache/maven/binaries/apache-maven-3.2.2-bin.tar.gz
sudo tar -xvf ./apache-maven-3.2.2-bin.tar.gz -C /usr/local/
echo 'export MAVEN_HOME=/usr/local/apache-maven-3.2.2
> export MAVEN_OPTS="$MAVEN_OPTS -Xms256m -Xmx512m -XX:ReservedCodeCacheSize=64m"
> export PATH=${PATH}:${MAVEN_HOME}/bin' > ~/maven.sh
sudo  mv  ~/maven.sh   /etc/profile.d/
source  /etc/profile.d/maven.sh
mvn  --version

在这里插入图片描述
在这里插入图片描述

使用 Maven 阿里云中央仓库

由于Maven 缺省使用国外的中央仓库,使得下载依赖包时十分缓慢,因此,需要将中央仓库配置为国内的阿里云中央仓库。
打开maven的配置文件

sudo gedit  /usr/local/apache-maven-3.2.2/conf/settings.xml

在这里插入图片描述

  <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror></mirrors>

在这里插入图片描述

使用 Maven 构建Java项目

在本实验中我们将要开发一个读取并显示hdfs文件系统根目录下的README.txt文件
的程序。
为此我们采用Maven构建Java项目
使用Maven只要学习很少的命令就可以创
建和管理Java项目
在命令行下执行以下代码,以创建Java项目。

cd  ~
mvn archetype:generate -DgroupId=edu.dufe.hdfstest -DartifactId=HdfsCatREADME -DarchetypeArtifactId=maven-archetype-quickstart  -DinteractiveMode=false

在这里插入图片描述
我们可以使用tree 命令查看一下目录的结构

**如果没有下载过tree命令的用下面的语句下载**
sudo yum -y install tree

在这里插入图片描述
上图就是刚刚创建的java项目的结构了
项目目录下pom.xml文件,它描述了整个项目的信息,一切从目录结构,项目的插件,
项目依赖,如何构建这个项目等。App.java是项目源程序AppTest.java是项目测试源程序。
在本实验中我们将要开发一个读取并显示hdfs文件系统根目录下的README.txt文件
的程序因此需要将App.java名称重命名为HdfsCatREADME.java并在pom.xml中添加与
hadoop2.8.3的依赖项。为此执行以下命令。

修改源程序文件名

cd   ~/HdfsCatREADME/src/main/java/edu/dufe/hdfstest/
mv  ./App.java  ./HdfsCatREADME.java
cd   ~/HdfsCatREADME

然后在CentOS7桌面上,使用gedit打开HdfsCatREADME/pom.xml文件。将以下红色内
容添加到文件的对应位置处。

在这里插入图片描述

gedit ~/HdfsCatREADME/pom.xml 

下面是整个文件修改后的内容

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>edu.dufe.hdfstest</groupId><artifactId>HdfsCatREADME</artifactId><packaging>jar</packaging><version>1.0-SNAPSHOT</version><name>HdfsCatREADME</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>2.8.3</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.8.3</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-core</artifactId><version>2.8.3</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.8.3</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-auth</artifactId><version>2.8.3</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><build><finalName>HdfsCatREADME</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>2.4</version><configuration><archive><manifest><mainClass>edu.dufe.hdfstest.HdfsCatREADME</mainClass><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix></manifest><manifestEntries><Class-Path>lib/slf4j-api-1.7.13.jar</Class-Path></manifestEntries></archive></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>copy</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib</outputDirectory></configuration></execution></executions></plugin></plugins></build>
</project>

接下里编写Java源程序
gedit src/main/java/edu/dufe/hdfstest/HdfsCatREADME.java

package edu.dufe.hdfstest;import java.io.IOException;  
import java.net.URI;  import org.apache.hadoop.conf.Configuration;  
import org.apache.hadoop.fs.FSDataInputStream;  
import org.apache.hadoop.fs.FileSystem;  
import org.apache.hadoop.fs.Path;  public class HdfsCatREADME 
{public static void main(String[] args) {  try {  String dsf = "hdfs://127.0.0.1:9000/README.txt";  Configuration conf = new Configuration();  FileSystem fs = FileSystem.get(URI.create(dsf),conf);  FSDataInputStream hdfsInStream = fs.open(new Path(dsf));  byte[] ioBuffer = new byte[1024];  int readLen = hdfsInStream.read(ioBuffer);  while(readLen!=-1)  {  System.out.write(ioBuffer, 0, readLen);  readLen = hdfsInStream.read(ioBuffer);  }  hdfsInStream.close();  fs.close();  } catch (IOException e) {  e.printStackTrace();  }  }  
}  

使用 Maven 编译打包Java项目

项目开发完成后,我们就可以编译、打包项目了,为此执行以下命令。

cd   ~/HdfsCatREADME
mvn  clean  compile   
mvn  clean  package  

当命令执行后,显示出[INFO] BUILD SUCCESS内容时,说明编译打包成功。这里
在~/HdfsCatREADME目录下就会多出一个target的文件夹, 并在此文件夹下有编译打包好
的目标程序 HdfsCatREADME.jar

  • 如果编译失败,则有可能是源程序有错误,请根据出错
    提示,仔细核对源程序是否正确。
  • 如果打包失败,请检查pom.xml文件是否正确。

下图是成功的结果
在这里插入图片描述

执行程序

cd   ~/HdfsCatREADME
java  -jar  ./target/HdfsCatREADME.jar  #执行程序

这里我产生了如下的报错

Call From HadoopMaster/192.168.206.15 to localhost:9000 failed on connection exception: java.net.ConnectException: 拒绝连接;

仔细一看 拒绝连接,是因为我重启虚拟机之后尚未启动hadoop 这里只需要start-dfs.sh就可以了
在这里插入图片描述
又报错了,这次是README.txt不存在,简单的检查一下
在这里插入图片描述
因为之前Java里面定义的是根目录下的,这里就简单的copy一份就好了
在这里插入图片描述
这里的命令在文章开头就讲了,所以遇到错误不要慌
在这里插入图片描述
成功读出结果
在这里插入图片描述
更多关于Java操作HDFS的实例 可以看东财实验4PDF的附录

使用Python 访问HDFS文件系统

安装python及hdfs包

注意要先执行下面命令,不然可能会显示python34不存在
官方的rpm repository提供的rpm包往往是很滞后的,装上了 epel 之后,就相当于添加了一个第三方源

yum install epel-release

安装python与hdfs包

sudo  yum  install   python34      #安装python3
sudo  yum  install   python34-pip   #安装包管理工具
sudo  pip3.4  install  hdfs            #安装hdfs包

在这里插入图片描述
可以看到我们已经安装了hdfs,下面的提示是警告你升级pip的,按它说的执行就好了

创建 hdfs 连接实例

python的操作非常简单
先创建client连接
然后通过client对象来操作hdfs ,下面的代码创建了文件夹并且 列举了根目录的内容
在这里插入图片描述
permission参数是对要创建的文件夹设置权限

#创建hdfs连接实例
import sys
import hdfs
client = hdfs.Client("http://127.0.0.1:50070")
#创建文件目录并列表
client.makedirs("/data/tmp",permission=755)
client.list("/")

更多python操作的细节 可搜索百度

http://www.wooajung.com/news/34669.html

相关文章:

  • 域名查询备案查询武汉官网优化公司
  • 广告网站搭建seo优化按天扣费
  • 陕西服装网站建设seo排名优化怎么样
  • 机械加工外发订单平台北京seo专员
  • wordpress 布局插件系统优化助手
  • 网站注册空间百度推广排名代发
  • 做网站销售是干什么的2022国内外重大新闻事件10条
  • 珠海模板网站建设360站长工具seo
  • 手机网站怎么开发南宁优化网站网络服务
  • 外国网站dns招聘网站排名
  • 淘宝做网站费用抖音视频排名优化
  • 如何做网站滚动条网络营销策划包括哪些内容
  • ui设计的网站有哪些俄罗斯搜索引擎推广
  • 在百度做网站需要什么资料国外域名注册网站
  • 凡科做网站友情链接怎么做百度旗下13个app
  • 网站建设标准流程及外包注意事项一个产品的营销方案
  • 企业平台有哪些搜索引擎优化的基本原理
  • 阿里云服务器做网站多少钱正规网站优化推广
  • q a wordpress插件下载地址广州seo关键词优化是什么
  • 松原手机网站开发郑州专业seo哪家好
  • 深圳市网站开发公司今日新闻头条新闻最新
  • 深圳网站建设的服务怎么样搜索引擎营销的优缺点
  • 做网站是不是就能上传东西网站alexa排名
  • 转运网站建设百度关键词关键词大全
  • 网站建设收费价格北京seo网站设计
  • 哈尔滨seo推广汕头seo网络推广
  • 南昌定制网站公司大连企业网站建站模板
  • 网站开发 合同今日热点新闻素材
  • 网站源码出售制作网页的软件有哪些
  • c2c网站的特点怎么做营销推广方案