1.全局配置
上面的学习中,我们都是先进入到 /usr/local/hadoop 目录中,再执行 sbin/hadoop,实际上等同于运行/usr/local/hadoop/sbin/hadoop。我们可以将 Hadoop 命令的相关目录加入到 PATH 环境变量中,这样就可以直接通过 start-dfs.sh 开启 Hadoop,也可以直接通过 hdfs 访问 HDFS 的内容,方便平时的操作。
就好比我们配置的 Java 运行环境一样,之间可以在 终端进行 javac的编译和 java运行命令!
1.1 配置 ~/.bashrc
有的配置的是 etc/profile 文件,也是可以的,但是有时会有出差错,还是配置在 bashrc 下吧。
yuan@LABELNET:/$ sudo gedit ~/.bashrc
配置path 如下:
1.2 保存退出使其生效
yuan@LABELNET:/$ source ~/.bashrc
1.3 测试查看 hdfs
yuan@LABELNET:/$ hdfs dfs -ls /user/hadoop/input
2.启用yarn
2.1 什么是 yarn ?
MapReduce V2,也称为 YARN,Yet Another Resource Negotiator , YARN 是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性,YARN 的更多介绍在此不展开,有兴趣的可查阅相关资料。
我们之前通过 start-dfs.sh 启动 Hadoop,仅仅是启动了 MapReduce 环境,我们可以启动 YARN ,让 YARN 来负责资源管理与任务调度。
2.2 配置 mapred-site.xml
(1) 重命名 mapred-site.xml
yuan@LABELNET:/usr/local/hadoop$ mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
(2) 配置
yuan@LABELNET:/usr/local/hadoop$ sudo gedit ./etc/hadoop/mapred-site.xml
配置如下 :
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
2.3
yarn-site.xml
yuan@LABELNET:/usr/local/hadoop$sudo gedit ./etc/hadoop/yarn-site.xml
配置如下 :
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
2.4 启动
yuan@LABELNET:~$ start-yarn.sh
2.5 开启历史服务器,才可以在浏览器中查看
yuan@LABELNET:~$ mr-jobhistory-daemon.sh start historyserver
2.6 jps 查看 进程
开启后通过 jps 查看,可以看到多了 NodeManager 和 ResourceManager 两个后台进程;
2.7 查看任务调度情况
启动 YARN 之后,运行实例的方法还是一样的,仅仅是资源管理方式、任务调度不同。观察日志信息可以发现,不启用 YARN 时,是 “mapred.LocalJobRunner” 在跑任务,启用 YARN 之后,是 “mapred.YARNRunner” 在跑任务。启动 YARN 有个好处是可以通过 Web 界面查看任务的运行情况: http://localhost:8088/cluster
界面如下 :
2.8 说明
YARN 主要是为集群提供更好的资源管理与任务调度,然而这在单机上体现不出价值,反而会使程序跑得稍慢些。因此在单机上是否开启 YARN 就看实际情况了。
伪分布式开不开启YARN ,都不会影响运行!
2.9 不使用 YARN
如果不想启动 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。
2.10 停止 YARN 和 历史记录
yuan@LABELNET:~$ stop-yarn.sh
<pre name="code" class="html">yuan@LABELNET:~$mr-jobhistory-daemon.sh stop historyserver
3.总结
下篇将 上篇的 示例 在 eclipse 中进行演示 ;