首页 > 代码库 > hadoop2.4.1的ftp服务器搭建

hadoop2.4.1的ftp服务器搭建

公司框架用的hadoop+hive,hive通过建立外部表(EXTERNAL TABLE)可以直接识别hdfs文件,也就是说如果直接把本地文件传到hdfs文件系统中,hive就可以自动识别数据。这期间需要一个ftp软件,可以沟通本地文件和hdfs软件,上网找到一个软件《hdfs-over-ftp》,地址为https://github.com/iponweb/hdfs-over-ftp,可惜这个是建立在hadoop-0.20基础上,作者好久不更新,现在用的环境是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不是可读写的的系统用户,只具有读权限,可以额外配置一个有写权限的用户)

#ftp用户名为agladyshev ,密码为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/(默认是2222端口)