Hadoop之wordcount有感
来源:互联网 发布:程序员的自我修养pdf 编辑:程序博客网 时间:2024/06/06 14:00
Hadoop wordcount的实现和一些问题总结
作者在解决问题过程中遇到的很有帮助的一个博客就是来自如下地址,特别放在文首感谢!
http://www.powerxing.com/install-hadoop/
- 文件调整
就上篇hadoop配置而言,由于未认识到hadoop2.x的版本配置方面稍有不同,所以在做wordcount的sample之前先进行了改进。
不同在于mapred-site.xml和yarn-site.xml分别变为了
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property></configuration>
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property></configuration>
- 单机:
这里假设已经安装好了(JDK,SSH,SSH配置,Homebrew,完成了brew install hadoop)
还未进行伪分布式配置(或者配置了过后直接把配置的全部注释掉,即是说core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml里的内容全部注释掉(用<!−−−−> )仅留下<configuration></configuration> )
$ cd {your mac user name}/hadoop-2.7.3 #这里我没有将hadoop-2.7.3改为hadoop,可以改$ mkdir input #创建input文件夹$ cp etc/hadoop/*.xml input #把配置文件copy到文件夹中$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+' #将当前目录下的input文件夹作为输入 输出到output文件夹(这就和一开始伪分布式遇到的路径问题相对应了!)$ cat output/* #可以查看wordcount结果
- 伪分布式:
配置core-site.xml
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/Users/{your mac name}/hadoop-2.7.3/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property></configuration>
配置hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/Users/{your mac name}/hadoop-2.7.3/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/Users/{your mac name}/hadoop-2.7.3/tmp/dfs/data</value> </property></configuration>
重新配置后
$ bin/hdfs namenode -format$ sbin/start-dfs.sh
jps查看到namenode、datanode、secondarynamenode
$ bin/hdfs dfs -mkdir -p /user/hadoop$ bin/hdfs dfs -mkdir /user/hadoop/input$ bin/hdfs dfs -put ./etc/hadoop/*.xml /user/hadoop/input$ bin/hdfs dfs -ls /user/hadoop/input
查看到在分布式系统中已经复制完成了
$ bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep /user/hadoop/input output 'dfs[a-z.]+'
特别注意grep /user/hadoop/input output这才是分布式系统里面的路径
$ bin/hdfs dfs -cat output/*
查看到在分布式系统中的output结果。
伪分布式wordcount至此结束。
- 问题1:无datanode
COPYING could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation.
解决方法如下:
第一步:
sudo rm -R /tmp/*
第二步:
hdfs namenode -format
然后sbin/start-dfs.sh再jps就可以看到datanode。
当然这里建议阅读完整的log文件,查看是没有datanode还是datanode端口被占用(端口应该是50020),如果是后者请点以下链接参照解决 hadoop之端口被占用问题namenode无法启动
- 问题2:路径问题
下一步操作创建分布式系统的路径
$ bin/hdfs dfs -mkdir /user$ bin/hdfs dfs -mkdir /user/{username} #your username$ sbin/start-yarn.sh
在建立目录后应特别注意下面两个的不同,一个是当前目录下的操作,一个是分布式系统目录下的操作,尤其在以后的文件复制步骤中很容易出错
bin/ -ls bin/hdfs dfs -ls /user/{username}
例如
bin/hdfs dfs -put etc/hadoop input
可能就会出现put: `input’: No such file or directory,接下来的部分也就无法运行
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
在各个博客中找到如下解决方法都没有用
- hostname的配置Connecting to ResourceManager at /0.0.0.0:8032yarn.resourcemanager.address127.0.0.1:8032
- 退出安全模式org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot deletebin/hadoop dfsadmin -safemode leave
其实忽略了真正出错的地方
org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist
由于命令实在分布式系统中执行的,所以grep input output针对的是分布式系统的input和output文档,这里没有input路径需要建立路径(user后面的用户请填自己的)
bin/hdfs dfs -mkdir /user/hadoop/inputbin/hdfs dfs -put ./etc/hadoop/*.xml /user/hadoop/input
- Hadoop之wordcount有感
- Hadoop之WordCount
- Hadoop之运行wordcount
- hadoop 之wordcount
- Hadoop 例子之 WordCount
- Hadoop之WordCount源代码
- hadoop之wordcount
- hadoop之wordcount
- hadoop之wordCount
- Hadoop之MapReduce WordCount分析
- hadoop之"hello world"--wordCount
- hadoop学习笔记之wordcount
- hadoop之WordCount源码分析
- Hadoop小试之WordCount
- hadoop之WordCount代码编写
- Hadoop之MapReduce—Wordcount
- Hadoop搭建之WordCount程序
- Hadoop系列之-自定义WordCount
- ASM 翻译系列第三十七弹:ASM密码文件目录
- [LeetCode]Total Hamming Distance(Java)
- ha 资源启动不了
- 咘叮电子
- linux中与Oracle有关的内核参数详解
- Hadoop之wordcount有感
- Solr Admin Solr管理界面介绍(一)
- 常见的Java异常
- 如何设计一个小而美的秒杀系统(抢红包)?
- SQLite 3 中的数据类型
- Java 检查字符串是否为空
- 欢迎使用CSDN-markdown编辑器
- keras, tensorflow, jupyter的虚拟环境安装, using virtulaenv
- springSecurity随笔