本次部署使用了两台服务器:
主机:master(64.115.5.32)
从机:slave0(64.115.5.158)
当然可以增加机器,三台机器以上最好。
注意:Hadoop的Namenode,SecondaryNameNode,ResourceManager 这三个服务比较吃内存,尽量不放在一台服务器上,如果资源充足放一台服务器上也是没有问题的;Namenode,SecondaryNameNode 是主备关系最好不放在同一台服务器上。
每一个节点的安装与配置基本是相同的,在实际工作中,通常在master节点上完成安装和配置后,然后将安装目录复制到其他节点就可以。
注意:
所有操作都是root用户权限下进行
Hadoop依赖java环境,确保先配置好java环境
下载配置Hadoop
以下操作只在master节点上做即可,配置完成后再分发到其他节点。
下载Hadoop安装包
Hadoop官网:hadoop.apache.org/
我这里用的Hadoop版本下载地址:archive.apache.org/dist/hadoop…
解压Hadoop安装包
把下载好的hadoop-2.7.5.tar.gz上传到服务器/opt/hadoop目录下(放哪无所谓,自己选择即可)。
上传完成后,在master主机上执行以下代码:
cd /opt/hadoop
复制代码
进入/opt/hadoop目录后,执行解压缩命令:
tar -zxvf hadoop-2.7.5.tar.gz
复制代码
解压执行成功后,系统在hadoop目录自动创建hadoop-2.7.5子目录。
为了方便,修改文件夹名称“hadoop-2.7.5”为“hadoop”,即hadoop安装目录,执行修改文件夹名称命令:
mv hadoop-2.7.5 hadoop
复制代码
我们进入安装目录,查看一下安装文件,如果显示如图文件列表,说明压缩成功
配置文件介绍
在hadoop集群中,需要配置的文件主要包括四个,分别是core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml,这四个文件分别是对不同组件的配置参数,主要内容如下表所示:
配置文件名 | 配置对象 | 主要内容 |
---|---|---|
core-site.xml | 集群全局参数 | 用于定义系统级别的参数,如HDFS URL、Hadoop的临时目录等 |
hdfs-site.xml | HDFS参数 | 如名称节点和数据节点的存放位置、文件副本的个数、文件读取权限等 |
mapred-site.xml | Mapreduce参数 | 包括JobHistory Server和应用程序参数两部分,如reduce任务的默认个数、任务所能够使用内存的默认上下限等 |
yarn-site.xml | 集群资源管理系统参数 | 配置 ResourceManager,NodeManager 的通信端口,web监控端口等 |
搭建集群配置时重要参数
本节讨论在给定的配置文件中指定重要的参数,在四个配置文件中,最重要的参数及其解释如下:
1. core-site.xml
参数名 | 默认值 | 参数解释 |
---|---|---|
fs.defaultFS | file:/// | 文件系统主机和端口 |
io.file.buffer.size | 4096 | 流文件的缓冲区大小 |
hadoop.tmp.dir | /tmp/hadoop-${user.name} | 临时文件夹 |
2. hdfs-site.xml
参数名 | 默认值 | 参数解释 |
---|---|---|
dfs.namenode.secondary.http-address | 0.0.0.0:50090 | 定义HDFS对应的HTTP服务器地址和端口 |
dfs.namenode.name.dir | file://${hadoop.tmp.dir}/dfs/name | 定义DFS的名称节点在本地文件系统的位置 |
dfs.datanode.data.dir | file://${hadoop.tmp.dir}/dfs/data | 定义DFS数据节点存储数据块时存储在本地文件系统的位置 |
dfs.replication | 3 | 缺省的块复制数 |
dfs.webhdfs.enabled | true | 是否通过http协议读取hdfs文件,如果选是,则集群安全性较差 |
3. mapred-site.xml
参数名 | 默认值 | 参数解释 |
---|---|---|
mapreduce.framework.name | local | 取值local、classic或yarn其中之一,如果不是yarn,则不会使用YARN集群来实现资源的分配 |
mapreduce.jobhistory.address | 0.0.0.0:10020 | 定义历史服务器的地址和端口,通过历史服务器查看已经运行完的Mapreduce作业记录 |
mapreduce.jobhistory.webapp.address | 0.0.0.0:19888 | 定义历史服务器web应用访问的地址和端口 |
4. yarn-site.xml
参数名 | 默认值 | 参数解释 |
---|---|---|
yarn.resourcemanager.address | 0.0.0.0:8032 | ResourceManager 提供给客户端访问的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等 |
yarn.resourcemanager.scheduler.address | 0.0.0.0:8030 | ResourceManager提供给ApplicationMaster的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等 |
yarn.resourcemanager.resource-tracker.address | 0.0.0.0:8031 | ResourceManager 提供给NodeManager的地址。NodeManager通过该地址向RM汇报心跳,领取任务等 |
yarn.resourcemanager.admin.address | 0.0.0.0:8033 | ResourceManager 提供给管理员的访问地址。管理员通过该地址向RM发送管理命令等 |
yarn.resourcemanager.webapp.address | 0.0.0.0:8088 | ResourceManager对web 服务提供地址。用户可通过该地址在浏览器中查看集群各类信息 |
yarn.nodemanager.aux-services | 通过该配置项,用户可以自定义一些服务,例如Map-Reduce的shuffle功能就是采用这种方式实现的,这样就可以在NodeManager上扩展自己的服务 |
配置env文件
配置jdk文件
执行命令:
vi /opt/hadoop/hadoop/etc/hadoop/hadoop-env.sh
复制代码
找到 “ export JAVA_HOME ” 这行,用来配置jdk路径
修改为:export JAVA_HOME=/usr/local/java/jdk1.8.0_207/
配置核心组件文件
Hadoop的核心组件文件是core-site.xml,位于/opt/hadoop/hadoop/etc/hadoop子目录下,用vi编辑core-site.xml文件,需要将下面的配置代码放在文件的和之间。
执行编辑core-site.xml文件的命令:
vi /opt/hadoop/hadoop/etc/hadoop/core-site.xml
复制代码
需要在和之间加入的代码:
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
<description>定义默认的文件系统主机和端口</description>
</property>
<!--修改hadoop存储数据的默认位置-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/hadoopdata</value>
<description>Abase forother temporary directories.</description>
</property>
复制代码
创建数据目录:
mkdir /opt/hadoop/hadoopdata
复制代码
mkdir /opt/hadoop/hdfs
mkdir /opt/hadoop/hdfs/data
mkdir /opt/hadoop/hdfs/name
复制代码
编辑完成后,退出并保存即可!
配置文件系统
Hadoop的文件系统配置文件是hdfs-site.xml,位于/opt/hadoop/hadoop/etc/hadoop子目录下,用vi编辑该文件,需要将以下代码放在文件的和之间。
执行编辑hdfs-site.xml文件的命令:
vi /opt/hadoop/hadoop/etc/hadoop/hdfs-site.xml
复制代码
需要在和之间加入的代码:
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
复制代码
编辑完成后,退出保存即可!
配置 yarn-site.xml 文件
Yarn的站点配置文件是yarn-site.xml,位于/opt/hadoop/hadoop/etc/hadoop子目录下,依然用vi编辑该文件,将以下代码放在文件的和之间。
执行编辑yarn-site.xml文件的命令:
vi /opt/hadoop/hadoop/etc/hadoop/yarn-site.xml
复制代码
需要在和之间加入的代码:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
复制代码
配置MapReduce计算框架文件
在/opt/hadoop/hadoop/etc/hadoop子目录下,系统已经有一个mapred-site.xml.template文件,我们需要将其复制并改名,位置不变。
执行复制和改名操作命令:
cp /opt/hadoop/hadoop/etc/hadoop/mapred-site.xml.template /opt/hadoop/hadoop/etc/hadoop/mapred-site.xml
复制代码
然后用vi编辑mapred-site.xml文件,需要将下面的代码填充到文件的和之间。
执行命令:
vi /opt/hadoop/hadoop/etc/hadoop/mapred-site.xml
复制代码
需要在和之间加入的代码:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
复制代码
编辑完毕,保存退出即可!
配置master的slaves文件
slaves文件给出了Hadoop集群的slave节点列表,该文件十分的重要,因为启动Hadoop的时候,系统总是根据当前slaves文件中的slave节点名称列表启动集群,不在列表中的slave节点便不会被视为计算节点。
执行编辑slaves文件命令:
vi /opt/hadoop/hadoop/etc/hadoop/slaves
复制代码
注意:用vi编辑slaves文件,应该根据读者您自己所搭建集群的实际情况进行编辑。
例如:我这里只有slave0。
所以应当加入以下代码:
slave0
复制代码
注意:删除slaves文件中原来localhost那一行!
配置域名解析(master和slave都需要做)
vi /etc/hosts
复制代码
添加下面两行:
64.115.5.32 master
64.115.5.158 slave0
复制代码
复制master上的Hadoop到slave节点
由于我这里只有slave0,所以只需要复制一次。如果机器特别多的时候,可以使用哪个其他的方式进行复制。
复制命令:
scp -r /opt/hadoop root@slave0:/opt
复制代码
Hadoop集群的启动
配置操作系统环境变量(master和slave都需要做)
然后用vi编辑/etc/profile,命令:
vi /etc/profile
复制代码
最后把以下代码追加到文件的尾部:
# HADOOP
export HADOOP_HOME=/opt/hadoop/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
复制代码
保存退出后,执行命令:
source /etc/profile
复制代码
source /etc/profile命令是使上述配置生效
提示:在slave0使用上述相同的方法进行配置。
格式化文件系统(在master做)
执行格式化文件系统命令:
hadoop namenode -format
复制代码
启动和关闭Hadoop集群(在master做)
首先进入安装主目录,命令是:
cd /opt/hadoop/hadoop/sbin
复制代码
然后启动命令是:
start-all.sh
复制代码
如果要关闭Hadoop集群,可以使用命令:
stop-all.sh
复制代码
下次启动Hadoop时,无须NameNode的初始化,只需要使用start-dfs.sh
命令即可,然后接着使用start-yarn.sh
启动Yarn。
实际上,Hadoop建议放弃(deprecated)使用start-all.sh
和stop-all.sh
一类的命令,而改用start-dfs.sh
和start-yarn.sh
命令。
验证Hadoop集群是否启动成功
读者您可以在终端执行jps命令查看Hadoop是否启动成功。
在master节点,执行:
jps
复制代码
如果显示:SecondaryNameNode、 ResourceManager、 Jps 和NameNode这四个进程,则表明主节点master启动成功。
然后在slave0节点下执行jps命令:
如果成功显示:NodeManager、Jps 和 DataNode,这三个进程,则表明从节点(slave0)启动成功。
关闭服务器防火墙之后,在浏览器打开下面地址,出现下面的页面 即部署成功。
更多的配置参数的信息
上面讲过的对hadoop进行的配置,都是一些重要的配置信息,还有其他的配置信息,可以通过hadoop官方网址查询,网址如下:
hadoop.apache.org/docs/curren…
hadoop.apache.org/docs/curren…
hadoop.apache.org/docs/curren…
hadoop.apache.org/docs/curren…
通过这些网址,可以了解最新的全部的hadoop 配置信息,而且包括一些过时的定义标识,从而更好地维护Hadoop集群。
总结
本次安装只是入门级别,Hadoop版本也是2.7的,现在最新也是3.X了,而且有好多配置都没有指定,例如Job历史服务器地址等等,如果需要更专业详细的部署过程,可以看一下:
官方文档
B站 尚硅谷丨大数据Hadoop 3.x
最后,感谢女朋友在工作和生活中的包容、理解与支持 !