why hadoop2.X?IBM上有篇论文讲的够详细了:文章链接   最直观的改进便是是2.X多了Yarn资源管理器优化资源分配,以及新增有HA形式避免单点故障,建立时能够用请求一年或许半年的免费云服务,当然也能够自己用虚拟机,若影用的呢是虚拟机形式的。   why hadoop3.X?个人是纯属装逼来玩玩,能够参考官方文档更新,牢记!企业用的时分千万不要用最新版,为啥?举个例子,Flink更新版别!hadoop是个咱们族,决定这个家族时尚程度的不是最新的一个组件版别,而是这个家族中最落后的成员支持的版别。

预备阶段

  • 了解Hadoop+HA的frame
    Hadoop集群大数据解决方案之搭建Hadoop3.X+HA模式(二)
    主备NameNode:   1、主NameNode对外供给服务,备NameNode同步主NameNode元数据,以待切换;   2、主NameNode的信息发生变化后,会将信息写到共享数据存储体系中让备NameNode合并到自己的内存中;   3、一切DataNode一起向两个NameNode发送心跳信息(块信息);

两种切换方式: 1、手动切换:经过指令完结主备之间的切换,能够用于HDFS升级等场合; 2、主动切换:基于Zookeeper完结;Zookeeper Failover Controller:向Zookeeper注册NameNode并监控NameNode健康状况,当NM挂掉后,ZKFC为NameNode竞赛锁,取得锁的NameNode变成active。   多个Journal Node构成集群(引荐)基本原理,数据一起写入一切的JN,多数写入成功,则认为写成功;一般装备奇数个JN,JN越多,容错性越好;比如有3个JN,只要两个写成功,则数据写成功,最多答应一个JN挂掉。   四台机器的节点散布如下表,1表明该机器上应该有该服务:

NN DN ZK ZKFC JN RM DM
node1 1 1 1 1
node2 1 1 1 1 1 1
node3 1 1 1 1
node4 1 1 1
  • 装置集群操作体系:检查一下自己电脑装备,由于最少要3台虚拟机才能过把瘾,那我这边是用了4台,就算闹着玩每台内存2G也要8G内存,最好有12G以上内存加i5处理器吧,否则虚拟机很卡,毫无游戏体会(当然假如家里有多台破电脑,把这些破电脑接入一个路由器上做成一个小型局域网,能够达到更好的效果),下载VMware Workstation Pro软件,下载一个Linux装置包(自己选用的是CentOS7.ISO,下载链接),装置4台CentOS7,别离hostname为node1,node2,node3,node4,网络衔接形式设置为桥接,否则出现网络不通的状况是很麻烦的,留意:Hadoop集群中hostname,core-site.xml中的fs.defaultFS项的value不行包括下划线,其它装备文件也慎用下划线。能够用“-”,慎用“_”
  • 找一个好用的长途Linux工具X-Shell或许MobaXterm,个人不引荐Putty,灵活性太差,比较引荐MobaXterm,可支持界面化Unold和DownLoad文件,很直观便利的操作小文件来完结Linux和Windows之间交互操作。
  • 设置集群内部的免暗码登录:   vi /etc/hosts文件,然后源文件后边追加IP和hostname,目的是既能够经过IP免密互登,也能够经过hostname免密登录,详细如下,先处理好一台后能够经过指令 “scp /etc/hosts node2:/etc/hosts”来完结跨服务器复制,把node2,node3,node4的/etc/hosts文件替换掉。
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.10 node1
192.168.1.9 node2
192.168.1.11 node3
192.168.1.12 node4

  生成集群中一切node的公钥、私钥,并把一切node的公钥统一Copy在authorized_keys文件内,详细操作如下:

######################################################################
#此下面两行处代码需求在每个node上履行
cd ~    #回到主界面
ssh-keygen -t rsa -f ~/.ssh/id_rsa    #输入此指令按三次回车,该目录下新生成私钥id_rsa,和公钥id_rsa.pub
#此处的两行只需求在node1上履行
cd .ssh    #进入.ssh folder内
cat id_rsa.pub >> authorized_keys    #将公钥id_rsa.pub另存为该folder下authorized_keys文件内
#####################################################################
#别离在node2,node3,node4上把密钥追加到node1的authorized_keys
 ssh-copy-id -i node1  #每一台node上履行此句子,把本地主机的公钥复制到长途主机node1的authorized_keys文件上
