千家信息网

hadoo分布式安装

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,前骤:Hadoop Cluster中的DaemonHDFS:NameNode,NNSecondaryNode,SNNDataNode:DN/data/hadoop/hdfs/{nn,snn,dn}nn
千家信息网最后更新 2026年10月31日hadoo分布式安装

前骤:

Hadoop Cluster中的Daemon

HDFS:

NameNode,NN

SecondaryNode,SNN

DataNode:DN

/data/hadoop/hdfs/{nn,snn,dn}

nn:fsp_w_picpath,editlog//镜像和编辑日志

//hdfs的NN是在内存中存放数据,不断根据文件状态改变,修改元数据

fsp_w_picpath存放了:文件分割后存放在哪些node上

//文件元数据的改变,会写入到editllog中,最后写入到fsp_w_picpath中,因此下次NN重启后数据依然存在,从fsp_w_picpath中读取数据,获取到内存中

//一旦nn崩溃,数据恢复需要大量的时间

snn:在nn崩溃的时候,及时顶上去,省去修复nn,让nn重新上线的时间,但是各个data node报告数据状态,进行修复的时间依然需要。

正常情况下:snn负责copy nn的fsp_w_picpath和editlog然后在snn上合并

checkpoint:因为nn是在不断变化的,因此snn要指定合并到那个时间点上。

//官方建议30个以上的node构建hadoop集群

data是否需要工作于raid//因为hdfs已经有replicate的功能,因此再次提供冗余的必要性不大

hadoop-daemon.sh 运行进程

在集群模式中hadoop-daemon.sh start DataNode时,需要自动的找每一个DataNode节点,然后在每一个DataNode上自动启动。

如何找到,或者如何保证命令能够通过主控节点,自动连接到各从节点,并且有权限执行命令。


在主节点上:配置

YARN:

ResourceManager

NodeManager:

yarn-daemon.sh start/stop

实际运行进程:

【NN】 【SNN】 【RM】

| | |

---------------------------------

[node1/NN] [nod2/NN] [node3/NN]

在node上启动:datanode进程和nodemanager进程即可

实验模型:

【NN/SNN/RM】

|

-----------------------------------------

[node1/NN] [nod2/NN] [node3/NN]

主控节点上运行:namenode,secondarynamenode,resourcemanager三个进程

其他node上启动:datanode进程和nodemanager进程

预备:

1.ntpdate 同步

tzselect,

timedatactl //查看时区设置

timedatectl list-timezones # 列出所有时区

timedatectl set-local-rtc 1 # 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间

timedatectl set-timezone Asia/Shanghai # 设置系统时区为上海

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime //最简单的方案

2.hosts通信

172.16.100.67 node1.mt.com node1 master

172.16.100.68 node2.mt.com node2

172.16.100.69 node3.mt.com node3

172.16.100.70 node4.mt.com node4

如果需要通过master节点启动或停止整个集群,需要在master上配置运行服务的用户,如hdfs和yarn能够基于密钥ssh链接

node1:

一、前奏

(1)配置环境

vim /etc/profile.d/java.sh

JAVA_HOME=/usr

yum install java-1.8.0-openjdk-devel.x86_64

scp /etc/profile.d/java.sh node2:/etc/profile.d/

scp /etc/profile.d/java.sh node3:/etc/profile.d/

scp /etc/profile.d/java.sh node4:/etc/profile.d/


vim /etc/profile.d/hadoop.sh

export HADOOP_PREFIX=/bdapps/hadoop

export PATH=$PATH:${HADOOP_PREFIX}/bin:${HADOOP_PREFIX}/sbin

export HADOOP_YARN_HOME=${HADOOP_PREFIX}

export HADOOP_MAPPERD_HOME=${HADOOP_PREFIX}

export HADOOP_COMMON_HOME=${HADOOP_PREFIX}

export HADOOP_HDFS_HOME=${HADOOP_PREFIX}

. /etc/profile.d/hadoop.sh

scp /etc/profile.d/hadoop.sh node2:/etc/profile.d/

scp /etc/profile.d/hadoop.sh node3:/etc/profile.d/

scp /etc/profile.d/hadoop.sh node4:/etc/profile.d/

