mac搭建hadoop3.2.1——伪分布模式

1 homebrew安装

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装完毕后使用brew doctor查看是否安装成功

2 设置ssh免密登录

因为hadoop中,在启动datanode、namenode时都需要免密登录,不设置,则会出现Permission denied的错误提示,导致无法启动DataNode。
设置免密登录:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

之后再使用ssh localhost命令,直接可以登录:
在这里插入图片描述

3 安装Hadoop

首先要在电脑中成功安装jdk,jdk的安装可以使用brew也可以去官网手动下载。这里使用jdk1.8,是一个比较通用的版本,安装成功后使用java -version命令查看版本:

然后使用brew命令进行Hadoop安装:

brew install hadoop

这个过程可能会比较慢,建议挂梯子,这里会自动安装Hadoop的新版本3.2.1。
如果install速度实在太慢考虑先替换homebrew镜像源,然后再安装Hadoop:

// 替换brew.git
cd "$(brew --repo)"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

// 替换homebrew-core.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

更新.bash_profile:

echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile

source ~/.bash_profile

安装完毕:
在这里插入图片描述
输入hadoop命令检查一下安装是否成功(部分截图):
在这里插入图片描述
在这里插入图片描述

4 伪分布式配置

首先要进入路径:/usr/local/Cellar/hadoop/3.2.1_1/libexec/etc/hadoop,文件的配置均在此路径下完成

a.hadoop-env.sh配置

打开该文件,找到以下位置:
在这里插入图片描述
取消第三句的注释并加入本机的jdk位置,如果忘记了可以通过java -verbose命令查询

java -verbose

在这里插入图片描述
这里我的java位置是:/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home,所以将文件配置修改为:
在这里插入图片描述

b.core-site.xml配置

<configuration></configuration>标签中加入

<property>
 		<name>fs.defaultFS</name>
 		<value>hdfs://localhost:9000</value>
</property>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/Cellar/hadoop/3.2.1_1/tmp/hadoop_tmp</value>
        <description>namenode上本地的hadoop临时文件夹</description>  
</property>

这里fs表示文件系统,fs.defaultFS描述集群中NameNode节点的URI。
hadoop.tmp.dir指定了namenode上本地的hadoop临时文件夹,最好自己设置,否则很容易丢失(必须在格式化hdfs之前设置)

c.hdfs-site.xml配置

<configuration></configuration>标签中加入

<property>
 		<name>dfs.replication</name>
 		<value>1</value>
</property>	 
<property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/Cellar/hadoop/3.2.1_1/tmp/hdfs/name</value>
        <description>namenode上存储hdfs名字空间元数据</description>  
</property>
<property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/Cellar/hadoop/3.2.1_1/tmp/hdfs/data</value>
        <description>datanode上数据块的物理存储位置</description>
</property>	

dfs.replication:设置数据块应该被复制的份数,为了数据可用性及冗余的目的,HDFS会在多个节点上保存同一个数据块的多个副本,其默认为3个。但此处伪分布式环境中其保存一个副本即可。
dfs.namenode.name.dir和dfs.datanode.data.dir指定了namenode上存储hdfs名字空间元数据和datanode上数据块的物理存储位置,最好自己设置,否则很容易丢失(必须在格式化hdfs之前设置)

d.mapred-site.xml配置

<configuration></configuration>标签中加入

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

由于安装的是Hadoop3 ,运行在yarn框架之上,所以设置执行框架mapreduce.framework.name为yarn

e.yarn-site.xml配置

<configuration></configuration>标签中加入

<property> 
        <name>yarn.nodemanager.aux-services</name> 
        <value>mapreduce_shuffle</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>

5 运行

首先对文件进行格式化,进入路径:/usr/local/Cellar/hadoop/3.2.1_1/libexec/bin,事实上,Hadoop的各种‘功能’都在这个路径下:
输入命令:

hdfs namenode -format

在这里插入图片描述
运行成功:
在这里插入图片描述
注意,除非不得已,不要多次进行格式化,每次进程格式化之前一定要删空之前格式化生成的文件:将dfs.namenode.name.dir和dfs.datanode.data.dir目录下的内容全部删除,将hadoop.tmp.dir目录下的内容全部删除。

然后进入另外一个路径:/usr/local/Cellar/hadoop/3.2.1_1/libexec/sbin,此路径下有很多可执行命令文件,启动,停止等:
在这里插入图片描述
输入命令启动Hadoop:

start-dfs.sh

在这里插入图片描述
可以看到 NameNode,DataNode和Secondary NameNode正在启动,通过网页http://localhost:9870,可以看到启动的overview内容:
使用jps命令:

jps

在这里插入图片描述
可以看到 NameNode,DataNode和Secondary NameNode启动成功。

继续在 /usr/local/Cellar/hadoop/3.1.1/libexec/sbin 路径中,输入命令:

start-yarn.sh

在这里插入图片描述
可以看到resourcemanager和nodemanager正在启动,通过网页http://localhost:8088,可以看到启动的All Applications内容:
在这里插入图片描述
使用jps命令:

jps

在这里插入图片描述
可以看到 resourcemanager和nodemanager启动成功。

不再需要使用hdfs时,使用命令:

stop-all.sh

终止所有进程
在这里插入图片描述
此时再使用jps命令,可以看到进程都被成功关闭了:
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值