对于公司框架hadoop+hive,hive通过建立外部表(EXTERNAL TABLE)可以直接识别hdfs档,直接那假说本地文件hdfs文件系统。hive。
这期间须要一个ftp软件,能够沟通本地文件和hdfs软件,上网找到一个软件《hdfs-over-ftp》,地址为https://github.com/iponweb/hdfs-over-ftp,可惜这个是建立在hadoop-0.2初级上,作者好久不更新,如今用的环境是hadoop2.4.1,有些许变化。以下地址是我更新后的地址http://download.csdn.net/detail/zhulin40/7732063
1、Hadoop-core包在新版中不存在。删除。加入hadoop-common包,hadoop-hdfs包变为2.4.1,mina-core改为mina-core,变动例如以下。
<!-- <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-core</artifactId> <version>0.20</version> </dependency> --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.4.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.4.1</version> </dependency> <dependency> <groupId>org.apache.mina</groupId> <artifactId>mina-core</artifactId> <version>2.0.0-M2</version> </dependency>
2、配置文件user.properties(假设不是agladyshev不是可读写的的系统用户。仅仅具有读权限,能够额外配置一个有写权限的用户)
#ftpusername为agladyshev 。password为MD5后的333
ftpserver.user.agladyshev.userpassword=310dcbbf4cce62f762a2aaa148d556bd
ftpserver.user.agladyshev.homedirectory=/
ftpserver.user.agladyshev.enableflag=true
ftpserver.user.agladyshev.writepermission=true
ftpserver.user.agladyshev.maxloginnumber=0
ftpserver.user.agladyshev.maxloginperip=0
ftpserver.user.agladyshev.idletime=0
ftpserver.user.agladyshev.uploadrate=0
ftpserver.user.agladyshev.downloadrate=0
ftpserver.user.agladyshev.groups=agladyshev,users
3、配置文件hdfs-over-ftp.properties(假设不是localhost。请改为实际的)
hdfs-uri = hdfs://localhost:9000/
4、linux下运行项目下的文件hdfs-over-ftp.sh启动(须要maven编译)
或者直接maven启动:mvn clean compile exec:java-Dexec.mainClass="org.apache.hadoop.contrib.ftp.HdfsOverFtpServer"
5、传输,用普通ftp命令訪问 例如ftp://192.168.215.112:2222/(缺省值是2222port)
版权声明:本文博主原创文章,博客,未经同意不得转载。