hadoop完全分布式集群搭建全部流程之二:伪分布式搭建
一:Hadoop运行模式
1)官方网址
(1)官方网站:
(2)各个版本归档库地址
(3)hadoop2.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的安装路径:
[[email protected] 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)查看是否启动成功
[[email protected] ~]# jps
13586 NameNode
13668 DataNode
13786 Jps
(b)查看产生的log日志
当前目录:/opt/module/hadoop-2.7.2/logs
[[email protected] 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
(c)web端查看HDFS文件系统
注意:如果不能查看,看如下帖子处理
(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。实际开发测试中还是完全分布式的使用,下面继续完全分布式的搭建。