用php实现对HDFS的操作

用php实现对HDFS的操作,大体步骤如下:

wget https://dist.apache.org/repos/dist/release/thrift/0.9.0/thrift-0.9.0.tar.gz
tar zxvf thrift-0.9.0.tar.gz
cd thrift-0.9.0
find / -name 'bootstrap.sh'
yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel
/tmp/thrift-0.9.0/contrib/fb303/bootstrap.sh
./configure -prefix=/usr/local/thrift
make //安装期间网络不可中断
make install
cp -R ./lib/php/ /usr/local/thrift/lib/
cp -R /tmp/hadoop-1.0.4/src/contrib/thriftfs/gen-php/ /usr/local/thrift/lib/php/src/packages/hadoopfs/
cd ./lib/php/src/ext/thrift_protocol/
yum install php-devel
/usr/bin/phpize
./configure
make
make test
make install
vim /etc/php.ini
cd /tmp/hadoop-1.0.4/src/contrib/thriftfs/scripts/
/tmp/hadoop-1.0.4/src/contrib/thriftfs/scripts/start_thrift_server.sh

在修改了/tmp/hadoop-1.0.4/src/contrib/thriftfs/scripts/start_thrift_server.sh文件中对TOP和CLASSPATH行后,甚至更换了thrift版本到0.2.0依然出现如下错误(运行上述21行的结果)。

[root@srv211 hadoop-1.0.4]# /tmp/hadoop-1.0.4/src/contrib/thriftfs/scripts/start_thrift_server.sh 59256
log4j:ERROR Could not instantiate class [org.apache.hadoop.log.metrics.EventCounter].
java.lang.ClassNotFoundException: org.apache.hadoop.log.metrics.EventCounter
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at org.apache.log4j.helpers.Loader.loadClass(Loader.java:179)
        at org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:320)
        at org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:121)
        at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:664)
        at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:647)
        at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:544)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:440)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:476)
        at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:471)
        at org.apache.log4j.LogManager.<clinit>(LogManager.java:125)
        at org.apache.log4j.Logger.getLogger(Logger.java:105)
        at org.apache.commons.logging.impl.Log4JLogger.getLogger(Log4JLogger.java:289)
        at org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:109)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
        at org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:1116)
        at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:914)
        at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:604)
        at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:336)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:704)
        at org.apache.hadoop.thriftfs.HadoopThriftServer$HadoopThriftHandler.<clinit>(HadoopThriftServer.java:41)
        at org.apache.hadoop.thriftfs.HadoopThriftServer.<init>(HadoopThriftServer.java:592)
        at org.apache.hadoop.thriftfs.HadoopThriftServer.main(HadoopThriftServer.java:612)
log4j:ERROR Could not instantiate appender named "EventCounter".
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration
        at org.apache.hadoop.thriftfs.HadoopThriftServer$HadoopThriftHandler.<init>(HadoopThriftServer.java:125)
        at org.apache.hadoop.thriftfs.HadoopThriftServer.<init>(HadoopThriftServer.java:592)
        at org.apache.hadoop.thriftfs.HadoopThriftServer.main(HadoopThriftServer.java:612)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        ... 3 more
[root@srv211 hadoop-1.0.4]#

从网上查找了一些方法(其中包括修改/tmp/hadoop-1.0.4/conf/log4j.properties文件,把log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter替换成log4j.appender.EventCounter=org.apache.hadoop.log.metrics.jvm.EventCounter)试了试都不行。

既然别人的可以,自己的却不可以。那就要考虑软件环境问题了。与承载Hadoop的操作系统应该是关系不大。可能的就是Hadoop的版本和java SDK的版本了。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
, hadoop
, apache
, classloader
, thrift
, at org apache
, mongo hadoop java
, java.lang.NoClassDefFoundError
, thrift安装
AT
php如何实现txt操作、spark hdfs文件操作、scala hdfs文件操作、spark 操作hdfs、java 操作hdfs,以便于您获取更多的相关知识。

时间: 2024-12-29 09:38:21

用php实现对HDFS的操作的相关文章

如何实现对word,excel操作题实现自动判卷功能

问题描述 能否实现对word,excel操作题实现自动判卷功能,主要是在计算机应用考试中,需要对word,excel进行编辑,排版等,有没有可以实现这样的自动判卷功能,感谢各位支持一下.

HDFS简介及用C语言访问HDFS接口操作实践

