Hadoop学习之hadoop集群搭建(M1芯片 MacBookPro)心得

M1芯片 MacBookPro上搭建 hadoop完全分布式集群

电脑以及使用软件:

	MacBook pro(M1芯片,作为主机) 
	Parallels Desktop for Mac 17(虚拟机软件)
	Ubuntu 20.04(虚拟机上的操作系统)
	hadoop102、hadoop103、hadoop104(3台虚拟机当作三台服务器)

创建好第一台虚拟机后执行以下步骤

步骤一:修改主机名和用户名

	虚拟机创建时默认有图形化界面同时也给我默认了一个用户名Parallels和主机名

	首先进行主机名修改:

		sudo vim /etc/hostname

		进入后将里面的名字换成自己想改的主机名字(我改的是 hadoop102 )

	其次修改用户名:

		1. 首先进入root账户: sudo su 

		( 一定要先进入root然后将以下步骤一次性完成!!! )

		2. Ubuntu20.4自带的 vi很难用,可以安装新的 vim

			卸载自带的: sudo apt-get remove vim-common

			安装新的: sudo apt-get install vim

		3. 修改 shadow 文件: vim /etc/shadow

			将里面的所有原用户名换成自己想改的用户名
			
		4.修改用户目录
		
			mv /home/parallels  /home/更改的用户名
			
		5 修改 passwd 文件: vim /etc/passwd

			将里面的所有原用户名换成自己想改的用户名

		6. 修改 group 文件: vim /etc/group

			将里面的所有原用户名换成自己想改的用户名

		7. 最后重启

步骤二:更改 IP、安装 SSH

	先对虚拟机关机后将网络设置为 默认适配器

	后进入 /etc/netplan 目录下找到 01-network-manager-all.yaml 文件

	对其进行编辑: sudo vim 01-network-manager-all.yaml
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:
      dhcp4: no    
      dhcp6: no    
      addresses: [192.168.26.102/24] # 配置的静态ip地址和掩码( 我mac联网后的的ip 是 192.168.26。90)
      gateway4: 192.168.26.1   
      nameservers:
        addresses: [192.168.26.1, 8.8.8.8] # DNS服务器地址,多个DNS服务器地址
	编辑完毕后使其生效: sudo netplan apply

	输入 ifconfig 进行查看ip(如果没有 ifconfig命令 则 apt-get install ifconfig 下载)

	编辑文件:sudo vim /etc/hosts 

		在后面加上之后要用到的所有服务器的ip和主机名(三台)
	192.168.26.102 hadoop102

	192.168.26.103 hadoop103

	192.168.26.104 hadoop104
	安装ssh:sudo apt-get install openssh-server

	编辑文件:sudo vim /etc/ssh/sshd_config
	找到:   #PermitRootLogin prohibit-password 
	修改为: PermitRootLogin yes

步骤三:远程访问工具Tabby

	因为 Xshell 没有Mac版本,我在网上找到了一个比较好用的免费远程访问工具 Tabby
	
	下面这篇文章有详细的安装和使用教程
	https://blog.csdn.net/ygk004/article/details/121768955?spm=1001.2014.3001.5506
	在Tabby上连接 hadoop102

	进行主机映射: 在Mac的终端 输入 sudo vim /etc/hosts 后在文件里面加入ip和主机(同步骤二最后)

步骤四:关闭防火墙

	Ubuntu20.04 默认安装了UFW

	直接输入 sudo ufw  disable 关闭防火墙

步骤五:为自己的用户配置root权限

	修改文件: sudo vim /etc/sudoers

	找到这两行:
	# Allow members of group sudo to execute any command
	%sudo	ALL=(ALL:ALL) ALL
	在下面加上:
	自己的用户名 ALL=(ALL)    NOPASSWD:ALL

步骤六:克隆虚拟机

	将hadoop102关机之后,对其进行克隆两次命名为 hadoop103 和 hadoop104

	对克隆的这两台服务器进行主机名、IP修改(参照步骤一、二)

	在Tabby上连接 hadoop103 hadoop104

