网站图标文件下载,企业logo设计免费生成器,中信建设有限责任公司陈晓佳简历,推广普通话的标语目录
编辑
一、Hadoop集群部署
二、基础设施配置
2.1 设置网络 2.1.1 设置主机名称
2.1.2 设置hosts配置文件
2.1.3 关闭防火墙 2.1.4 关闭selinux 2.1.5 更换语言环境 2.1.6 更换时区 2.1.7 ssh免密
2.1.7.1 生成.ssh文件夹
2.1.7.2 进入文件夹
2.1.7.3 生成密码和…
目录
编辑
一、Hadoop集群部署
二、基础设施配置
2.1 设置网络 2.1.1 设置主机名称
2.1.2 设置hosts配置文件
2.1.3 关闭防火墙 2.1.4 关闭selinux 2.1.5 更换语言环境 2.1.6 更换时区 2.1.7 ssh免密
2.1.7.1 生成.ssh文件夹
2.1.7.2 进入文件夹
2.1.7.3 生成密码和私钥
2.1.7.4 免密授权
三、软件安装
3.1 jdk 安装
3.1.1 解压jdk
3.1.2 移动解压目录
3.1.3 配置jdk设置环境变量
3.1.4 修改系统默认JDK
3.1.4.1 查看系统当前默认配置
3.1.4.2 把自己安装的JDK加入系统备选中
3.1.4.3 将自己的JDK作为java首选
3.1.5 检查环境使用的JDK
3.1.6 分发JDK到其他节点
3.1.6.1 分发JDK
3.1.6.2 分发环境变量文件
3.1.7 分发环境生效
3.2 安装zookeeper 集群
3.2.1 解压
3.2.2 移动解压目录
3.2.3 配置zookeeper
3.2.3.1 拷贝生成zoo.cfg
3.2.3.2 建立zookeeper 目录
3.2.3.3 修改zoo.cfg文件
3.2.3.4 创建myid文件
3.2.3.5 设置环境变量
3.2.3.6 分发zookeeper
3.2.3.7 分发环境变量文件
3.2.3.8 生效环境
3.2.3.9 启动zookeeper
3.3 安装hadoop
3.3.1 解压hadoop
3.3.2 移动解压目录
3.3.3 配置hadoop
3.3.3.1 设置Hadoop JAVA_HOME
3.3.3.2 设置YARN JAVA_HOME
3.3.3.3 设置core-site.xml文件
3.3.3.4 设置hdfs-site.xml 文件
3.3.3.5 设置mapred-site.xml 文件
3.3.3.6 设置yarn-site.xml文件
3.3.3.7 修改workers文件
3.3.3.8 修改 start-dfs.sh 和stop-dfs.sh 文件
3.3.3.9 修改start-yarn.sh和stop-yarn.sh文件
3.3.4 分发复制到其他节点
3.4.4.1 分发Hadoop文件
3.4.4.2 分发/etc/profile 文件
3.4.5 启动hadoop集群
3.4.5.1 初始化namenode
3.4.5.2 初始化zk中的ha状态
3.4.5.3 启动整个集群
3.3.5 集群验证及简单使用
3.3.5.1 查看yarn 集群状态
3.3.5.2 查看namenode集群状态
3.3.5.3 访问hdfs 集群页面
3.3.5.4 访问yarn 集群页面
3.3.5.5 简单使用
3.3.5.5.1 创建bigdata 目录
3.3.5.5.2 创建 /user/root目录 一、Hadoop集群部署
系统环境描述本教程基于CentOS 8.0版本虚拟机
机器节点信息 软件版本
jdk-8u211-linux-x64.tar.gz
apache-zookeeper-3.8.2-bin.tar.gz
hadoop-3.3.4.tar.gz
提示如果想入门hadoop特别是集群部署hadoop涉及的角色还是比较多的建议先从总体架构抓起先熟悉总体架构再熟悉HA部署模式的相关理论和知识然后再跟着部署的过程中就会有豁然开朗的感觉印象也会比较深刻推荐先看下我前面的hadoop系列的理论文章YARN框架和其工作原理流程介绍_夜夜流光相皎洁_小宁的博客-CSDN博客、HDFS介绍_夜夜流光相皎洁_小宁的博客-CSDN博客、MapReduce介绍_夜夜流光相皎洁_小宁的博客-CSDN博客
二、基础设施配置
2.1 设置网络 2.1.1 设置主机名称
分别登录进入 192.168.31.215、192.168.31.8、192.168.31.9、192.168.31.167、192.168.31.154等节点服务器执行命令:
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
hostnamectl set-hostname node4
2.1.2 设置hosts配置文件
vi /etc/hosts
192.168.31.215 master 192.168.31.8 node1 192.168.31.9 node2 192.168.31.167 node3 192.168.31.154 node4
2.1.3 关闭防火墙
systemctl stop firewalld systemctl stop iptables
#永久关闭防火墙
systemctl disable firewalld 2.1.4 关闭selinux
#临时关闭 setenforce 0 #永久关闭
vim /etc/selinux/config 然后设置 SELINUXdisabled 2.1.5 更换语言环境
dnf install glibc-langpack-zh.x86_64 echo LANGzh_CN.UTF-8 /etc/locale.conf source /etc/locale.conf 2.1.6 更换时区
timedatectl list-timezones timedatectl set-timezone Asia/Shanghai timedatectl 2.1.7 ssh免密
2.1.7.1 生成.ssh文件夹
ssh localhost
2.1.7.2 进入文件夹
cd /root/.ssh/
2.1.7.3 生成密码和私钥
ssh-keygen -t rsa
一路按回车键就行
2.1.7.4 免密授权
ssh-copy-id rootmaster
说明在本环境中我们需要将master的密钥发送给其他node1、node2、node3、node4节点,其中 master和node1要相互免密原因是1启动start-dfs.sh脚本的机器需要将公钥分发给别的节点 2在HA模式下每一个NN身边会启动ZKFCZKFC会用免密的方式控制自己和其他NN节点的NN状态
三、软件安装
3.1 jdk 安装
3.1.1 解压jdk
tar -zxvf jdk-8u211-linux-x64.tar.gz
3.1.2 移动解压目录
mv jdk1.8.0_211/ /usr/local/
3.1.3 配置jdk设置环境变量
export JAVA_HOME/usr/local/jdk1.8.0_211 export PATH$PATH:${JAVA_HOME}/bin export CLASSPATH.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
3.1.4 修改系统默认JDK
因为我安装的CentOS 8.0 操作系统默认安装了自带的open jdk显然不满足我们的需要我又不想卸载open jdk所以才选择使用update-alternatives来管理JDK如果你们的环境没有多版本jdk 管理需求可忽略本步骤。
3.1.4.1 查看系统当前默认配置
输入命令update-alternatives --display java 3.1.4.2 把自己安装的JDK加入系统备选中
update-alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_211/bin/java 1800265
-- 提示 1800265为执行update-alternatives --display java 后看到的系统默认jdk的权限编号
3.1.4.3 将自己的JDK作为java首选
update-alternatives --config java 然后输入2 回车。
3.1.5 检查环境使用的JDK
java -version 成功配置了我们自己安装的java版本
3.1.6 分发JDK到其他节点
3.1.6.1 分发JDK
scp -r /usr/local/jdk1.8.0_211/ rootnode1:/usr/local/ scp -r /usr/local/jdk1.8.0_211/ rootnode2:/usr/local/ scp -r /usr/local/jdk1.8.0_211/ rootnode3:/usr/local/ scp -r /usr/local/jdk1.8.0_211/ rootnode4:/usr/local/
3.1.6.2 分发环境变量文件
scp /etc/profile rootnode1:/etc/profile scp /etc/profile rootnode2:/etc/profile scp /etc/profile rootnode3:/etc/profile scp /etc/profile rootnode4:/etc/profile
3.1.7 分发环境生效
node1、node2、node3、node4虚拟机上执行 source /etc/profile 使环境生效 提示如果虚拟机默认了JDK需要执行3.1.4小节的命令切换系统默认JDK为你自己安装的JDK
3.2 安装zookeeper 集群
3.2.1 解压
tar -zxvf apache-zookeeper-3.8.2-bin.tar.gz
3.2.2 移动解压目录
mv apache-zookeeper-3.8.2-bin /usr/local/
3.2.3 配置zookeeper
3.2.3.1 拷贝生成zoo.cfg
cd /usr/local/apache-zookeeper-3.8.2-bin/conf
cp zoo_sample.cfg zoo.cfg
3.2.3.2 建立zookeeper 目录
cd /usr/local/apache-zookeeper-3.8.2-bin/
mkdir zkdata mkdir logs
3.2.3.3 修改zoo.cfg文件
vim zoo.cfg
--zoo.cfg 添加内容 dataDir/usr/local/apache-zookeeper-3.8.2-bin/zkdata dataLogDir/usr/local/apache-zookeeper-3.8.2-bin/logs server.1node2:2888:3888 server.2node3:2888:3888 server.3node4:2888:3888
3.2.3.4 创建myid文件
node2、node3、node4虚拟机分别在/usr/local/apache-zookeeper-3.8.2-bin/zkdata目录下创建myid echo 1 myid //node2 echo 2 myid //node3 echo 3 myid //node4
3.2.3.5 设置环境变量
vim /etc/profile
export ZK_HOME/usr/local/apache-zookeeper-3.8.2-bin export PATH$PATH:$ZK_HOME/bin
3.2.3.6 分发zookeeper
scp -r /usr/local/apache-zookeeper-3.8.2-bin/ rootnode3:/usr/local/ scp -r /usr/local/apache-zookeeper-3.8.2-bin/ rootnode4:/usr/local/
3.2.3.7 分发环境变量文件
scp /etc/profile rootnode3:/etc/profile scp /etc/profile rootnode4:/etc/profile
3.2.3.8 生效环境
注意三台虚拟机分贝执行source /etc/profile 使环境生效
3.2.3.9 启动zookeeper
分别在node2、node3、node4节点启动zookeeper 服务 命令zkServer.sh start 通过ps -ef|grep zookeeper 指令我们查看到我们的zookeeper已经启动成功。
3.3 安装hadoop
3.3.1 解压hadoop
tar -zxvf hadoop-3.3.4.tar.gz
3.3.2 移动解压目录
mv hadoop-3.3.4/ /usr/local/
3.3.3 配置hadoop
3.3.3.1 设置Hadoop JAVA_HOME
cd /usr/local/hadoop-3.3.4/etc/hadoop
vim hadoop-env.sh
export JAVA_HOME/usr/local/jdk1.8.0_211
3.3.3.2 设置YARN JAVA_HOME
vim yarn-env.sh
export JAVA_HOME/usr/local/jdk1.8.0_211
3.3.3.3 设置core-site.xml文件
vim core-site.xml
propertynamefs.defaultFS/namevaluehdfs://mycluster/value
/propertypropertynamehadoop.tmp.dir/namevalue/usr/local/hadoop-3.3.4/tmp/value
/propertypropertynameha.zookeeper.quorum/namevaluenode2:2181,node3:2181,node4:2181/value
/propertypropertynamehadoop.proxyuser.root.hosts/namevalue*/value
/propertypropertynamehadoop.proxyuser.root.groups/namevalue*/value
/property
3.3.3.4 设置hdfs-site.xml 文件
vim hdfs-site.xml
propertynamedfs.replication/namevalue3/value
/propertypropertynamedfs.namenode.name.dir/namevalue/usr/local/hadoop-3.3.4/ha/dfs/name/value
/propertypropertynamedfs.datanode.data.dir/namevalue/usr/local/hadoop-3.3.4/ha/dfs/data/value
/propertypropertynamedfs.namenode.checkpoint.dir/namevalue/usr/local/hadoop-3.3.4/ha/dfs/secondary/value
/property!-- 以下是 一对多逻辑到物理节点的映射 --propertynamedfs.nameservices/namevaluemycluster/value
/propertypropertynamedfs.ha.namenodes.mycluster/namevaluenn1,nn2/value
/propertypropertynamedfs.namenode.rpc-address.mycluster.nn1/namevaluemaster:9000/value
/propertypropertynamedfs.namenode.http-address.mycluster.nn1/namevaluemaster:50070/value
/propertypropertynamedfs.namenode.rpc-address.mycluster.nn2/namevaluenode1:9000/value
/propertypropertynamedfs.namenode.http-address.mycluster.nn2/namevaluenode1:50070/value
/property!--节点宕机超时设置默认10分钟30秒dfs.namenode.heartbeat.recheck-interval 单位是毫秒dfs.heartbeat.interval单位是秒 --
propertynamedfs.namenode.heartbeat.recheck-interval/namevalue50000/value
/property
propertynamedfs.heartbeat.interval/namevalue3/value
/property!-- 以下是JN在哪里启动数据存那个磁盘 --
propertynamedfs.namenode.shared.edits.dir/namevalueqjournal://master:8485;node1:8485;node3:8485/mycluster/value
/property
propertynamedfs.journalnode.edits.dir/namevalue/usr/local/hadoop-3.3.4/ha/dfs/jn/value
/property!-- HA角色切换的代理类和实现方法我们用的ssh免密 --propertynamedfs.client.failover.proxy.provider.mycluster/namevalueorg.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider/value
/property
!--HA模式下要设置 shell(true) 这个值不然namenode active节点宕机后standby不会切换 --
propertynamedfs.ha.fencing.methods/namevaluesshfence/valuevalueshell(true)/value
/property
propertynamedfs.ha.fencing.ssh.private-key-files/namevalue/root/.ssh/id_dsa/value
/propertypropertynamedfs.ha.fencing.ssh.connect-timeout/namevalue30000/value
/property!-- 开启自动化 启动zkfc --
propertynamedfs.ha.automatic-failover.enabled/namevaluetrue/value
/property!-- 开启webhdfs --
propertynamedfs.webhdfs.enabled/namevaluetrue/value
/property
3.3.3.5 设置mapred-site.xml 文件
vim mapred-site.xml
propertynamemapreduce.framework.name/namevalueyarn/value
/propertypropertynameyarn.app.mapreduce.am.env/namevalueHADOOP_MAPRED_HOME/usr/local/hadoop-3.3.4/value
/propertypropertynamemapreduce.map.env/namevalueHADOOP_MAPRED_HOME/usr/local/hadoop-3.3.4/value
/propertypropertynamemapreduce.reduce.env/namevalueHADOOP_MAPRED_HOME/usr/local/hadoop-3.3.4/value
/propertypropertynamemapreduce.map.memory.mb/namevalue2048/value
/propertypropertynamemapreduce.reduce.memory.mb/namevalue2048/value
/propertypropertynamemapreduce.map.java.opts/namevalue-Xmx1024m/value
/propertypropertynamemapreduce.reduce.java.opts/namevalue-Xmx1024m/value
/property
3.3.3.6 设置yarn-site.xml文件
vim yarn-site.xml
propertynameyarn.resourcemanager.ha.enabled/namevaluetrue/value
/propertypropertynameyarn.resourcemanager.zk-address/namevaluenode2:2181,node3:2181,node4:2181/value
/propertypropertynameyarn.resourcemanager.cluster-id/namevalueningzhaosheng/value
/propertypropertynameyarn.resourcemanager.ha.rm-ids/namevaluerm1,rm2/value
/propertypropertynameyarn.resourcemanager.hostname.rm1/namevaluenode3/value
/property
!-- 指定rm1 的web端地址--
propertynameyarn.resourcemanager.webapp.address.rm1/namevaluenode3:8088/value
/property
!--指定rm1的内部通讯地址 --propertynameyarn.resourcemanager.address.rm1/namevaluenode3:8032/value
/propertypropertynameyarn.resourcemanager.hostname.rm2/namevaluenode4/value
/property
!-- 指定rm2 的web端地址--
propertynameyarn.resourcemanager.webapp.address.rm2/namevaluenode4:8088/value
/property
!--指定rm2的内部通讯地址 --propertynameyarn.resourcemanager.address.rm2/namevaluenode4:8032/value
/propertypropertynameyarn.resourcemanager.recovery.enabled/namevaluetrue/value
/propertypropertynameyarn.resourcemanager.ha.automatic-failover.enabled/namevaluetrue/value
/propertypropertynameyarn.resourcemanager.store.class/namevalueorg.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore/value
/propertypropertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value
/propertypropertynameyarn.nodemanager.aux-services.mapreduce.shuffle.class/namevalueorg.apache.hadoop.mapred.ShuffleHandler/value
/propertypropertynameyarn.nodemanager.resource.memory-mb/namevalue4096/value
/property
3.3.3.7 修改workers文件
vim workers
#添加hostname
master
node1
node2
node3
node43.3.3.8 修改 start-dfs.sh 和stop-dfs.sh 文件
start-dfs.sh、stop-dfs.sh文件头部加入
HDFS_ZKFC_USERroot HDFS_JOURNALNODE_USERroot HDFS_DATANODE_USERroot HDFS_DATANODE_SECURE_USERhdfs HDFS_NAMENODE_USERroot HDFS_SECONDARYNAMENODE_USERroot
3.3.3.9 修改start-yarn.sh和stop-yarn.sh文件
start-yarn.sh、stop-yarn.sh文件头部加入 YARN_RESOURCEMANAGER_USERroot HDFS_DATANODE_SECURE_USERroot YARN_NODEMANAGER_USERroot
3.3.4 分发复制到其他节点
3.4.4.1 分发Hadoop文件
scp -r /usr/local/hadoop-3.3.4/ rootnode1:/usr/local/ scp -r /usr/local/hadoop-3.3.4/ rootnode2:/usr/local/ scp -r /usr/local/hadoop-3.3.4/ rootnode3:/usr/local/ scp -r /usr/local/hadoop-3.3.4/ rootnode4:/usr/local/
3.4.4.2 分发/etc/profile 文件
scp /etc/profile rootnode1:/etc/profile
scp /etc/profile rootnode2:/etc/profile
scp /etc/profile rootnode3:/etc/profile
scp /etc/profile rootnode4:/etc/profile
注意分发环境配置文件后记得在各节点执行source /etc/profile使环境配置生效
3.4.5 启动hadoop集群
3.4.5.1 初始化namenode
hdfs namenode -format
提示初次启动需要后续重启服务不再需要
3.4.5.2 初始化zk中的ha状态
hdfs zkfc -formatZK
提示初次启动需要后续重启服务不再需要
3.4.5.3 启动整个集群
start-all.sh start
3.3.5 集群验证及简单使用
3.3.5.1 查看yarn 集群状态
yarn rmadmin -getServiceState rm1 yarn rmadmin -getServiceState rm2 查看状态显示一个active状态一个standby状态启动正常。
3.3.5.2 查看namenode集群状态
hdfs haadmin -ns mycluster -getAllServiceState 查看状态显示一个active状态一个standby状态符合预期启动正常。
3.3.5.3 访问hdfs 集群页面
http://master:50070/ 通过页面访问到了hadoop集群页面且显示我们的节点都在线启动正常。
3.3.5.4 访问yarn 集群页面
http://node3:8088/cluster 成功访问到了yarn调度集群页面yarn启动正常。
3.3.5.5 简单使用
3.3.5.5.1 创建bigdata 目录
hdfs dfs -mkdir /bigdata
3.3.5.5.2 创建 /user/root目录
hdfs dfs -mkdir -p /user/root
今天Hadoop3.3.4集群部署的相关内容就分享到这里如果帮助到大家欢迎大家点赞关注收藏有疑问也欢迎大家评论留言