分享知识-快乐自己:运行(wordcount)案例

Posted mlq2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分享知识-快乐自己:运行(wordcount)案例相关的知识,希望对你有一定的参考价值。

运行 wordcount 案例:

一):大数据(hadoop)初始化环境搭建

二):大数据(hadoop)环境搭建

三):运行wordcount案例

四):揭秘HDFS

五):揭秘MapReduce

六):揭秘HBase

七):HBase编程

-----------------------------------------------------------------

Hadoop集群测试wordcount程序:

1):在bigData目录下创建wordcount文件夹

mkdir wordcount //创建文件夹

技术分享图片

2):在wordcount文件夹下创建两个文件并输入内容

//创建 file1.txt
vim file1.txt
//输入内容如下:

 hello word
 hello java

//创建 file2.txt
vim file2.txt

 hello hadoop
 hello wordcount

 

3):在HDFS中创建input文件夹

hadoop fs -mkdir /input

// hadoop fs  :可以理解为 hadoop系统文件目录

查看创建的文件(是否存在)

技术分享图片

4):把刚才创建的两个文件上传到HDFS中input文件夹

//上传所有以 .txt 结尾的文件
hadoop fs -put ./*.txt /input/

//查看上传的文件
hadoop fs -ls /

技术分享图片

注意:可能存在的问题:

查看当前正在运行的相关服务:

jps  //没有规定要在哪一个目录执行

技术分享图片

1):上传过程中可能出现以下错误:

技术分享图片

解决方案:

查看 配置  hdfs-site.xml 节点指定的路径【 name 和 data 】目录是否自动生成了。

小编这里是没有生成 data 目录。

采用手动开启 datanode 服务才自动创建。

sbin/hadoop-daemon.sh start datanode  ||  sbin/hadoop-daemon.sh  start  namenode

技术分享图片

有了目录还需要注意:name 和 data 目录中的 id 必须一致:(如果不一致可以修改一下 或者 删除 name data logs tem 生成的目录 重新格式化并启动集群:查看是否有相应信息)

技术分享图片

5):运行wordcount程序

Hadoop的 jar 包中已经给我们提供了 mapreduce 程序!都在 /bigData/hadoop-2.8.0/share/hadoop/mapreduce文件夹中!

切换到 share/hadoop/mapreduce 目录下:

cd share/hadoop/mapreduce

技术分享图片

执行以下命令:

hadoop jar hadoop-mapreduce-examples-2.8.0.jar  wordcount /input/ /output/

 /input/ :是指需要计算文件所在的位置

 /output/:是指计算之后的结果文件存放位置

技术分享图片

6):查看执行运算后的结果

hadoop fs -cat /output/*

技术分享图片

Eclipse集成Hadoop插件:点我下载源码

如果eclipse是装在了真机windows系统中,需要我们在真机上安装hadoop!(同样将 hadoop 压缩包在 windows 上解压一份:【以管理员方式运行解压】

1):配置 windows hadoop环境变量:

技术分享图片

技术分享图片

2):使用 hadoop  version 查看是否配置成功:

技术分享图片

3):下载指定版本的插件:下载地址一  下载地址二

把插件放进 eclipse 安装目录下的 plugins 文件夹下

4):启动eclipse配置hadoop的安装目录

4-1):

技术分享图片

 

4-2):

技术分享图片

4-3):eclipse中显示插件的页面:

技术分享图片

技术分享图片

4-):

技术分享图片

技术分享图片

5):使用eclipse创建并运行wordcount程序

技术分享图片

技术分享图片

技术分享图片

导入计算程序:

1):

技术分享图片

技术分享图片

2):

技术分享图片

技术分享图片

NativeIO:更改以下配置

技术分享图片

目录结构:

技术分享图片

右键点击WordCount====》Run As ===》Run Configuration:

技术分享图片

java Application 上 new:

技术分享图片

技术分享图片

hdfs://admin:9000/input
hdfs://admin:9000/eclipseoutput

得到结果:

技术分享图片

注意:Error 可能出现的错误...

1):有可能是本机的hadoop/bin目录下缺少hadoop.dllwinutils.exe等文件。(建议全部替换 hadoop/bin 下的所有文件。bin包在上述的下载地址中)

2):

org.apache.hadoop.security.AccessControlException: Permissiondenied: user=zhengcy, access=WRITE,inode="/user/root/output":root:supergroup:drwxr-xr-x

在集群中运行hadoop fs -chmod -R 777 /

或者

修改三个虚拟机的配置:hdfs-site.xml
添加如下配置:

 <property>
  <name>dfs.permissions</name>
  <value>false</value>
 </property>

3):

Exception in thread "main" java.lang.RuntimeException: 
java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems

解决方式:在 WordCount类中的main 方法中添加如下配置

System.setProperty("hadoop.home.dir", "hadoop安装目录");

6):使用eclipse打成jar包发布到linux中运行

技术分享图片技术分享图片

技术分享图片

技术分享图片

技术分享图片

7):运行完毕之后,在eclipse中查看效果图!

 技术分享图片

 

点我进行下一步的操作(揭秘HDFS)

 

以上是关于分享知识-快乐自己:运行(wordcount)案例的主要内容,如果未能解决你的问题,请参考以下文章

分享知识-快乐自己:Liunx-大数据(Hadoop)初始化环境搭建

分享知识-快乐自己:关于 String 小案例

分享知识-快乐自己:Spring中的(三种)异常处理机制

分享知识-快乐自己:Java 中 的String,StringBuilder,StringBuffer三者的区别

分享知识-快乐自己:论Hibernate中的缓存机制

分享知识-快乐自己:都说新的Arraylist 扩容是(1.5倍+1) 看了1.8的源代码发现不是这么回事