作者:美娟婉燕6386 | 来源:互联网 | 2023-07-29 21:40
1、搞明白单机、伪分布式和集群的区别
单机:也称非分布式,是直接读写本地操作系统的文件系统,一般仅用于本地MR程序的调试。直接解压hadoop包就行,无需配置。
伪分布式:在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点: (NameNode,DataNode,JobTracker,TaskTracker,SecondaryNameNode)。在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。能够访问本地操作系统文件和hdfs文件。
集群:真正的分布式,由3个及以上的实体机或者虚拟机组件的机群。
2、Hadoop配置教程
hadoop配置教程可以参考:
单机配置教程:http://dblab.xmu.edu.cn/blog/install-hadoop/
伪分布式配置教程:http://dblab.xmu.edu.cn/blog/install-hadoop/
集群配置教程:http://dblab.xmu.edu.cn/blog/install-hadoop-cluster/
3、配置伪分布式需要修改的文件
单机配置的话,其实不需要修改hadoop里的配置文件;
伪分布式配置的话,需要在core-site.xml和hdfs-site.xml中进行配置,即向文件中添加如下图的内容:
core-site.xml:添加tmp文件夹
hdfs-site.xml:在tmp文件夹中添加namenode和datanode的文件,这里/tmp/dfs/name/放置了FSimage等信息。/tmp/dfs/data文件夹只有在启动hdfs后才有。
其实,按照上述教程配置就可以了,有详细的讲解,本人在这里写是为了下面描述bug使用。
4、出现的问题
如果按照上述教程的流程进行配置,肯定是没问题。本人按照这个教程进行配置为什么出现问题以及如何解决请看下面分析:
(1)出现的问题:在运行./bin/hdfs namenode -format,报错:Error: JAVA_HOME is not set and could not be found.
解决方法:
本人检查了一下.bashrc中JAVA_HOME变量设置没问题,出现问题是在hadoop-env.sh中,按照上图说的把${JAVA_HOME}改成jdk的安装位置就行。
(2)运行./sbin/start-dfs.sh报错,如下图,具体的报错信息可以查看hadoop里logs中的对应文件,错误原因描述的很详细
namenode错误:
datanode错误:
进入hadoop里的tmp文件夹查看里面有/dfs/name,所以namenode的错误应该是is not accessible。datanode为什么会出现问题,本人推测可能是因为之前执行./bin/hdfs namenode -format时,已经创建了/tmp/dfs/name文件夹,而当时报了JAVA_HOME的问题,所以如果在解决JAVA_HOME问题后不把/tmp文件夹删掉重新执行./bin/hdfs namenode -format,而是执行./sbin/start-dfs.sh就会出现上述问题(分析方法:成功启动dfs后逆向实践推理得到的)。
解决方法:删掉/tmp文件夹,重新执行./bin/hdfs namenode -format,成功后,再执行./sbin/start-dfs.sh。
5、yarn配置
参考:http://dblab.xmu.edu.cn/blog/install-hadoop/
首先,伪分布式不启动YARN也可以,一般不影响程序执行。因为hadoop使用了新的MapReduce框架(MapReduce V2,也称为 YARN,Yet Another Resource Negotiator),所以启动hadoop后看不到JobTracker和TaskTracker。
YARN 是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性。
上述通过start-dfs.sh启动hadoop,仅仅启动了MapReduce环境,这里启动YARN,让YARN来负责资源管理和任务调度。
步骤如下:
(1)修改配置文件mapred-site.xml:
a)重命名:mv mapred-site.xml.template mapred-site.xml
b)gedit mapred-site.xml
mapreduce.framework.nameyarn
c)gedit yarn-site.xml
yarn.nodemanager.aux-servicesmapreduce_shuffle
(2)启动YARN——需要先执行 ./start-dfs.sh
./sbin/start-yarn.sh # 启动YARN
./sbin/mr-jobhistory-daemon.sh start historyserver # 开启历史服务器,才能在Web中查看任务运行情况
(3)运行后,通过jps可以看到多了NodeManager 和 ResourceManager 后台进程。
(4)web查看:https://localhost:8088/cluster
(5)关闭YARN。
./sbin/stop-yarn.sh
./sbin/mr-jobhistory-daemon.sh stop historyserver
注意:YARN主要为集群提供更好的资源管理与任务调度,这在单机上体现不出价值,
所以不启动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。
6、HBASE配置
参考:http://dblab.xmu.edu.cn/blog/install-hbase/
7、Hive安装
参考:http://dblab.xmu.edu.cn/blog/install-hive/