美文网首页
Hadoop集群的搭建

Hadoop集群的搭建

作者: 做个合格的大厂程序员 | 来源:发表于2020-06-13 21:44 被阅读0次

集群规划

服务器IP 10.10.10.110 10.10.10.120 10.10.10.130
主机名 node1 node2 node3
NameNode
SecondaryNameNode
dataNode
ResourceManager
NodeManager

第一步:上传apache hadoop包并解压

解压命令

cd /export/softwares 

tar -zxvf hadoop-2.7.5.tar.gz -C ../servers/
image

第二步:修改配置文件

1.修改core-site.xml

第一台机器执行以下命令

cd /export/servers/hadoop-2.7.5/etc/hadoop

vim core-site.xml

core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
    <!--  指定集群的文件系统类型:分布式文件系统 -->
    <property>
        <name>fs.default.name</name>
        <value>hdfs://node1:8020</value>
    </property>
    <!--  指定临时文件存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/export/servers/hadoop-2.7.5/hadoopDatas/tempDatas</value>
    </property>
    <!--  缓冲区大小,实际工作中根据服务器性能动态调整 -->
    <property>
        <name>io.file.buffer.size</name>
        <value>4096</value>
    </property>

    <!--  开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 -->
    <property>
        <name>fs.trash.interval</name>
        <value>10080</value>
    </property>
</configuration>

2.修改hadoop-env.sh

第一台机器执行以下命令

cd /export/servers/hadoop-2.7.5/etc/hadoop

vim hadoop-env.sh

hadoop-env.sh

# 添加javaHome路径
export JAVA_HOME=/export/servers/jdk1.8.0_141

3.修改mapred-site.xml

第一台机器执行以下命令

cd /export/servers/hadoop-2.7.5/etc/hadoop

vim mapred-site.xml

mapred-site.xml

<configuration>
    <!-- 开启MapReduce小任务模式 -->
    <property>
        <name>mapreduce.job.ubertask.enable</name>
        <value>true</value>
    </property>
    
    <!-- 设置历史任务的主机和端口 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node1:10020</value>
    </property>

    <!-- 设置网页访问历史任务的主机和端口 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node1:19888</value>
    </property>
</configuration>

4.修改yarn-site.xml

第一台机器执行以下命令

cd /export/servers/hadoop-2.7.5/etc/hadoop

vim yarn-site.xml

yarn-site.xml

<configuration>
    <!-- 配置yarn主节点的位置 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    <!-- 开启日志聚合功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 设置聚合日志在hdfs上的保存时间 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    <!-- 设置yarn集群的内存分配方案 -->
    <property>    
        <name>yarn.nodemanager.resource.memory-mb</name>    
        <value>20480</value>
    </property>

    <property>  
             <name>yarn.scheduler.minimum-allocation-mb</name>
            <value>2048</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
    </property>

</configuration>

5.修改mapred-env.sh

第一台机器执行以下命令

cd /export/servers/hadoop-2.7.5/etc/hadoop

vim mapred-env.sh

mapred-env.sh

#添加JAVA_HOME路径

export JAVA_HOME=/export/servers/jdk1.8.0_141

6.修改slaves

修改slaves文件,然后将安装包发送到其他机器,重新启动集群即可

第一台机器执行以下命令

cd /export/servers/hadoop-2.7.5/etc/hadoop

vim slaves

slaves

node1 
node2 
node3

注意,主机名不要有_等特殊字符,否则可能会出错

7.修改hdfs-site.xml

第一台机器执行以下命令

cd /export/servers/hadoop-2.7.5/etc/hadoop 
vim hdfs-site.xml

hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>

     <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>node01:50090</value>
    </property>

    <!-- 指定namenode的访问地址和端口 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>node01:50070</value>
    </property>
    <!-- 指定namenode元数据的存放位置 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2</value>
    </property>
    <!--  定义dataNode数据存储的节点位置,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割  -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2</value>
    </property>
    
    <!-- 指定namenode日志文件的存放目录 -->
    <property>
        <name>dfs.namenode.edits.dir</name>
        <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/nn/edits</value>
    </property>
    

    <property>
        <name>dfs.namenode.checkpoint.dir</name>
        <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/snn/name</value>
    </property>
    <property>
        <name>dfs.namenode.checkpoint.edits.dir</name>
        <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/edits</value>
    </property>
    <!-- 文件切片的副本个数-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>

    <!-- 设置HDFS的文件权限-->
    <property>
        <name>dfs.permissions</name>
        <value>true</value>
    </property>

    <!-- 设置一个文件切片的大小:128M-->
    <property>
        <name>dfs.blocksize</name>
        <value>134217728</value >
    </property>
</configuration>

备注:如果有ORG.APACHE.HADOOP.SECURITY.ACCESSCONTROLEXCEPTION: PERMISSION DENIED: USER=权限问题请在:

# 改为false
<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>

然后重启hadoop集群,如果有配置好slave可以:

stop-dfs.sh

start-dfs.sh

8.创建系统必要的文件夹

第一台机器执行以下命令

mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/tempDatas 
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas 
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2 
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas 
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2 
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/nn/edits 
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/snn/name 
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/edits

安装包的分发

第一台机器执行以下命令

cd /export/servers/ 
scp -r hadoop-2.7.5 node2:$PWD 
scp -r hadoop-2.7.5 node3:$PWD

第三步:配置hadoop的环境变量

三台机器都要进行配置hadoop的环境变量

三台机器执行以下命令

vim /etc/profile
export HADOOP_HOME=/export/servers/hadoop-2.7.5 
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

配置完成之后生效

source /etc/profile

第四步:启动集群

要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个模块。 注意: 首次启动 HDFS 时,必须对 其进行格式化操作。 本质上是一些清理和 准备工作,因为此时的 HDFS 在物理上还是不存在的。

hdfs namenode -format 或者 hadoop namenode –format

准备启动

第一台机器执行以下命令

cd /export/servers/hadoop-2.7.5/ 

#格式化namenode
bin/hdfs namenode -format 

#启动dfs
sbin/start-dfs.sh 

#启动yarn
sbin/start-yarn.sh 

#启动historyserver
sbin/mr-jobhistory-daemon.sh start historyserver

三个端口查看界面

查看hdfs
http://node1:50070/explorer.html#/

Xnip2020-06-07_19-59-04

查看yarn集群
http://node1:8088/cluster

Xnip2020-06-07_19-59-27

查看历史完成的任务
http://node1:19888/jobhistory

Xnip2020-06-07_19-59-44

如果看到上述三个页面启动成功则集群启动完成。

附:分享一些需要的软件链接

相关文章

网友评论

      本文标题:Hadoop集群的搭建

      本文链接:https://www.haomeiwen.com/subject/dyaztktx.html