自己写着玩,当作学习记录!!
- 启动Hadoop
我已经在虚拟机中安装了Hadoop的伪分布式系统,可以使用jps来查看Hadoop的启动进程,但是在这之前, 首先要启动Hadoop。
进入Hadoop安装目录/usr/local/hadoop:
cd /usr/local/hadoop
启动:
./sbin/start-dfs.sh
启动后:
- 本地文件与HDFS的文件传输
hdfs中的目录就是/user/hadoop。
本地数据库在/usr/local/hadoop下。
Hadoop用户家目录就是/home/hadoop。
要查看hdfs中的文件,要用到shell命令(此处要在Hadoop安装目录/usr/local/hadoop下),即./bin/hfds dfs
,然后再跟上指令,如-put /home/hadoop/myfile.txt input
要将本地文件传到HDFS中,如以使用如下命令把本地文件系统的“/home/hadoop/myLocalFile.txt”上传到HDFS中的当前用户目录的input目录下,也就是上传到HDFS的“/user/hadoop/input/”目录下:
./bin/hdfs dfs -put /home/hadoop/myLocalFile.txt input
把HDFS文件下载到本地文件
把HDFS中的myLocalFile.txt文件下载到本地文件系统中的“/home/hadoop/下载/”这个目录下,命令如下:
./bin/hdfs dfs -get input/myLocalFile.txt /home/hadoop/Downloads
3. 利用Web界面管理HDFS
浏览器访问http://localhost:9870
4. 使用eclipse
我的eclipse安装在/usr/local下
5.使用java api
现在要执行的任务是:假设在目录“hdfs://localhost:9000/user/hadoop”下面有几个文件,分别是file1.txt、file2.txt、file3.txt、file4.abc和file5.abc,这里需要从该目录中过滤出所有后缀名不为“.abc”的文件,对过滤之后的文件进行读取,并将这些文件的内容合并到文件“hdfs://localhost:9000/user/hadoop/merge.txt”中。
将编辑好的文件放入HDFS中(自动放入/user/hadoop用户目录下),
运行Java程序后查看过滤出来的merge.txt文件
6. 把Java应用程序生成JAR包,部署到Hadoop平台上运行
由于之前已经运行过一次程序,已经生成了merge.txt,因此,需要首先执行如下命令删除该文件:
cd /usr/local/hadoop
./bin/hdfs dfs -rm /user/hadoop/merge.txt
Shell 命令
现在,就可以在Linux系统中,使用hadoop jar命令运行程序,命令如下:
cd /usr/local/hadoop
./bin/hadoop jar ./myapp/HDFSExample.jar
Shell 命令
上面程序执行结束以后,可以到HDFS中查看生成的merge.txt文件,比如,可以在Linux终端中执行如下命令:
cd /usr/local/hadoop
./bin/hdfs dfs -ls /user/hadoop
./bin/hdfs dfs -cat /user/hadoop/merge.txt
Shell 命令
可以看到如下结果:
this is file1.txt
this is file2.txt
this is file3.txt