Hadoop 集群搭建

前言

初衷搭建hadoop 集群服务与flink任务运行。

版本: CentOS7 Hadoop3.2.2 JDK1.8

搭建hadoop集群

采用3台机器 设置 ip和机器名
vi /etc/hosts
10.188.120.101 hadoop-1
10.188.120.102 hadoop-2
10.188.120.103 hadoop-3

1.免密登录

3台机器上都执行如下命令

ssh-keygen -t rsa

执行命令后一直Enter即可!

因为我现在用的是root账户,所以秘钥文件保存到了/root/.ssh/目录内,可以使用命令查看,命令是

ls /root/.ssh/

在这里插入图片描述
注意: authorized_keys 这文件是后续创建的,单纯的生成秘钥没有这个文件。

使用同样的方法为hadoop-2和hadoop-3生成秘钥(命令完全相同,不用做任何修改)。

2.在hadoop-1上创建authorized_keys文件

接下来要做的事情是在3台机器的/root/.ssh/目录下都存入一个内容相同的文件,文件名称叫authorized_keys,文件内容是我们刚才为3台机器生成的公钥。为了方便,我下面的步骤是现在hadoop-1上生成authorized_keys文件,然后把3台机器刚才生成的公钥加入到这个hadoop-1的authorized_keys文件里,然后在将这个authorized_keys文件复制到hadoop-2和hadoop-3上面。
在这里插入图片描述
然后将hadoop-1上的/root/.ssh/id_rsa.pub文件内容,hadoop-2上的/root/.ssh/id_rsa.pub文件内容,hadoop-3上的/root/.ssh/id_rsa.pub文件内容复制到这个authorized_keys文件中,复制的方法很多了,可以用cat命令和vim命令结合来弄,也可以直接把这3台机器上的/root/.ssh/id_rsa.pub文件下载到本地,在本地将authorized_keys文件编辑好在上载到这3台机器上。

3. 安装hadoop

注意: 不需要在3台机器上重复下面所讲的步骤。只需要在hadoop-1服务器上配置好后使用scp命令复制到其余两台服务器即可

解压安装

tar -xvf hadoop-3.2.2.tar.gz

创建几个文件目录,我是在安装hadoop 的目录下新建了 flhadoop
然后在这个目录下 新建 tmp 、dfs 、var
在 dfs 目录下 新建了 name 、data
在这里插入图片描述

4.修改etc/hadoop中的一系列配置文件
  1. 修改core-site.xml
    执行 vi /opt/hadoop/hadoop-3.2.2/etc/hadoop/core-site.xml 命令
 <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/work/hadoop/flhadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
   </property>
   <property>
        <name>fs.default.name</name>
        <value>hdfs://hadoop-1:9000</value>
   </property>

2.修改hadoop-env.sh
执行

vi /opt/hadoop/hadoop-3.2.2/etc/hadoop/hadoop-env.sh 
export JAVA_HOME=/usr/local/java/jdk1.8.0_291

  1. 修改hdfs-site.xml
    执行 vi /opt/hadoop/hadoop-3.2.2/etc/hadoop/hdfs-site.xml 文件
<property>
   <name>dfs.name.dir</name>
   <value>/usr/local/work/hadoop/flhadoop/dfs/name</value>
   <description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.
   </description>
</property>
 
<property>
   <name>dfs.data.dir</name>
   <value>/usr/local/work/hadoop/flhadoop/dfs/data</value>
   <description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.
   </description>
</property>
 
<property>
   <name>dfs.replication</name>
   <value>2</value>
</property>
 
<property>
   <name>dfs.permissions</name>
   <value>false</value>
   <description>need not permissions</description>
</property>

PS:dfs.permissions配置为false后,可以允许不要检查权限就生成dfs上的文件,方便倒是方便了,但是你需要防止误删除,请将它设置为true,或者直接将该property节点删除,因为默认就是true。

4.新建并且修改mapred-site.xml

执行 vi /opt/hadoop/hadoop-3.2.2/etc/hadoop/mapred-site.xml 命令

<!-- 配置mapReduce在Yarn上运行(默认本地运行) -->
<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
</property>

5.修改workers文件
执行命令 vi /opt/hadoop/hadoop-3.2.2/etc/hadoop/workers
将里面的localhost删除

hadoop-1
hadoop-2
hadoop-3
  1. 修改yarn-site.xml文件
    执行 vi /opt/hadoop/hadoop-3.2.2/etc/hadoop/yarn-site.xml 命令,

在节点内加入配置(注意了,内存根据机器配置越大越好,我这里只配2个G是因为机器不行):

   <property>
        <description>指定YARN的老大(ResourceManager)的地址</description>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop-1</value>
   </property>
 
<!-- NodeManager上运行的附属服务。需要配置成mapreduce_shfffle,才可运行MapReduce程序默认值 -->
   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
   </property>
 
   <property>
        <discription>每个节点可用内存,单位MB,默认8182MB</discription>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>2048</value>
   </property>
 
   <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
   </property>
说明:yarn.nodemanager.vmem-check-enabled这个的意思是忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。如果是实体机上,并且内存够多,可以将这个配置去掉。

7.配置hadoop-3.2.0/sbin/目录下start-dfs.sh、start-yarn.sh、stop-dfs.sh、stop-yarn.sh文件

在start-dfs.sh、stop-dfs.sh开始第一行加上

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

在start-yarn.sh、stop-yarn.sh开始第一行加上

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

8.配置好后,将 hadoop-1上的 /usr/local/work/hadoop/hadoop-3.2.0 文件夹复制到各个节点上

# 这里我hadoop目录下还有数据存储
scp -r /usr/local/work/hadoop/ root@hadoop-2:/opt/usr/local/work/hadoop
scp -r /usr/local/work/hadoop/ root@hadoop-3:/opt/usr/local/work/hadoop
 
scp /etc/profile root@hadoop-2:/etc/    #copy配置文件到各个节点
scp /etc/profile root@hadoop-3:/etc/
5.启动Hadoop

进入到hadoop-1这台机器的/opt/hadoop/hadoop-3.2.2/bin目录,也就是执行命令:

执行初始化脚本,也就是执行命令:

./hadoop namenode -format

在namenode上执行启动命令

因为hadoop-1是namenode,hadoop-2和hadoop-3都是datanode,所以只需要再hadoop-1上执行启动命令即可。

   进入到hadoop-1这台机器的/opt/hadoop/hadoop-3.2.0/sbin目录,也就是执行命令
 ./start-all.sh

在这里插入图片描述
hadoop-1是我们的namenode,该机器的IP是10.188.120.201,在本地电脑访问如下地址:
http://10.188.120.201:9870/
在这里插入图片描述

访问集群页面url
http://192.168.217.128:8088/
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值