一.概述 近年来,大数据技术如火如荼,如何存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有非常广泛的应用. Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.HDFS是Hadoop项目的核心子项目,是一种具有高容错性.高可靠性.高可扩展性.高吞吐量等特征的分

用ASP语言实现对SQL SERVER 数据库的操作

目前管理信息系统已从传统的客户机/服务器(C/S)模式转向了浏览器/服务器(B/S)模式,特别是微软公司推出它的新产品ASP语言之后,这种转变更加迅猛.管理信息系统的核心是对数据库进行包括添加.修改和查询等等操作,ASP提供的ADO数据库接口控件,使得程序员再也勿需编写复杂的CGI程序了,而只要用几句简单的语句即可实现以上操作.目前有很多介绍用ASP开发网络数据库的程序例子,但绝大部分是利用ACCESS作底层数据库.相对于ACCESS而言,SQL SERVER数据库系统要复杂得多,因此在程序开发

用ASP实现对ORACLE数据库的操作

oracle|数据|数据库 ASP(Active Server Pages)是微软公司为开发互联网应用程序所提出的工具之一,ASP与数据库的联接一般通过ADO(Activex Data Object)来实现的,就象<计算机世界>2000年3月20日的<用ASP对SQL Server数据库操作>文章介绍的一样,ADO可以完全支持Microsoft SQL Server ,但对应用更加广泛.机制更加复杂的ORACLE 数据库服务就有一些困难,如果想作一些简单的查询功能,ADO是足够的,

Python实现对PPT文件进行截图操作的方法

  本文实例讲述了Python实现对PPT文件进行截图操作的方法.分享给大家供大家参考.具体分析如下: 下面的代码可以为powerpoint文件ppt进行截图,可以指定要截取的幻灯片页面,需要本机安装了powerpoint,可以指定截图的大小分辨率 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import os import comtypes.client def export_presentation(path_to_ppt, path_to_folder):

基于DevExpress实现对PDF、Word、Excel文档的预览及操作处理

原文:基于DevExpress实现对PDF.Word.Excel文档的预览及操作处理 在一般的管理系统模块里面,越来越多的设计到一些常用文档的上传保存操作,其中如PDF.Word.Excel等文档,有时候是通过分布式的WCF技术实现数据的显示和处理,因此希望直接预览而不需要下载文件,这样能够给我们提供很多的方便.在DevExpress里面,提供了相应的控件来显示和处理这些文档,本文主要介绍如何利用DevExpress的控件实现对PDF.Word.Excel文档的预览和操作处理. 1.PDF的预览

用ASP实现对ORACLE数据库的操作_应用技巧

ASP(Active Server Pages)是微软公司为开发互联网应用程序所提出的工具之一,ASP与数据库的联接一般通过ADO(Activex Data Object)来实现的,就象<计算机世界>2000年3月20日的<用ASP对SQL Server数据库操作>文章介绍的一样,ADO可以完全支持Microsoft SQL Server ,但对应用更加广泛.机制更加复杂的ORACLE 数据库服务就有一些困难,如果想作一些简单的查询功能,ADO是足够的,如要想更好地发挥ORACLE

ASP语言实现对SQL SERVER数据库的操作_应用技巧

目前管理信息系统已从传统的客户机/服务器(C/S)模式转向了浏览器/服务器(B/S)模式,特别是微软公司推出它的新产品ASP语言之后,这种转变更加迅猛.管理信息系统的核心是对数据库进行包括添加.修改和查询等等操作,ASP提供的ADO数据库接口控件,使得程序员再也勿需编写复杂的CGI程序了,而只要用几句简单的语句即可实现以上操作.1.系统环境 PII 350,Ram 64M,WINNT Server 4.0, Service Pack4, IIS 4.0, SQL Server7.0. 2.系统功

ASP语言实现对SQL SERVER数据库的操作

目前管理信息系统已从传统的客户机/服务器(C/S)模式转向了浏览器/服务器(B/S)模式,特别是微软公司推出它的新产品ASP语言之后,这种转变更加迅猛.管理信息系统的核心是对数据库进行包括添加.修改和查询等等操作,ASP提供的ADO数据库接口控件,使得程序员再也勿需编写复杂的CGI程序了,而只要用几句简单的语句即可实现以上操作.1.系统环境 PII 350,Ram 64M,WINNT Server 4.0, Service Pack4, IIS 4.0, SQL Server7.0. 2.系统功