#在node1上
cat /root/.ssh/authorized_keys    #能够看到里边的内容包括了每个node的公钥
chmod 600 /root/.ssh/authorized_keys    #修正该文件权限为600,细想一下是不是最合理,个人觉得是
#使用scp跨服务器把一切node的authorized_keys替换,如下
scp /root/.ssh/authorized_keys node2:/root/.ssh/
scp /root/.ssh/authorized_keys node3:/root/.ssh/
scp /root/.ssh/authorized_keys node4:/root/.ssh/
#测试衔接,选任何一台机器
ssh node1
ssh node2
ssh node3
ssh node4
#能够发现都是免密认证就能登录
  • 装置JDK hadoop2.X配JDK7,3.X配JDK8,挑选的时分需求稳重,否则不兼容建立的你怀疑人生。
mkdir /usr/java    #新建java的根folder
cd /usr/java    #切换至/usr/java folder下
wget JDK下载链接    #JDK下载链接能够自己去Oracle官网下载查询,需求注册Oracle账号,否则不让下,建议下载tar包,比较好全局掌控
tar -zxvf jdk-8u211-linux-x64.tar.gz    #解压tar包
#解压后的folder文件名很长,为了便利使用能够设一个软件,类似于Windows下的快捷方式,代码如下
ln -sf /usr/java/jdk1.8.0_211/ /usr/java/jdk8    #设置软链接,直接cd /usr/java/jdk8就能切换至jdk根folder下
#装备环境变量
vim /etc/profile   
/*
翻开环境变量文件,新增:
export JAVA_HOME=/usr/java/jdk1.8.0_211
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export  PATH=${JAVA_HOME}/bin:$PATH
*/
source /etc/profile    #重启环境变量服务
java -version    #在恣意folder内输入,检查Java版别,会提示版别号,则装置成功
#每个node上来一遍上述操作,特别提醒,留意scp的妙用,这个指令在集群中很常用,要熟练掌握。

装置Hadoop 3.X+HA(此节内容首要是hdfs,后续插件更新中)

  • 新建用户 新建一个myhadoop组和myhadoop用户,并且赋予sudo的权限,由于正常的声场环境是不行能给任何人root权限的,所以咱们要养成习惯,自己玩的时分也不要太依赖root,赋予sudo规划vi操作,对vi操作有问题欢迎检查Linux常用的vi/vim指令;
sudo groupadd -g 9000 myhadoop    #添加id=9000的组myhadoop
sudo useradd myhadoop -g 9000 -u 100000 -m #新增id=100000user myhadoop到id=9000的组内,-m表明需求创立/home目录,留意此时创立的myhadoop用户还没有暗码
sudo passwd myhadoop  #会跳出提示框让你修正myhadoop的暗码,输完暗码按回车键(暗码在Linux体系是不行见的,直接按回车,不要犹疑是否自己键盘坏了没输入,一次输完后会要求你再重复输入一遍)
vi /etc/sudoers #翻开sudoers文件,找到root ALL=(ALL) ALL这一行,在下面再增加一行myhadoop ALL=(ALL) ALL,然后保存退出即可
  • 正式装置
wget http://mirror.bit.edu.cn/apache/hadoop/core/hadoop-3.2.0/hadoop-3.2.0.tar.gz #下载3.2
tar -zxvf hadoop-3.2.0.tar.gz #解压3.2的tar包
ln -sf /usr/hadoop-3.2.0 /usr/hadoop-3.2.0 #创立个软链(类似快捷方式)
cd /usr/hadoop-3.2.0 #进入hadoop-3.2.0,一切装备文件在该目录下的etc目录下的hadoop目录,下面进行逐个文件的装备

hadoop2.X后一切的装备文件在 hadoop-XX.XX/etc/hadoop下,hadoop2.X后一切的装备文件在 hadoop-XX.XX/etc/hadoop下,hadoop2.X后一切的装备文件在 hadoop-XX.XX/etc/hadoop下,重要的事说三遍,参考官方网页 1)经过vi hadoop-env.sh指令修正hadoop-env.sh装备文件

