hadoop3 完全分布式集群搭建(一)

基础概念

1. NameNode

存储文件的元数据。如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和所在的DataNode等。

2. DataNode

具体存储文件块数据,以及数据块校验和。

3. Secondary NameNode(2nn)

每隔一段时间对NameNode元数据备份。

4. ResourceManager

管理整个集群的资源(内存,cpu等)。

5. NodeManager

管理单个节点的资源(内存,cpu等)。

开始搭建

机器准备

  • 192.168.3.48 hadoop1 (master)
  • 192.168.3.46 hadoop2   (slave)
  • 192.168.3.47 hadoop3   (slave)

部署结构图

具体步骤 

1.修改hostname:

# 192.168.3.48
[root@localhost hadoop]# hostnamectl set-hostname hadoop1

# 192.168.3.46
[root@localhost hadoop]# hostnamectl set-hostname hadoop2

# 192.168.3.47
[root@localhost hadoop]# hostnamectl set-hostname hadoop3

2.三台机器修改hosts:

[root@localhost hadoop]# vim /etc/hosts

192.168.3.48 hadoop1
192.168.3.46 hadoop2
192.168.3.47 hadoop3

3.关闭防火墙 要保证任何一台机器能ping hostname

# 关闭防火墙
[root@hadoop1 hadoop]# systemctl stop firewalld.service 
# 禁止开机启动
[root@hadoop1 hadoop]# systemctl disable firewalld.service

4. 配置ssh免密登录

分别在三台机器上生成 ssh 链接的私钥和公钥(一直回车,直到结束),在用户的家目录下生成一个隐藏文件 .ssh

# 后面一路回车
[root@localhost ~]# ssh-keygen -t rsa
#查看生成文件
[root@localhost ~]# ls .ssh/
id_rsa  id_rsa.pub  known_hosts

三台机器 拷贝公钥

[root@localhost ~]# cd /root/
[root@localhost ~]# ssh-copy-id -i .ssh/id_rsa.pub hadoop1
[root@localhost ~]# ssh-copy-id -i .ssh/id_rsa.pub hadoop2
[root@localhost ~]# ssh-copy-id -i .ssh/id_rsa.pub hadoop3

拷贝完成会生成下面文件

[root@localhost ~]# cd /root/.ssh/
[root@localhost .ssh]# ll
总用量 16
-rw-------. 1 root root 1182 10月 14 17:41 authorized_keys
-rw-------. 1 root root 1679 10月 14 17:36 id_rsa
-rw-r--r--. 1 root root  394 10月 14 17:36 id_rsa.pub
-rw-r--r--. 1 root root  546 10月 14 17:41 known_hosts

5. 安装jdk8 , 不讲。

6. 下载hadoop3.1.3.tar.gz , 解压 :

[root@localhost hadoop-3.1.3]# pwd
/usr/local/hadoop-3.1.3

配置环境变量:

## java 环境变量
export JAVA_HOME=/usr/local/java8/
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

# hadoop 变量
export HADOOP_HOME=/usr/local/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

7. 修改配置

配置文件在 /usr/local/hadoop-3.1.3/etc/hadoop/ 目录下

core-site.xml

<configuration>
        <!-- 指定NameNode地址-->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://hadoop1:8020</value>
        </property>

        <!-- 指定hadoop数据的存储目录-->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/local/hadoop-3.1.3/data</value>
        </property>

</configuration>

hdfs-site.xml

<configuration>

        <!-- 指定NameNode web-->
        <property>
                <name>dfs.namenode.http-address</name>
                <value>hadoop1:9870</value>
        </property>

        <!-- second name node web   -->
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoop3:9868</value>
        </property>

</configuration>

mapred-site.xml

<configuration>

        <!-- 指定NameNode地址-->
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>

</configuration>

yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

        <!-- 指定 MR shuffle-->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

        <!-- ResourceManager  addr-->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop2</value>
        </property>

                <property>
                <name>yarn.nodemanager.env-whitelist</name>
                <value>JAVA_HOME,HADOOP_CONNON_HONE,HADOOP_HDFS_HONE,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADO0P_MAPRED_HOME</value>
        </property>

</configuration>

workers

hadoop1
hadoop2
hadoop3

hadoop-env.sh

HADOOP_SECURE_DN_USER=root
HDFS_SECONDARYNAMENODE_USER=root
HDFS_NAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_ZKFC_USER=root
HDFS_JOURNALNODE_USER=root
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root
JAVA_HOME=/usr/local/java8/
HADOOP_SHELL_EXECNAME=root

启动

1. 启动HDFS

第一次启动时,需要格式化 , 在 hadoop1(master) 机器上:

hdfs namenode -format

执行完成后hadoop安装目录会多出:

 

 hadoop1 (master)机器上 启动:

[root@localhost hadoop-3.1.3]# start-dfs.sh

只需要启动master的就可以了,其它机器的会自己启动。

hadoop1

hadoop2

hadoop3

浏览器访问

 http://hadoop1:9870/

 启动成功!!!!

2. 启动yarn

在hadoop2机器上启动:

[root@hadoop2 ~]# start-yarn.sh

到此集群搭建完毕!!!!

推荐一个Java架构师博客,带你一起写架构:

JAVA架构师修炼

总结

今天相当于讲得是运维方面的环境搭建,按照操作步骤来就可以搭建成功,后面会有实际案例要运行在hadoop集群上,所以这是迈开的第一步。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值