一:Hadoop运行模式
1 )官方网址
( 1 )官方网站:
( 2 )各个版本归档库地址
https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/
( 3 ) hadoop2.7.2 版本详情介绍
http://hadoop.apache.org/docs/r2.7.2/
2 ) Hadoop 运行模式
( 1)本地模式(默认模式):
不需要启用单独进程,直接可以运行,测试和开发时使用。
(2)伪分布式模式:
等同于完全分布式,只有一个节点,需要启动集群。。
(3)完全分布式模式:基于伪分布式搭建的
多个节点一起运行
二:基于hadoop本地模式运行
1。基于本地模式运行官方grep案例
在前一篇博客的基础上,系统弄装好了hadoop和java.并且可以运行。这里运行的程序都是 hadoop官方自带的已经写好的mapreduce程序,我们直接调用就行了。官方自带了很多MR程序。只是实际开发中,一般都是定制MR程序进行相关的运算。
1 )创建在 hadoop-2.7.2 文件下面创建一个 input 文件夹
[robot @hadoop101 hadoop-2.7.2]$mkdir input
2 )将 hadoop 的 xml 配置文件复制到 input
[robot @hadoop101 hadoop-2.7.2]$cp etc/hadoop/*.xml input
3 )执行 share 目录下的 mapreduce 程序
[ robot @hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a- z.]+'
4 )查看输出结果
[ robot @hadoop101 hadoop-2.7.2]$ cat output/*
2 本地模式运行官方wordcount案例
1 )创建在 hadoop-2.7.2 文件下面创建一个 wcinput 文件夹
[ robot @hadoop101 hadoop-2.7.2]$mkdir wcinput
2 )在 wcinput 文件下创建一个 wc.input 文件
[ robot @hadoop101 hadoop-2.7.2]$cd wcinput
[ robot @hadoop101 wcinput]$touch wc.input
3 )编辑 wc.input 文件
[robot @hadoop101 wcinput]$vim wc.input 在文件中输入如下内容 hadoop yarn hadoop mapreduce robot robot 保存退出:: wq |
4 )回到 hadoop 目录 /opt/module/hadoop-2.7.2
5 )执行程序:
[ robot @hadoop101 hadoop-2.7.2]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput
6 )查看结果:
[ robot @hadoop101 hadoop-2.7.2]$cat wcoutput/part-r-00000
robot 2
hadoop 2
mapreduce 1
yarn 1
三:搭建伪分布式hadoop集群并且调试运行
伪分布式运行 Hadoop 案例
3.1 HDFS上运行MapReduce程序
1 )分析:
( 1 )准备 1 台客户机
( 2 )安装 jdk
( 3 )配置环境变量
( 4 )安装 hadoop
( 5 )配置环境变量
( 6 )配置集群
( 7 )启动、测试集群增、删、查
( 8 )在 HDFS 上执行 wordcount 案例
2 )执行步骤
需要配置 hadoop 文件如下
( 1 )配置集群
( a )配置: hadoop-env.sh
Linux 系统中获取 jdk 的安装路径:
[root@ hadoop101 ~]# echo $JAVA_HOME
/opt/module/jdk1.7.0_79
修改 JAVA_HOME 路径:
export JAVA_HOME=/opt/module/jdk1.7.0_79 |
( b )配置: 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> |
( c )配置: hdfs-site.xml
<!-- 指定 HDFS 副本的数量,只有一台机器,所以副本数只能设置成1 --> <property> <name>dfs.replication</name> <value>1</value> </property> |
( 2 )启动集群
( a )格式化 namenode (第一次启动时格式化,以后就不要总格式化)
bin/hdfs namenode -format
( b )启动 namenode
sbin/hadoop-daemon.sh start namenode
( c )启动 datanode
sbin/hadoop-daemon.sh start datanode
( 3 )查看集群
( a )查看是否启动成功
[root@hadoop101 ~]# jps
13586 NameNode
13668 DataNode
13786 Jps
( b )查看产生的 log 日志
当前目录: /opt/module/hadoop-2.7.2/logs
[root@hadoop101 logs]# ls
hadoop-root-datanode-hadoop. robot .com.log
hadoop-root-datanode-hadoop. robot .com.out
hadoop-root-namenode-hadoop. robot .com.log
hadoop-root-namenode-hadoop. robot .com.out
SecurityAuth-root.audit
[root@hadoop101 logs]# cat hadoop-root-datanode-hadoop. robot .com.log
( c ) web 端查看 HDFS 文件系统
http://192.168.1.101:50070/dfshealth.html#tab-overview
注意:如果不能查看,看如下帖子处理
http://www.cnblogs.com/zlslch/p/6604189.html
( 4 )操作集群
( a )在 hdfs 文件系统上 创建 一个 input 文件夹
[ robot @hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /user/ robot /mapreduce/wordcount/input
( b )将测试文件内容 上传 到文件系统上
bin/hdfs dfs -put wcinput/wc.input /user/ robot /mapreduce/wordcount/input/
( c ) 查看 上传的文件是否正确
bin/hdfs dfs -ls /user/ robot /mapreduce/wordcount/input/
bin/hdfs dfs -cat /user/ robot /mapreduce/wordcount/input/wc.input
( d )在 Hdfs 上运行 mapreduce 程序
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/robot /mapreduce/wordcount/input/ /user/robot /mapreduce/wordcount/output
( e )查看输出结果
命令行查看:
bin/hdfs dfs -cat /user/ robot /mapreduce/wordcount/output/*
浏览器查看
( f )将测试文件内容 下载 到本地
hadoop fs -get /user/ robot /mapreduce/wordcount/output/part-r-00000 ./wcoutput/
( g ) 删除 输出结果
hdfs dfs -rmr /user/ robot /mapreduce/wordcount/output
总的来说伪分布只是为了测试使用,熟悉一下hadoop。实际开发测试中还是完全分布式的使用,下面继续完全分布式的搭建。
作者:
链接:https://blog.csdn.net/qq_26442553/article/details/78695175
来源:CSDN
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。