#将里边的JAVA_HOME修正为自己的JAVA目录,能够在vi里边/java,搜索JAVA_HOME位子
JAVA_HOME=/usr/java/jdk1.8.0_211

2)经过vi hdfs-site.xml指令修正hdfs-site.xml装备文件,我写的注释不要配进去


<configuration>
#HA形式是一个集群形式,第一步装备集群的姓名,我取了若影的拼音,留意,姓名中不行包括下划线,ruo_ying这样的,咱们能够按需取名,一旦取名后,后边用到的集群姓名悉数改成此姓名。
<property>
  <name>dfs.nameservices</name>
  <value>ruoying</value>
</property>
#装备NameNode,用到集群姓名和第一步保持一致,牢记nn1,nn2为NameNode的命名,非机器的hostname,能够不改。
<property>
  <name>dfs.ha.namenodes.ruoying</name>
  <value>nn1,nn2</value>
</property>
#装备node1和node2的rpc协议端口,rpc协议为hadoop集群内部传输数据,集群姓名与第一步保持一致
<property>
  <name>dfs.namenode.rpc-address.ruoying.nn1</name>
  <value>node1:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.ruoying.nn2</name>
  <value>node2:8020</value>
</property>
#装备node1,node2的http协议端口,可供网页查询,集群姓名与第一步保持一致
<property>
  <name>dfs.namenode.http-address.ruoying.nn1</name>
  <value>node1:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.ruoying.nn2</name>
  <value>node2:50070</value>
</property>
#装备journal node对应的机器端口,此处表明journal node装置在node2,node3,node4,对应的服务端口为8485,集群姓名与第一步保持一致
<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://node2:8485;node3:8485;node4:8485/ruoying</value>
</property>
#装备客户端使用的类找到active的NameNove,集群姓名与第一步保持一致
<property>
  <name>dfs.client.failover.proxy.provider.ruoying</name>
  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
#装备sshfence,把私钥文件装备进来,留意自己的私钥文件在什么目录下,姓名是什么就如实写啥,依据自己的机器挑选填写
<property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</value>
</property>
<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/root/.ssh/id_rsa</value>
</property>
#装备journal node的作业目录,随便挑选,不要放在临时目录下即可,即tmp的目录,临时目录操作体系重启会丢掉数据
<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/opt/JN/journal/node/local/data</value>
</property>
#装备HA形式下NameNode的主动切换,装备完也是能够手动切换的,放心装备
<property>
   <name>dfs.ha.automatic-failover.enabled</name>
   <value>true</value>
</property>
</configuration>

3)经过vi core-site.xml指令修正core-site.xml装备文件,我写的注释不要配进去


<configuration>
#装备hadoop的进口,留意该集群的namenode是个集群,不能写死固定ip,所以要写hdfs-site.xml里边的集群名
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://ruoying</value>
</property>
#装备zookeeper地点的节点和端口
<property>
   <name>ha.zookeeper.quorum</name>
   <value>node1:2181,node2:2181,node3:2181</value>
 </property>
#装备作业目录,默许的在临时目录,最好改成实体目录,避免体系重启清空了数据
<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/hadoop3</value>
</property>
</configuration>
#装备hdfs文件体系的回收站,1440为时长保留1440分钟,当hdfs 删除文件时,会暂时保存在回收站,能够用mv指令回收。
<property>
   <name>fs.trash.interval</name>
   <value>1440</value>
</property>

4)装备yarn-site.xml,千万留意yarn.resourcemanager.ha.id特点,node1的值为rm1,node2的值为rm2,其他阶段非namenode不需求该特点

<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>rmcluster</value>
    </property>
    <property>
     <name>yarn.resourcemanager.ha.rm-ids</name>
     <value>rm1,rm2</value>
    </property>
    <property>
     <name>yarn.resourcemanager.hostname.rm1</name>
     <value>node1</value>
    </property>
    <property>
     <name>yarn.resourcemanager.hostname.rm2</name>
     <value>node2</value>
    </property>
    <property>
     <name>yarn.resourcemanager.zk-address</name>
     <value>node1:2181,node2:2181,node3:2181</value>
    </property>
    <property>
     <name>yarn.resourcemanager.recovery.enabled</name>
     <value>true</value>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.id</name>
        <value>rm1</value>
    </property>
    <property>
     <name>yarn.resourcemanager.store.class</name>
     <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
    </property>
