目录
最简单的Hadoop架构... 1
伪分布式搭建... 1
JDK的配置... 1
Hadoop下载与安装... 4
Windows系统的特殊点1. 10
Windows系统的特殊点2. 11
- Windows的注意事项主要就是在 10 11 页,其它步骤没有太大区别,个人建议在Linux搭建,避免更多问题发生,Hadoop的设计压根就没有考虑过Windows哦!
- 如果配置文件写好就可以直接进入到10 11 页查阅Windows的配置啦,配置文件在文中也有,但有一些简化,很多地方可能比较冗余,可以做一个参考
最简单的Hadoop架构
服务名称 | 作用 | 隶属服务 |
Name Node | 处理用户进程,管理元数据,集群Web UI服务 | HDFS |
Data Node | 保存与管理数据块 | |
Secondary Name Node | 帮助Name Node处理元数据合并工作 | |
Resource Manager | 分配与管理资源调度任务,管理Node Manager | Yarn |
Node Manager | 执行用户提交的job |
伪分布式搭建
伪分布式就是使用一台主机搭建一个只有一台主机可对外服务的Hadoop集群,对于我们来说,搭建一个伪分布式是最优选择,最大化的节约资源,搭建难度极低,耗费时间不多,本次的配置项针对一台主机,且配置文件仅仅需要更改参数便可立即使用
JDK的配置
JDK下载
在JDK下载官网,可选择不同的版本,要注意,JDK在Linux与Windows中是不同的
Windows
Linux
- Windows环境变量配置
- 通过设置或者直接进行搜索打开就行
- 配置JDK目录,为了防止有过多的异常情况,这里将JAVA_HOME也一并配置
- JAVA_HOME配置好之后,继续通过Path,配置JDK的bin目录
- 配置之后通过cmd命令窗口,执行java,如果没有报错“找不到命令”等情况,那么JDK安装就成功!
- Linux环境变量配置
- 将JDK包,上传至 linux 解压JDK之后,只需要将JDK的bin目录写到/etc/profile文件中,下面是具体的演示
图表 1 JDK解压目录结构
- 编辑profile文件
输入命令:vim /etc/profile 或 vi /etc/profile
图表 2 profile环境变量配置
export JAVA_HOME=JDK的目录(具体见图1)
export PATH=$JAVA_HOME/bin:$PATH
- 注意,配置好环境变量之后不要忘记保存
- Linux jdk环境变量验证
- 与Windows的验证方式一样
Hadoop下载与安装
- 官网
Hadoop在Apache基金会开源,这里就是下载地址,下载之后是一个压缩包,需要解压,并进行配置
图表 3 hadoop解压目录结构
- 首先需要为bin目录配置环境变量,为了避免其它框架发生错误最好配置下,步骤和JDK配置差不多
export HADOOP_HOME=Hadoop的解压目录
export PATH=$HADOOP_HOME/bin:$PATH
- Windows环境变量
- 为Hadoop的启动脚本,添加一些参数
- Windows:不需要配置
- Linux:vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
图表 4 hadoop-env.sh中的配置
配置项写的有些冗余,因为我之前搭建过其它东西,不用担心,他们对于Hadoop并没有太大影响,这里的配置有利于使用hadoop的一键启动,不需要通过daemon方式启动,简便许多
export JAVA_HOME=/liming_zhao/java_1.8
export DHFS_NAMENODE_USER="root"
export DHFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
export HDFS_JOURNALNODE_USER="root"
export HDFS_ZKFC_USER="root"
- 为Hadoop的core进行一些配置
- Windows:进入到hadoop目录去找文件
- Linux:vim $HADOOP_HOME/etc/hadoop/core-site.xml
图表 5 core-site.xml配置文件
<configuration>
<property>
<name>fs.defaut.name</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
</configuration>
- 配置HDFS
- Windows:进入到hadoop目录去找文件
- Linux:vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
图表 6 hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data/nndir</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/dndir</value>
</property>
</configuration>
- 配置yarn
- Windows:进入到hadoop目录去找文件
- Linux:vim $HADOOP_HOME/etc/hadoop/yarn-site.xml
<configuration>
<!-- rm的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>127.0.0.1</value>
</property>
<!-- 指定reduce的方式 这里是MR的Shuffle-->
<property>
<name>yarn.resoucemanager.aux-service</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定yarn的rm数据本地存储目录-->
<property>
<name>yarn.resourcemanager.local-dirs</name>
<value>file:///data/rmdir</value>
</property>
</configuration>
- 配置下MapReduce的运行环境,如果使用不到就不需要配
- vim $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
<!-- 指定分布式计算使用的模式是yarn local是本地模式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--Map App Master环境变量-->
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!--MR MapTask环境变量-->
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!--Map ReduceTask环境变量-->
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
</configuration>
- 格式化 hdfs 的 namenode
- Windows也是如此 hdfs namenode -format
Windows系统的特殊点1
Windows的文件系统与Linux的文件系统相差过大,因此直接在搭建好hadoop之后很可能不会成功运行,报错如下
- 解决方案(不能保证百分之百成功,如果没有成功,还是要去Linux搭建啦!)
- bin目录下有这俩个文件,如果没有可以去网上下载下,很简单就可以搜索到哦!
- 将这两个文件复制到 C:\Windows\System32 文件夹下
Windows系统的特殊点2
Window中的jdk环境与Linux中稍有不同,有可能会因为内存问题导致发生如下错误
- 解决方案
- 编辑hadoop-env.cmd脚本文件,减少预制空间
- set HADOOP_HEAPSIZE=200
本次的介绍就到这里啦,希望大家可以有好的开始!!伪分布式搭建Hadoop是比较方便的一种方式,作为大数据的基础功夫,加油!