`

PHP调用SHELL上传本地文件到Hadoop的hdfs中

    博客分类:
  • php
 
阅读更多

本来是用Thrift进行上传,但其上传效率之低,另人发指,只好选用其它方法。

 

环境:

php 运行环境为nginx + php-fpm

 

因为hadoop开启了权限控制,所以直接使用php调用shel进行上传时,没有权限。通过php执行命令看来,php运行的帐户和级均为nobody。因此,解决方法有两个:一,在hadoop的shell中创建目录,并把目录的所有者赋给nobody组的nobody用户。二,原来的目录权限放开,使用777。下面详讲操作步骤:

 

方法一:./hadoop fs -chown -R nobody:nobody /resources

注:/resources是用户目录,需要根据情况改变

 

方法二:./hadoop fs -chomod -R 777 /resources

注:/resources是用户目录,需要根据情况改变

 

php调用shell的方式:

public function uploadByShell($local, $hdfs) {
			
			$shell =  "sh /usr/local/hadoop/hadoop-0.20.2/bin/hadoop fs -copyFromLocal " . $local ." " . $hdfs;
			$shell .= "; sh /usr/local/hadoop/hadoop-0.20.2/bin/hadoop fs -chmod 777 " . $hdfs;
			$res = null;
			system($shell, $res);
			$flag = false;
			if ($res == "0") {
				$flag = true;
			}
			
			return $flag;
		}
 

 

 

 

 

分享到:
评论

相关推荐

    Hadoop HDFS_Shell命令详解.pdf

    ### Hadoop HDFS Shell ...Hadoop HDFS Shell 命令提供了丰富的功能来管理和操作HDFS中的文件和目录。掌握这些命令对于Hadoop的日常运维至关重要。通过上述命令的详细介绍,用户可以更加高效地利用HDFS进行数据管理。

    HDFS部署与Shell命令使用

    HDFS Shell命令是Hadoop提供的用于管理和操作HDFS文件系统的命令行工具。通过这些命令,用户可以直接在终端中对HDFS进行各种操作,包括文件的上传下载、文件夹的创建删除等。 - **文件命令** - `hadoop fs -put ...

    Hadoop中一些hdfs的命令

    - `-put`: 将本地文件复制到HDFS中。 - `<localsrc>`: 指定要复制的本地文件或目录。 - `<dst>`: 指定HDFS中的目标路径。 **示例**: ```shell # 将本地文件a.txt复制到HDFS的/zr/test下 hdfs dfs -put a.txt...

    大数据实验二-HDFS编程实践

    - **文件复制**:`hdfs dfs -copyFromLocal`将本地文件复制到HDFS,`hdfs dfs -copyToLocal`将HDFS中的文件复制到本地。 ##### Java API实践 1. **环境搭建**:首先需要在开发环境中配置好Hadoop相关的依赖,通常...

    Hadoop Shell命令大全

    在Hadoop中,所有文件系统(FS)Shell命令都应以bin/hadoop fs 的形式调用。命令行中的URI路径用作参数,其格式为scheme://authority/path。对于HDFS文件系统,scheme是hdfs,而对于本地文件系统,scheme是file。...

    从ftp中下载文件上传到Hadoop分布式文件系统

    4. **上传至HDFS**:使用Hadoop的命令行工具(如`hadoop fs`命令)或Java API,将本地下载的文件上传到HDFS。这可能涉及创建目标目录、指定文件名以及调用上传函数。 5. **错误处理和资源释放**:脚本应包含适当的...

    hadoop-shell.pdf

    - put:上传本地文件到HDFS。 - moveFromLocal:移动文件或目录从本地文件系统到HDFS。 Hadoop生态系统还包含 MapReduce 编程模型,用于大规模数据集的并行运算。它将计算分为两个阶段:Map(映射)和 Reduce(归约...

    Hadoop Shell命令

    调用文件系统(FS)Shell命令应使用 bin/hadoop fs 的形式。 所有的的FS shell命令使用URI路 径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme是hdfs,对本地文件 系统,scheme是file。其中...

    Hadoop原理与技术Spark操作实验

    (7)从分布式文件系统HDFS中加载数据 (8)可以调用SparkContext的parallelize方法,在Driver中一个已经存在的数组上创建RDD。 (9)可以调用SparkContext的parallelize方法,在Drive (二)spark运行wordcount程序

    大数据技术基础实验报告-调用Java API实现HDFS操作.doc

    总的来说,本实验旨在使学习者熟悉Hadoop环境下的Java编程,理解如何调用HDFS API进行文件操作,这是一项重要的技能,因为在大数据处理中,HDFS是数据存储的核心组件。通过这样的实践,学生将能够更好地理解和应用大...

    对Hadoop-HDFS性能造成重大影响的杀手-Shell.docx

    标题中的“对Hadoop-HDFS性能造成重大影响的杀手-Shell”揭示了一个关键的问题,即在Hadoop分布式文件系统(HDFS)中,Shell命令的使用可能会显著影响系统的性能。描述和部分内容进一步提供了这个问题的详细分析。 ...

    大数据平台构建:访问HDFS.pptx

    - **put**: 从本地文件系统向HDFS上传文件,如`hadoop fs -put <localsrc> <dst>`将本地文件复制到HDFS。 - **cat**: 查看文件内容,如`hadoop fs -cat <URI>`用于查看HDFS文件的全部内容。 - **cp**: 复制HDFS上...

    hadoop 部分 shell 脚本

    - `hadoop fs -put`: 将本地文件上传到HDFS。 - `hadoop fs -get`: 从HDFS下载文件到本地。 - `hadoop fs -rm`: 删除HDFS上的文件或目录。 - `hadoop fs -mv`: 在HDFS内部移动文件或目录。 2. **MapReduce操作*...

    hdfs-shell:HDFS Shell是一种HDFS操作工具,可与Hadoop DFS中集成的功能一起使用

    相对于直接调用hdfs dfs函数的优势UI: HDFS DFS为每个命令调用启动JVM,HDFS Shell仅执行一次-这意味着当您需要更频繁地使用HDFS时可以大大提高速度命令可以以简短的方式使用-例如。 hdfs dfs -ls / , ls / -都...

    Hadoop 培训课程(2)HDFS

    Hadoop 培训课程(2)HDFS 分布式文件系统与HDFS HDFS体系结构与基本概念*** HDFS的shell操作*** java接口及常用api*** ---------------------------加深拓展---------------------- RPC调用** HDFS的分布式存储架构的...

    apache-hadoop-3.1.3-winutils-master.zip

    在这个"apache-hadoop-3.1.3-winutils-master.zip"压缩包中,包含了在Windows环境下配置Hadoop HDFS客户端所需的组件,特别是`hadoop-winutils`和`hadoop.dll`这两个关键文件,它们对于在Windows系统上运行Hadoop...

    基于Hadoop的ETL处理Shell架构

    1. **数据抽取**:Shell脚本可以连接到各种数据源,如关系型数据库、日志文件或网络接口,通过`curl`、`mysql`等命令将数据导入HDFS。 2. **数据转换**:利用Shell的文本处理功能,对数据进行清洗、格式转换、异常值...

    hadoop的hadoop.dll和winutils.exe下载

    为了在Windows上成功配置Hadoop,你需要将`winutils.exe`添加到系统的PATH环境变量中,这样就可以在命令行中直接调用它了。 在下载这两个文件时,有几点需要注意: 1. 确保你从可信赖的源获取文件,因为这些文件...

    Hadoop深入浅出之HDFS介绍.pptx

    例如,`-ls`用于列出目录内容,`-du`显示文件大小,`-count`统计文件数量,`-mv`和`-cp`分别用于移动和复制文件,`-rm`删除文件,`-put`和`-copyFromLocal`将本地文件上传至HDFS,`-get`和`-copyToLocal`则用于下载...

    hadoop fs操作指南

    首先,要使用HDFS的FS Shell命令,您需要使用`hadoop fs <args>`的形式来调用,其中`<args>`是您想执行的FS Shell命令以及其参数。所有FS Shell命令使用URI路径作为参数,URI格式为`scheme://authority/path`。对于...

Global site tag (gtag.js) - Google Analytics