</configuration>

5)装备mapreduce-site.xml文件,hadoop不带该文件,能够使用cp mapred-site.xml.template mapred-site.xml 生成,详细装备如下:


<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

6)装置,装备zookeeper集群

wget http://39.137.36.61:6310/mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz #下载zookeeper
tar -zxvf zookeeper-3.4.14.tar.gz  #解压zookeeper
ln -sf /usr/zookeeper-3.4.14  /usr/zk  #设置软链
cd /usr/zk/conf #zookeeper的装备文件在该目录下
cp zoo_sample.cfg zoo.cfg #以zoo_sample.cfg为源文件复制一份zoo.cfg文件作为装备文件
vi zoo.cfg,操作如下:
1.修正该文件下的
dataDir=/opt/zookeeper   #一样的原理,默许在tmp下简单丢掉数据
2.然后在最终加上三行,server.x,x为数字,对应地点node上/opt/zookeeper/myid这个文件下的数字,保存退出
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
3.mkdir /opt/zookeeper #在node1,node2,node3新建/opt/zookeeper目录为作业目录
4.vi myid #node1上,在里边写1,然后退出保存
5.scp -r /opt/zookeeper root@node2:/opt/zookeeper 
   scp -r /opt/zookeeper root@node3:/opt/zookeeper 
   #把/opt/zookeeper目录悉数跨服务器复制到node2,和node3,留意,node2和node3上该目录下的myid文件内容需求改成2和3
6.scp -r zookeeper-3.4.14/ root@node2:/usr/
   scp -r zookeeper-3.4.14/ root@node3:/usr/
  #使用scp把zookeeper的装备文件跨服务器cp到node2和node3,并用ln -sf  /usr/zookeeper-3.4.14/ /usr/zk创立软链
7.装备zookeeper的环境变量,vi /etc/profile 新加一条
export PATH=$PATH:/usr/zookeeper-3.4.14/bin
source /etc/profile #改写环境变量
8.封闭防火墙,
sudo systemctl status firewalld #检查防火墙状况
sudo systemctl stop firewalld #封闭防火墙
sudo systemctl startfirewalld #敞开防火墙
9.发动zookeeper,在/usr/zk/bin目录下有zkServer的一切指令。
zkServer.sh start

如下图,输入jps出现QuorumPeerMain端口,就阐明zookeeper成功发动,node1.node2,node3别离发动zk,首要出现的问题排查 1.ZK版别,最好不要用最新的,用次新的较为牢靠,现在tar包体积在36M左右,所以体积太大或许太小,就可能存在必定的坑。 2.zoo.cfg装备,是否node1,node2,node3的hostname是否对,也能够用ip 3.myid文件和里边的内容是否对。

Hadoop集群大数据解决方案之搭建Hadoop3.X+HA模式(二)
5)vi slaves装备datanaode,留意,hadoop3.X叫workers,只是改了个姓名

#里边直接写如下,然后退出保存
node2
node3
node4

6)以上hdfs就装备完结了,把装备好的hadoop scp到其他3台机器

scp -r /usr/hadoop-3.2.0 root@node2:/usr/
scp -r /usr/hadoop-3.2.0 root@node3:/usr/
scp -r /usr/hadoop-3.2.0 root@node4:/usr/

7)发动hadoop

1.
cd /usr/hadoop-3.2.0/sbin #先进入sbin目录发动journalnode
./hadoop-daemon.sh start journalnode #在node2,node3,node4上别离履行,发动journalnode,jps检查是否发动成功
2.
cd /usr/hadoop-3.2.0/bin #在其间一个namenode切换到bin目录下
 ./hdfs namenode -format #初始化其间一个namenode,初始化完今后,会在/opt/hadoop3下生成/dfs/name/current/* 这些信息
