Hadoop日记1:初探linux、JDK、Hadoop2、Hello World

来源:互联网 发布:vue.js 动态添加dom 编辑:程序博客网 时间:2024/06/08 08:06

环境:Wmware 12.5.7、Ubuntu 16.04 LTS、java 1.8.0_144、Hadoop 2.7.4。

今天在linux下尝试了hadoop的操作,首先是配置java环境,过程有点繁琐,好在linux可以直接在终端下载软件,期间配置环境变量时误删了profile下的一个词还找了很久错。然后是安装SSH,配置SSH的无密码登陆,这个具体用处暂时不懂。下一步就是安装Hadoop2了,然后就是一个很奇怪的“找不到JAVA_HOME” 问题,后来经过排查需要将hadoop-env.sh和hadoop-config.sh等文件中的JAVA_HOME改成显式的jdk安装路径,问题得以解决。下一步是Hadoop伪分布式配置,使得Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。这个需要修改2个配置文件core-site.xml 和 hdfs-site.xml。  最后是运行实例,统计单词的个数,这里准备了两个文件file1.txt和file2.txt。

hadoop@hadoop-virtual-machine:/usr/local/hadoop$ echo "hello world" > ./input/file1.txthadoop@hadoop-virtual-machine:/usr/local/hadoop$ echo "hello hadoop" > ./input/file2.txt
在hdfs里建个input文件夹,在hdfs原有的input和output文件都要-rmr删掉。

hadoop@hadoop-virtual-machine:/usr/local/hadoop$ bin/hdfs dfs -mkdir input

将txt文件上传到hdfs中

hadoop@hadoop-virtual-machine:/usr/local/hadoop$ bin/hdfs dfs -put ./input/test*.txt input

调用jar

hadoop@hadoop-virtual-machine:/usr/local/hadoop$ bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.4.jar wordcount input output

最后输出output

hadoop@hadoop-virtual-machine:/usr/local/hadoop$ bin/hdfs dfs -cat output/part-r-00000hadoop1hello2world1

还可以将结果导到文件中,注意需要将本地原有的output文件夹删掉,不可以覆盖。

./bin/hdfs dfs -get output ./output

部分资料参考网友:http://www.powerxing.com/install-hadoop/

原创粉丝点击