hadoop的单机模式、伪分布式、完全分布式
1、单机(非分布式)模式
这种模式是在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统
2、伪分布式运行模式
这种模式也是在一种单机上运行,使用不同的java进程模仿分布式运行中的各类节点,namenode、datanode、jobtracker、tasktracker、secondnamenode
2.1从分布式存储的角度来说
集群中的结点由一个NameNode和若干个DataNode组成,另有一个SecondaryNameNode作为NameNode的备份。
2.2从分布式应用的角度来说
集群中的结点由一个JobTracker和若干个TaskTracker组成,JobTracker负责任务的调度,TaskTracker负责并行执行任务。TaskTracker必须运行在DataNode上,这样便于数据的本地计算。
JobTracker和NameNode则无须在同一台机器上。一个机器上,既当namenode,又当datanode,或者说 既 是jobtracker,又是tasktracker。没有所谓的在多台机器上进行真正的分布式计算,故称为"伪分布式"。
3、完全分布式
真正的分布式,由3个以上的实体机或者虚拟机组建的机群。
hadoop伪分布式的搭建
1、下载JDK并配置环境变量
官网下载JDK,安装的时候注意,安装路径不要有空格。若是安装在program files下,在java_home环境变量配置的时候,可以用program~1代替他。
注意!!! jdk版本不要太高,下载最新版本的yarn无法启动,换成jdk8就行了。。。
2、下载hadoop镜像
地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/
本次下载的版本是hadoop-3.1.2.tar.gz
下载完成之后解压,同时也要保证存储目录不要有中文和空格。
前两步完成之后可以在命令行查看。
java --version
Hadoop --version
3、下载win专用的二进制的hadoop.dill和winutils
直接去github查找对应版本的。
4、修改etc目录下的core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
5、修改hdfs-site.xml配置文件
<configuration>
<!-- 这个参数设置为1,因为是单机版hadoop -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/C:/hadoop-3.1.2/data/namenode</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>/C:/hadoop-3.1.2/data/snn</value>
</property>
<property>
<name>fs.checkpoint.edits.dir</name>
<value>/C:/hadoop-3.1.2/data/snn</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/C:/hadoop-3.1.2/data/datanode</value>
</property>
</configuration>
6、修改mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
7、修改yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hahoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>8</value>
</property>
</configuration>
8、节点格式化
CMD窗口切换到hadoop下的bin目录,在执行
hdfs namenode -format
9、启动hadoop
经入hadoop目录下的sbin目录执行 start-all.cmd,之后再web界面查看hdfs信息可以在浏览器输入http://localhost:9870/ 查看namenode,以及http://localhost:8088
10、安装中遇到的问题
1、yarn 无法启动 ,原因是jdk版本过高,折腾了好久,换成了jdk8就解决了。
2、nodemanager无法启动,错误提示:org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Permissions incorrectly set for dir /tmp/hadoop-wangz/nm-local-dir/nmPrivate, should be rwx------, actual value = rwxrwx---
最后google了一下,用管理员权限运行start-yarn.cmd,开启成功。