3.
cd /usr/hadoop-3.2.0/sbin   #在初始化的namenode上切换到sbin   
./hadoop-daemon.sh start namenode #发动一个namenode ,jps检查是否发动
#假如发动有问题,可
cd ../logs
tail -n50 hadoop-root-namenode-node1.log #检查最终50行日志看有什么反常
4.
#同步另一个namenode的元数据,在另一台namenode上操作
cd /usr/hadoop-3.2.0/bin  #切换到bin目录
./hdfs namenode -bootstrapStandby #同步元数据
#一样的,错误的话切换到 
cd ..logs 
tail -n50 hadoop-root-namenode-node2.log #检查日子报错
会在/opt/hadoop3下生成/dfs/name/current/* 这些信息
5.初始化zookeeper,在其间一个namenode中履行
cd /usr/hadoop-3.2.0/bin 
./hdfs zkfc -formatZK
6.hadoop3.X新特性,需求在/usr/hadoop-3.2/sbin目录下,别离vi start-dfs.sh,stop-dfs.sh,start-yarn.sh,stop-yarn.sh内,新增:
HDFS_DATANODE_USER=root
HDFS_JOURNALNODE_USER=root
HDFS_ZKFC_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_NODEMANAGER_USER=root
YARN_RESOURCEMANAGER_USER=root
缺一个就会在发动的时分报错,如缺少YARN_NODEMANAGER_USER,发动时报错如下:
ERROR: Attempting to operate on yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.
7.为了便利能够装备hadoop的两个环境变量
vi /etc/profile
新增
export PATH=$PATH:/usr/hadoop-3.2.0/bin:/usr/hadoop-3.2.0/sbin
wq!保存退出后 source /etc/profile 
8.重新发动dfs服务
先stop一切hadoop服务,在发动hdfs
由于装备了环境变量,所以能够在恣意地方履行如下指令,假如没有环境变量,则在你装置的hadoop目录下的sbin目录下
cd /usr/hadoop-3.2.0/sbin  
里边的发动指令如下
-rwxrwxr-x 1 hadoop supergroup 2752 Sep 10  2018 distribute-exclude.sh
-rwxrwxr-x 1 hadoop supergroup 6509 Oct  3  2019 hadoop-daemon.sh
-rwxrwxr-x 1 hadoop supergroup 1360 Sep 10  2018 hadoop-daemons.sh
-rwxrwxr-x 1 hadoop supergroup 1427 Sep 10  2018 hdfs-config.sh
-rwxrwxr-x 1 hadoop supergroup 2339 Sep 10  2018 httpfs.sh
-rwxrwxr-x 1 hadoop supergroup 3763 Sep 10  2018 kms.sh
-rwxrwxr-x 1 hadoop supergroup 4134 Sep 10  2018 mr-jobhistory-daemon.sh
-rwxrwxr-x 1 hadoop supergroup 1648 Sep 10  2018 refresh-namenodes.sh
-rwxrwxr-x 1 hadoop supergroup 2145 Sep 10  2018 slaves.sh
-rwxrwxr-x 1 hadoop supergroup 1471 Sep 10  2018 start-all.sh
-rwxrwxr-x 1 hadoop supergroup 1128 Sep 10  2018 start-balancer.sh
-rwxrwxr-x 1 hadoop supergroup 3734 Sep 10  2018 start-dfs.sh
-rwxrwxr-x 1 hadoop supergroup 1357 Sep 10  2018 start-secure-dns.sh
-rwxrwxr-x 1 hadoop supergroup 1347 Sep 10  2018 start-yarn.sh
-rwxrwxr-x 1 hadoop supergroup 1462 Sep 10  2018 stop-all.sh
-rwxrwxr-x 1 hadoop supergroup 1179 Sep 10  2018 stop-balancer.sh
-rwxrwxr-x 1 hadoop supergroup 3206 Sep 10  2018 stop-dfs.sh
-rwxrwxr-x 1 hadoop supergroup 1340 Sep 10  2018 stop-secure-dns.sh
-rwxrwxr-x 1 hadoop supergroup 1340 Sep 10  2018 stop-yarn.sh
-rwxrwxr-x 1 hadoop supergroup 4331 Oct  3  2019 yarn-daemon.sh
-rwxrwxr-x 1 hadoop supergroup 1353 Sep 10  2018 yarn-daemons.sh
#先起存储节点,既hdfs节点
./stop-all.sh&&./start-dfs.sh
#存储节点检查输出日志,使用以上指令,包括发动journalnode(装备几个起几个),namenode(装备两个,一个active,一个standby,当然要先发动zookeeper才会有一个active,否则两个都是standby),datanode(装备几个起几个)、zkfc(在namenode的机器上跟着,用于推举)
#再启计算节点,hadoop2.0后,默许的计算节点便是yarn的resourcemanager和nodemanager咯,指令如下;
./stop-yarn.sh && ./start-yarn.sh
#会发动resourcemanager和nodemanager,这个依据你yarn-site.xml装备的对应节点有关
//题外话
//1.此目录下不是有个stop-all.sh和start-all.sh吗?能够用吗,能够用,但是原则上不发起,一般正经人都不必,简单造成各种问题不好排查;
//2.今后你的hadoop正常运转的时分,个别看护进程坏死,但是整个集群 没挂的状况下,请独自发动个别看护进程,不能一把抓悉数重启;
//如有一个namenode挂了,由于高可用,集群的另一个namenode在作业,集群并没挂,那么你不能重启集群,只需求直接发动namenode即可,首要只要在该台节点下,指令如下;
cd /usr/hadoop-3.2.0/sbin #在初始化的namenode上切换到sbin
./hadoop-daemon.sh start namenode #发动一个namenode ,jps检查是否发动
#同理发动其他独自看护进程一样的道理,只要在该台节点下
./hadoop-daemon.sh start datanode  #独自发动某一个节点的datanode
./hadoop-daemon.sh start journalnode #独自发动某一个节点的journalnode 
./yarn-daemon.sh start nodemanager #独自发动该台机器的nodemanager 
./yarn-daemon.sh start resourcemanager  #独自发动该台机器的resourcemanager  

自此,整个单纯的Hdfs3.X+HA装备完结 各台机器上得到的jps如下: node1:

Hadoop集群大数据解决方案之搭建Hadoop3.X+HA模式(二)
node2:
Hadoop集群大数据解决方案之搭建Hadoop3.X+HA模式(二)
node3:
Hadoop集群大数据解决方案之搭建Hadoop3.X+HA模式(二)
node4:
Hadoop集群大数据解决方案之搭建Hadoop3.X+HA模式(二)
能够看到和咱们的原始表格完全符合,在恣意一台node1上访问https://node1:50070 能够经过网页版监管集群;
Hadoop集群大数据解决方案之搭建Hadoop3.X+HA模式(二)

附上hadoop通用默许端口,当然,假如自己在装备的时分做过更改,还是要按照自己装备的来;

端口 效果
9000 fs.defaultFS,如:hdfs://172.25.40.171:9000
9001 dfs.namenode.rpc-address,DataNode会衔接这个端口
50070 dfs.namenode.http-address
50470 dfs.namenode.https-address
50100 dfs.namenode.backup.address
50105 dfs.namenode.backup.http-address
50090 dfs.namenode.secondary.http-address,如:172.25.39.166:50090
50091 dfs.namenode.secondary.https-address,如:172.25.39.166:50091
50020 dfs.datanode.ipc.address
50075 dfs.datanode.http.address
50475 dfs.datanode.https.address
50010 dfs.datanode.address,DataNode的数据传输端口
8480 dfs.journalnode.rpc-address
8481 dfs.journalnode.https-address
8032 yarn.resourcemanager.address
8088 yarn.resourcemanager.webapp.address,YARN的http端口
8090 yarn.resourcemanager.webapp.https.address
8030 yarn.resourcemanager.scheduler.address
8031 yarn.resourcemanager.resource-tracker.address
8033 yarn.resourcemanager.admin.address
8042 yarn.nodemanager.webapp.address
8040 yarn.nodemanager.localizer.address
8188 yarn.timeline-service.webapp.address
10020 mapreduce.jobhistory.address
19888 mapreduce.jobhistory.webapp.address
2888 ZooKeeper,假如是Leader,用来监听Follower的衔接
3888 ZooKeeper,用于Leader推举
2181 ZooKeeper,用来监听客户端的衔接
60010 hbase.master.info.port,HMaster的http端口
60000 hbase.master.port,HMaster的RPC端口
60030 hbase.regionserver.info.port,HRegionServer的http端口
60020 hbase.regionserver.port,HRegionServer的RPC端口
8080 hbase.rest.port,HBase REST server的端口
10000 hive.server2.thrift.port
9083 hive.metastore.uris