如果前一章测试成功,那么恭喜你,你已经可以开始新的篇章了(但是如果测试不成功,请务必搭建测试成功后再看此篇章)
伪分布式的搭建(启动HDFS并运行MapReduce程序)
1、启动HDFS并运行MapReduce程序
1.1配置伪分布式集群
1.1.1 配置hadoop-env.sh
切换到当前目录中:
修改hadoop-env.sh的JAVA_HOME 路径:vim hadoop-env.sh
添加如下内容:
1.1.2配置core-site.xml
执行命令:vim core-site.xml
文件加入如下文本:
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
1.1.3 配置hdfs-site.xml
执行命令:vim hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
1.2启动集群
1.2.1切换到当前目录
1.2.2格式化NameNode
执行命令:bin/hdfs namenode -format
1.2.3启动NameNode(执行成功后可执行JPS看是否启动成功)
执行命令:sbin/hadoop-daemon.sh start namenode
1.2.4启动DataNode
执行命令:sbin/hadoop-daemon.sh start datanode
1.2.5注意的一些事项
1.格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据,而导致集群启动异常。
所以,再次格式NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode。(当然也还有其他办法,但是这个是最直接了当的!!!)
2.JPS执行无效
原因:全局变量hadoop、java没有生效,需要source /etc/profile文件。
1.3查看集群
1.3.1web端查看HDFS文件系统
浏览器中查看:http://Linux ip地址:50070/dfshealth.html#tab-overview
如果不能查看,看如下帖子处理:http://www.cnblogs.com/zlslch/p/6604189.html
1.4操作集群
1.4.1切换到当前目录
1.4.2在HDFS文件系统上创建一个input文件夹
执行命令:bin/hdfs dfs -mkdir -p /user/lsl/input
1.4.3将测试文件内容上传到文件系统上
执行命令:bin/hdfs dfs -put wcinput/wc.input /user/lsl/input/
1.4.4查看上传的文件是否正确
1.执行命令:bin/hdfs dfs -ls /user/lsl/input/
2.执行命令:bin/hdfs dfs -cat /user/lsl/input/wc.input
3.也可在浏览器上查看
1.4.5运行MapReduce程序
执行命令:bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/lsl/input/ /user/lsl/output
1.4.6查看输出结果
1.执行命令:bin/hdfs dfs -cat /user/lsl/output/*
2.在浏览器上查看
1.4.7 将测试文件内容下载到本地
执行命令:hdfs dfs -get /user/lsl/output/part-r-00000 ./wcoutput/
1.4.8删除输出结果
1.执行命令:hdfs dfs -rm -r /user/lsl/output
2.查看:
版权声明:本博客为记录本人自学感悟,转载需注明出处!
https://me.csdn.net/qq_39657909