伪分布式搭建Hadoop

前提
默认安装前准备已经做好(jdk,ssh)
1.伪分布式:以分离的Java进程来运行,结点即作为NameNode也作为DataNode,同时读取的是HDFS
2.修改Hadoop环境变量(这些变量也可以在/usr/local/hadoop/etc/hadoop/hadoop-env.sh修改)


3.修改Hadoop的配置(hadoop的配置文件位置/usr/local/hadoop/etc/hadoop/)
配置文件格式:Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
1)修改core-site.xml


2)修改hdfs-site.xml


3)修改hadoop-env.sh



4.开启NameNode与DataNode守护进程

5.检验是否配置成功

一般回看到NameNode和DataNode和SecondaryNameNode
如果没有Secondary的话,先运行

6.成功启动后,可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

7.启动Yarn
以前跟很多人交流的时候发现,这里安装没出现JobTracker和TaskTracker,后来才知道这是因为出现流yarn。
上面的/usr/local/hadoop/etc/hadoop/sbin/start-dfs.sh仅仅是启动MapReduce环境,我们启动Yarn,让Yarn来负责资源管理与任务调度。
1)首先修改配置文件mapred-site.xml.template ,这边需要先进行重命名为mapred-site.xml




2)启动Yarn(这一步前提条件是已经执行(/usr/local/hadoop/etc/hadoop/sbin/start-dfs.sh)

3)这时通过jps,可以看到多了NodeManager和ResourceManager两个后台程序


注意:
(1)启动 YARN 之后,运行实例的方法还是一样的,仅仅是资源管理方式、任务调度不同。观察日志信息可以发现,不启用 YARN 时,是 “mapred.LocalJobRunner” 在跑任务,启用 YARN 之后,是 “mapred.YARNRunner” 在跑任务。启动 YARN 有个好处是可以通过 Web 界面查看任务的运行情况:http://localhost:8088/cluster

(2)不启动 YARN 需重命名 mapred-site.xml
如果不想启动 YARN,务必把配置文件 mapred-site.xml 重命名,改成 mapred-site.xml.template,需要用时改回来就行。否则在该配置文件存在,而未开启 YARN 的情况下,运行程序会提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的错误,这也是为何该配置文件初始文件名为 mapred-site.xml.template。

4)关闭Yarn的脚本

8.感受一下Hadoop的运行
同单机模式的例子,选择运行 grep 例子,我们将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+
的单词并统计出现的次数。
伪分布式运行 MapReduce 作业的方式跟单机模式相同,区别在于伪分布式读取的是HDFS中的文件(可以将单机步骤中创建的本地 input 文件夹,输出结果 output 文件夹都删掉来验证这一点)。



在实际开发应用程序时,可考虑在程序中加上如下代码,能在每次运行时自动删除输出目录,避免繁琐的命令行操作