步骤七: jdk 和 hadoop 安装和配置

	利用 Tabby 上的 SFTP将 jdk 和 hadoop(官网自行下载) 传输到 /opt/software 目录下 (自己创建文件夹)

	解压jdk:tar -zxvf jdk文件名 -C /opt/module  

	配置环境变量:进入目录 /etc/profile.d  后编辑文件 sudo vim my_env.sh
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk-XXX(自己的jdk版本,路径一定要正确)
export PATH=$PATH:$JAVA_HOME/bin
	重新启用配置文件: source /etc/profile

	查看java是否安装完成:输入java 出现很多java信息且不报错则证明安装成功

	hadoop 安装与 jdk 步骤基本一致,环境变量不同:
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-XXX(自己的hadoop版本,路径一定要正确)
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
	查看hadoop是否安装完成:输入hadoop 出现很多hadoop信息且不报错则证明安装成功

步骤八: 配置集群

	配置计划:
		
		hadoop102上: NameNode (HDFS)

		hadoop103上: ResourceManager(YARN)

		hadoop104上: SecondaryNameNode(HDFS)

	自定义配置文件:

		在hadoop目录下  /etc/hadoop下面 
	
	
	hdfs-site.xml  配置:
<configuration>

<!-- nn web端访问地址-->
<property>
	<name>dfs.namenode.http-address</name>
	<value>hadoop102:9870</value>
</property>

<!-- 2nn web端访问地址-->
<property>
	<name>dfs.namenode.secondary.http-address</name>
	<value>hadoop104:9868</value>
</property>

</configuration>
mapred-site.xml  配置:
<configuration>

<!-- 指定MapReduce程序运行在Yarn上 -->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>


<!-- 历史服务器端地址 -->
<property>
	<name>mapreduce.jobhistory.address</name>
	<value>hadoop102:10020</value>
</property>

<!-- 历史服务器web端地址 -->
<property>
	<name>mapreduce.jobhistory.webapp.address</name>
	<value>hadoop102:19888</value>
</property>
</configuration>
yarn-site.xml 配置
<!-- 指定MR走shuffle -->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>


<!-- 指定ResourceManager的地址-->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>hadoop103</value>
</property>

<!-- 环境变量的继承 -->
<property>
	<name>yarn.nodemanager.env-whitelist</name>
	<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>

<!-- 开启日志聚集功能 -->
<property>
	<name>yarn.log-aggregation-enable</name>
	<value>true</value>
</property>

<!-- 设置日志聚集服务器地址-->
<property>
	<name>yarn.log.server.url</name>
	<value>http://hadoop102:19888/jobhistory/logs</value>
</property>

<!-- 设置日志保留时间为7天-->
<property>
	<name>yarn.log-aggregation.retain-seconds</name>
	<value>604800</value>
</property>

 core-site.xml 配置
<configuration>

<!-- 指定NameNode的地址 -->
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://hadoop102:8020</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/module/hadoop-3.1.3/data</value>
</property>

<!-- 配置HDFS网页登录使用的静态用户为ljs(自己的用户名)-->
<property>
	<name>hadoop.http.staticuser.user</name>
	<value>ljs</value>
</property>

</configuration>
	配置workers  在hadoop目录下 /etc/hadoop下面编辑: vim workers  

	加入三台服务器的主机名(一行一个不能有空格) 
hadoop102
hadoop103
hadoop104
hadoop102、hadoop103、hadoop104  三台服务器配置相同

步骤九:无密访问

	1. 在hadoop102上进入 .ssh/ :    cd ~/.ssh
	2. 创建公钥:    ssh-keygen -t rsa   之后三次回车
	3. 将公钥发送给hadoop103:    ssh-copy-id hadoop103
	4. 发送公钥至hadoop102、hadoop104
	5. 进入hadoop103、hadoop104、hadoop102(root)重复以上步骤

步骤十:启动集群

	第一次启动集群需要节点格式化:进入hadoop目录之后输入: hdfs namenode -format
	
	在hadoop102上启动 HDFS ,进入hadoop目录之后输入:sbin/start-dfs.sh             

	之后可以进入web页面 在浏览器输入 http://hadoop102:9870

	在hadoop103上启动 YARN ,进入hadoop目录之后输入:sbin/start-yarn.sh

	之后可以进入web页面 在浏览器输入 http://hadoop103:8088

	浏览器页面都可以进去则证明成功

至此,完全分布式集群搭建完成。

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顺其自然的济帅哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值