Hadoop学习-集群配置

hadoop集群配置

https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/

一、Linux系统安装

centOS7、hadoop-3.3.6、jdk-8u411-linux-x64

linux系统安装
yum install vim

1、 firewall命令

systemctl status firewalld    						#查看防火墙状态
systemctl start firewalld.service 					#打开防火墙
systemctl stop firewalld.service  					#关闭防火墙
systemctl disable firewalld.service  				#禁止防火墙

二、JDK&&Hadoop安装

1、解压jdk&&hadoop

在这里插入图片描述

2、增加环境变量 (vim /etc/profile)

在这里插入图片描述

3、重新加载使其生效 (source /etc/profile)

三、准备环境

1、确保防火墙是关闭状态

2、确保NAT模式和静态IP的确定 (192.168.XXX.XXX)

3、确保/etc/hosts文件里,ip和hostname的映射关系

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9c512b14090c43299a16ddaee2955626.png

4、确保免密登陆localhost有效

ssh-keygen -t rsa				#生成公钥和私钥
ssh-copy-id 主机名				#将公钥和私钥copy到对应主机
								#(每个主机都需要进行此操作,包含自身)

5、保证集群之间时间一致

6、jdk和hadoop的环境变量配置

四、修改hadoop的配置文件并启动集群

1、修改配置文件

在这里插入图片描述

1.1、core-site.xml
<configuration>
	<!--设置namenode节点-->
	<!-- 注意: hadoop1.x时代默认端口9000 hadoop2.x时代默认端口8020 hadoop3.x时代默认端口 9820 -->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://hadoop01:9820</value>
	</property>
	<!-- hdfs的基础路径,被其他属性所依赖的一个基础路径 -->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/usr/local/hadoop-3.4.0/tmp</value>
	</property>
	<!-- 指定通过Web UI访问HDFS的用户root -->
	<property>
   		<name>hadoop.http.staticuser.user</name>
   		<value>root</value>
	</property>
	<!-- 允许任何服务器的root用户可以向Hadoop提交任务 -->
	<property>
    	<name>hadoop.proxyuser.root.hosts</name>
    	<value>*</value>
	</property>
	<!-- 允许任何用户组的root用户可以向Hadoop提交任务 -->
	<property>
    	<name>hadoop.proxyuser.root.groups</name>
    	<value>*</value>
	</property>
	<!-- 指定HDFS中被删除文件的存活时长为1440-->
	<property>
    	<name>fs.trash.interval</name>
    	<value>1440</value>
	</property>
</configuration>

1.2、hdfs-site.xml
<configuration>
	<!-- 副本数量(默认3防止数据丢失) -->
	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>
	<!-- secondarynamenode守护进程的http地址:主机名和端口号。参考守护进程布局-->
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>hadoop02:9868</value>
	</property>
	<!-- namenode守护进程的http地址:主机名和端口号。参考守护进程布局-->
	<property>
		<name>dfs.namenode.http-address</name>
		<value>hadoop01:9870</value>
	</property>
</configuration>
1.3、hadoop-env.sh (hadoop运行配置)
export JAVA_HOME=/usr/local/jdk1.8.0_411
#Hadoop3中,需要添加郊下配置,设置启动集群角色的用户是谁
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
1.4、works(haoop1和2中叫 slaves)
hadoop01
hadoop02
hadoop03
1.5、在hadoop1进行配置后通过远程copy直接发送给hadoop2和hadoop3:包含 profile文件,hadoop、jdk
# -r 递归向下 (同步环境变量后重新加载环境变量)
scp -r /usr/local/hadoop-3.3.6 root@hadoop02:/usr/local
scp -r /usr/local/hadoop-3.3.6 root@hadoop03:/usr/local
scp -r /usr/local/jdk1.8.0_411 root@hadoop02:/usr/local
scp -r /usr/local/jdk1.8.0_411 root@hadoop03:/usr/local

scp /etc/profile root@hadoop02:/etc
scp /etc/profile root@hadoop03:/etc

2、启动集群

2.1、格式化集群

注意事项:
我们在core-site.xm1中配置过hadoop.tmp.dir的路径,在集群格式化的时候需要保证在这个路径不存在!如果之前存在数据。先将其删除(rm -rf 文件名称(其中-r向下递归 -f直接删除)),再进行格式化

hdfs namenode -format
2.2 启动集群

启动集群后可通过jps命令查看正在运行JAVA相关进程信息

start-dfs.sh		#启动HDFS所有进程(NameNode、SecondaryNameNode、DataNode)
stop-dfs.sh			#停IHDFS所有进程(NameNode、SecondaryNameNode、DataNode)

# hdfs --daemon start 单独启动一个进程
hdfs --daemon start namenode				#只开启NameNode
hdfs --daemon start secondarynamenode		#只开启SecondaryNameNode
hdfs --daemon start datanode				#只开启DataNode

# hdfs --daemon stop 单独停止一个进程
hdfs --daemon stop namenode					#只停止上NameNode
hdfs --daemon stop secondarynamenode		#只停止上SecondaryNameNode
hdfs --daemon stop datanode					#只停止上DataNode

#hdfs--workers --daemon start 启动所有的指定进程
hdfs --workers --daemon start datanode		#开启所有节点上的DataNode
 
#hdfs--workers --daemon stop 停止所有的指定进程
hdfs --workers --daemon stop datanode		#停止所有节点上的DataNode
2.3 多节点进程查看脚本
#1、创建脚本
vim /usr/local/hadoop-script.sh				
#2、增加如下内容
#!/bin/bash
HOSTS=( hadoop01 hadoop02 hadoop03 )

for HOST in ${HOSTS[*]}
do
	echo "---$HOST---"
	ssh -T $HOST << DELIMITER
    jps | grep -iv jps				# 过滤jps节点
    exit
DELIMITER
done

#3、授权并将文件软链接到usr/bin,或者将文件添加到环境变量中
sudo chmod 777
ln -s /usr/local/hadoop-script.sh  /usr/bin

#4、执行查看所有节点下的java相关进程
[root@hadoop01 local]# hadoop-script.sh 
---hadoop01---
12721 DataNode
12600 NameNode
---hadoop02---
2379 DataNode
2447 SecondaryNameNode
---hadoop03---
11644 DataNode
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值