(2)修改hosts文件

vim /etc/hosts

172.16.100.67 node1.mt.com node1 master

172.16.100.68 node2.mt.com node2

172.16.100.69 node3.mt.com node3

172.16.100.70 node4.mt.com node4

scp 到 node2,node3,node4

(3)hadoop 密钥登录

useradd hadoop //node2,3,4都有一个hadoop用户

echo "hadoop" | passwd --stdin hadoop

useradd -g hadoop hadoop //这里都使用一个用户,也可以分别创建yarn和hdfs用户

su - hadoop

ssh-keygen

for i in 2 3 4; do ssh-copy-id -i .ssh/id_rsa.pub hadoop@node${i}; done

验证:

ssh node2 'date'

ssh node3 'date'

ssh node4 'date'

二、安装部署hadoop

(1)解压

mkdir -pv /bdapps/ /data/hadoop/hdfs/{nn,snn,dn} //这里的dn是用不到的,因为主控节点是不存储数据的,可以不创建

chown -R hadoop:hadoop /data/hadoop/hdfs

tar xvf hadoop-2.6.2.tar.gz -C /bdapps/

cd /bdapps/

ln -sv hadoop-2.6.2 hadoop

cd hadoop

mkdir logs

chown g+w logs

chown -R hadoop:hadoop ./*

(2)配置文件修改

1.core-site.xml 配置

vim etc/hadoop/core-site.xml

fs.defaultFS

hdfs://master:8020

//hdfs的访问接口,master如果不能解析,用ip地址也可以

true

//core指向NN

2.yanr-site.xml文件配置

vim etc/hadoop/yarn-site.xml

yarn.resourcemanager.address

master:8032

yarn.resourcemanager.scheduler.address

master:8030

yarn.resourcemanager.resource-tracker.address

master:8031

yarn.resourcemanager.admin.address

master:8033

yarn.resourcemanager.webapp.address

master:8088

yarn.nodemanager.aux-services

mapreduce_shuffle

yarn.nodemanager.auxservices.mapreduce_shuffle.class

org.apache.hadoop.mapred.ShuffleHandler

yarn.resourcemanager.scheduler.class

org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler

//%s/localhost/master/g //替换localhost为master

//指向ResourceManager


3.hdfs-site.xml配置

vim etc/hadoop/hdfs-site.xml

dfs.replication //dfs的副本数量

2

dfs.namenode.name.dir

file:///data/hadoop/hdfs/nn

dfs.datanode.data.dir

file:///data/hadoop/hdfs/dn

fs.checkpoint.dir

file:///data/hadoop/hdfs/snn

fs.checkpoint.edits.dir

file:///data/hadoop/hdfs/snn

4.

mapred-site.xml 是唯一不需要修改的

默认的就是yarn就可以


5.

vim slaves

node2

node3

node4

//slaves是datanode和nodemanager

(3)

在node2,node3,node4指定到该步骤后:chown -R hadoop:hadoop ./*

su - hadoop

scp /bdapps/hadoop/etc/hadoop/* node2:/bdapps/hadoop/etc/hadoop/

scp /bdapps/hadoop/etc/hadoop/* node3:/bdapps/hadoop/etc/hadoop/

scp /bdapps/hadoop/etc/hadoop/* node4:/bdapps/hadoop/etc/hadoop/

三.格式化然后启动

su - hadoop

hdfs namenode -format

显示/data/hadoop/hdfs/nn hash been successful formatted 表示成功

启动hadoop方式有两种:

1.在各节点上分别启动要启动的服务

启动yarn服务要使用yarn用户身份

master节点:NameNode服务和ResourceManager服务

su - hdfs -c 'hadoop-daemon.sh start namenode'

su - hdfs -c 'yarn-daemon.sh start resourcemanager'

slave节点:DataNode服务和NodeManager服务

su - hdfs -c 'hadoop-daemon.sh start datanode'

su - hdfs -c 'yarn-daemon.sh start nodemanager'

2.在master上启动整个集群

su - hdfs -c 'start-dfs.sh'

su - hdfs -c 'start-yarn.sh'

老版本通过start-all.sh和stop-all.sh来控制hdfs和mapreduce

启动服务:

su - hdfs -c 'start-dfs.sh'

su - hdfs -c 'stop-dfs.sh' //关闭hdfs

会提示在,2,3,4节点上启动

su - hdfs -c 'start-yarn.sh'

master启动resourcemanager

slave上启动nodemanager

测试:

node3: su - hadoop

jps //查看DataNode进程和NodeManager进程

node1:su - hadoop

jps //启动的有secondaryNameNode和NameNode进程

hdfs dfs -mkdir /test

hdfs dfs -put /etc/fstab /test/fstab

hdfs dfs -ls -R /test

hdfs dfs -cat /test/fstab

node3:

ls /data/hadoop/hdfs/dn/current/..../blk,... 存储在这里

注意:node2,3,4中有一个是没有存储该文件的,因为定义的slaves 为2个

vim etc/hadoop/hdfs-site.xml

dfs.replication //dfs的副本数量

2

Web接口查看:

172.16.100.67:8088

内存显示为24G,因为3G,每个node的物理内存代大小为8G

172.16.100.67:50070

datanode: 有三个

单个文件太小的是不会被切割的,大于64M的文件会被切片

可以直接上传压缩文件,会被切块

运行任务测试:

yarn jar /bdapps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-example-2.6.jar wordcount /test/fstab /test/functions /test/wc

hdfs dfs cat /test/wc/part-r-0000

四、其他节点

node2:

user hadoop

echo "hadoop" | passwd --stdin hadoop

mkdir -pv /bdapps /data/hadoop/hdfs/{nn,snn,dn} //只有dn有用

chown -R hadoop:hadoop /data/hadoop/hdfs/

tar xvf hadoop-2.6.2.tar.gz -C /bdapps/

cd /bdapps/

ln -sv hadoop-2.6.2 hadoop

cd hadoop

mkdir logs

chown g+w logs

chown -R hadoop:hadoop ./*

//可以在修改配置文件后,直接复制到node3和node4上因为配置都一样

node3:

user hadoop

echo "hadoop" | passwd --stdin hadoop

mkdir -pv /bdapps /data/hadoop/hdfs/{nn,snn,dn} //只有dn有用

chown -R hadoop:hadoop /data/hadoop/hdfs/

tar xvf hadoop-2.6.2.tar.gz -C /bdapps/

cd /bdapps/

ln -sv hadoop-2.6.2 hadoop

cd hadoop

mkdir logs

chown g+w logs

chown -R hadoop:hadoop ./*

node4:

user hadoop

echo "hadoop" | passwd --stdin hadoop

mkdir -pv /bdapps /data/hadoop/hdfs/{nn,snn,dn} //只有dn有用

chown -R hadoop:hadoop /data/hadoop/hdfs/

tar xvf hadoop-2.6.2.tar.gz -C /bdapps/

cd /bdapps/

ln -sv hadoop-2.6.2 hadoop

cd hadoop

mkdir logs

chown g+w logs

chown -R hadoop:hadoop ./*

=====================================================

yarn的集群管理命令

yarn [--config confdir] COMMAND

resourcemanager-format-state-store //删除RMStateStore

resourcemanager //运行ResourceManager

nodemanaer //运行nodemanager on each slave

timelineserver //运行timelineserver,任务编排,时间线

rmadmin //resourcemanager管理

version

jar //运行jar文件

application //显示application信息

report/kill application

applicationattempt //尝试运行相关报告

container //容器相关信息

node //显示node

queue //报告队列信息

logs //备份容器日志

classpath //显示java运行程序时的类加载路径

daemonlog //获取守护进程的日志级别

jar,application,node,logs,classpath,version 是常用的用户命令

resourcemanager,nodemanager,proxyserver,rmadmin,daemon是常用的管理类命令

yarn application [options]

-status ApplicationID 状态信息

yarn application -status application_1494685700454_0001

-list 列出yarn上的application列表

-appTypes:MAPREDUCE,YARN

-appStates:ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED

yarn application -appStates=all

-kill ApplicationID

yarn node

-list //例出node列表

-states: NEW,RUNNING,UNHEALTHY不健康,DECOMMISSION退役的,LOST,REBOOTED

-staus Node-ID //显示节点信息

logs:显示已经完成的YARN程序的日志(及状态为:FAILED,KILLED,FINISHED)

如果需要在命令行查看日志需要配置yarn-site.xml

yarn.log-aggregation-enable 属性值为true

yarn logs -applicationId [applicationID] [options]

-applicationId applicationID必备选项,用于从ResourceManager获取其详细信息。

-appOwner APPOwner默认为当前用户,可选

-nodeAddress NodeAddress -containerId containerID:获取当前指定节点上指定容器的相关信息;其中NodeAddress的格式同NodeId

classpath:

yarn calasspath //加载java程序路径

管理命令:

rmadmin

nodemanager

timelineserver

rmadmin是ResourceManager的客户端程序,可用于刷新访问控制策略、调度器队列及注册到RM上的节点等。

刷新之后,无需重启即可生效。

yarn rmadmin [options]

-help

-refreshQueues:重载队列的acl,状态及调用器队列;它会根据配置文件中的配置信息重新初始化调度器

-refreshNodes:为RM刷新主机信息,它通过读取RM节点的include和exclude文件来更新集群需要包含或排除的节点列表。

-refreshUserToGroupMappings:根据配置的Hadoop安全组映射,通过刷新组缓存中的信息来更新用户和组之间的映射关系。

-refreshSuperUserGroupsConfiguration:刷新超级用户代理组映射,以及更新代理主机和core-site.xml配置文件中的hadoop.proxyuser属性定义的代理组

-refreshAdminAcls:根据yarn站点配置文件或默认配置文件的yarn.admin.acl属性刷新RM的管理ACL;

-refreshServiceAcl:重载服务级别授权策略文件,而后RM将重载授权策略文件;它会检查hadoop安全授权是否启用并为IPC Server,ApplicationMaster,Client及Resource tracker刷新ACL;

DaemonLog:查看或更细

http://host:port/logLevel?log=name service?

yarn daemonlog [options] args

-getLevel host:port name:显示指定守护进程的日志级别

-getLevel host:port level:设置守护进程的日志级别

运行YARN application

yarn application可以是一个shell脚本,MapReduce作业或者其他类型的任意作业。

步骤:

1.Application初始化提交 //client端完成

2.分配内存并启动AM //RM完成

3.AM注册及资源分配 //AM在nodemanager上完成

4.启动并监控容器 //AM向NM报告,NM报告RM完成

5.Application进度报告 //AM完成

6.Application进度完成 //

利用ambari部署hadoop集群

https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/

https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.5.0

IBM官方技术论坛:https://www.ibm.com/developerworks/cn/opensource/

Ambari 2.2.2 下载资源

OS Format URL

http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.2.0

http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.2.0/ambari.repo

http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.2.0/ambari-2.2.2.0-centos7.tar.gz

HDP 2.4.2 下载资源

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.2.0

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.2.0/hdp.repo

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.2.0/HDP-2.4.2.0-centos7-rpm.tar.gz

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7/HDP-UTILS-1.1.0.20-centos7.tar.gz


文件 节点 配置 进程 运行 信息 用户 服务 数据 命令 日志 集群 报告 时间 内存 状态 管理 容器 程序 级别 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 喔噻互联网科技有限公司 上海喔噻互联网科技有限公司 广东万易互联网科技有限公司惠州分公司 中关村互联网 科技集团 关于新基建和互联网科技 互联网科技公司发展 中国 科技 互联网 碳银互联网科技 华中科技大学互联网 云电互联网科技 丰台科技园 互联网 富国互联网科技创新基金 互联网实体化科技化 深圳市运趣互联网科技有限公司 济南华为互联网科技产业总部基地 随着互联网科技发展 央行互联网金融科技公司 深圳市罗太互联网科技有限公司 深圳互联网科技园地址 陕西彩京云互联网科技有限公司 哈尔滨大商圈互联网科技有限公司 互联网佳科技有限公司 智慧科技互联网 深圳天众互联网科技公司 广州善班互联网科技 恒银科技与互联网金融 顶级互联网科技成果有哪些 中国新注册互联网科技 互联网科技手抄报图片 保山浩联互联网科技有限公司
0