前言
Hadoop伪分布式模式配置
准备工作
开启Mac的ssh

Hadoop环境变量(MacOS)
1 2
| export HADOOP_HOME=/usr/local/Cellar/hadoop/3.2.1/libexec/ export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
|
Hadoop环境变量(Linux)
1 2
| export HADOOP_HOME=/home/app/hadoop-2.7.1 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
|
配置 core-site.xml
编辑配置文件
MacOS
1
| vim /usr/local/Cellar/hadoop/3.2.1/libexec/etc/hadoop/core-site.xml
|
Linux
1
| vim hadoop/etc/hadoop/core-site.xml
|
修改配置文件
- 在
<configuration></configuration>
标签内添加配置
fs.default.name
:指定HDFS中NameNode的地址
hadoop.tmp.dir
:指定Hadoop运行时产生文件的存储目录
1 2 3 4 5 6 7 8 9
| <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property>
<property> <name>hadoop.tmp.dir</name> <value>/Users/hatsunemiku/.hadoop/data/tmp</value> </property>
|
为什么配置临时文件目录
- 在默认不配置临时文件存储目录的情况下,Hadoop会将临时文件存储在
/tmp
目录中,而/tmp
目录属于Linux系统管理,Linux会根据需要删除临时文件,为了保证临时文件不被删除,需要指定一个其他目录作为Hadoop的临时文件存储目录
配置 hdfs-site.xml 文件
编辑配置文件
MacOS
1
| vim /usr/local/Cellar/hadoop/3.2.1/libexec/etc/hadoop/hdfs-site.xml
|
Linux
1
| vim hadoop/etc/hadoop/hdfs-site.xml
|
修改配置文件
- 在
<configuration></configuration>
标签内添加配置
dfs.replication
:表示备份数量, 默认为3,伪分布式值必须为1
dfs.permissions
:设置HDFS操作权限,false表时任何用户都可以在HDFS上操作文件,在生产环境下不要设置这个配置
1 2 3 4 5 6 7 8 9
| <property> <name>dfs.replication</name> <value>1</value> </property>
<property> <name>dfs.permissions</name> <value>false</value> </property>
|
配置 mapred-site.xml 文件
根据模版复制一份(Linux)
1
| cp mapred-site.xml.template mapred-site.xml
|
编辑配置文件
MacOS
1
| vim /usr/local/Cellar/hadoop/3.2.1/libexec/etc/hadoop/mapred-site.xml
|
Linux
1
| vim hadoop/etc/hadoop/mapred-site.xml
|
修改配置文件
- 在
<configuration></configuration>
标签内添加配置
mapreduce.framework.name
:指定Mapreduce运行的框架为Yarn
1 2 3 4
| <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
|
配置 yarn-site.xml 文件
编辑配置文件
MacOS
1
| vim /usr/local/Cellar/hadoop/3.2.1/libexec/etc/hadoop/yarn-site.xml
|
Linux
1
| vim hadoop/etc/hadoop/yarn-site.xml
|
修改配置文件
- 在
<configuration></configuration>
标签内添加配置
yarn.resourcemanager.hostname
:指定ResourceManager的地址
yarn.nodemanager.aux-services
:指定NodeManager获取数据的方式,2.x版本使用mapreduce_shuffle
,3.x版本使用mapreduce_stream
1 2 3 4 5 6 7 8 9
| <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop01</value> </property>
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
|
配置 slaves 文件
编辑配置文件
1
| vim hadoop/etc/hadoop/slaves
|
修改配置文件
- 指定Hadoop集群中的所有成员地址,如果
/etc/hosts
中指定了地址名,可以直接配置
- 群启的时候会读取这里的地址
首次启动格式化
MacOS
1
| /usr/local/Cellar/hadoop/3.2.1/libexec/bin/hdfs namenode -format
|
Linux
1
| hadoop/bin/hdfs namenode -format
|
直接群启
- 一次性启动
NameNode
、SecondaryNameNode
、DataNode
、NodeManager
、ResourceManager
MacOS
1
| sh /usr/local/Cellar/hadoop/3.2.1/libexec/sbin/start-all.sh
|
Linux
1
| sh hadoop/sbin/start-all.sh
|
更多启动方式
完成



参考文献
哔哩哔哩——zhvsvd
简书——张照博