在安装hadoop 3.2.2之前,必须先安装java环境,请各位自行去安装官网jdk。关闭防火墙,这样安装比较简单。
下载hadoop 3.2.2
去hadoop官方地址下载hadoop 3.2.2(由于限制,无法直接提供链接,请自行通过搜索引擎查找)。
解压tar.gz
把下载好的tar.gz包解压到自己指定的路径:
tar -zxvf hadoop-3.2.2.tar.gz -C /usr/local/hadoop-3.2.2
配置hadoop环境变量
编辑 /etc/profile
文件,加入如下配置:
export HADOOP_HOME=/usr/local/hadoop-3.2.2
export PATH=$PATH:$HADOOP_HOME/bin
使配置生效:
source /etc/profile
配置hadoop-env.sh
编辑 /usr/local/hadoop-3.2.2/etc/hadoop/hadoop-env.sh
文件,找到# The java implementation to use.
的注释,加入以下配置:
export JAVA_HOME=/usr/java/jdk1.8/
配置core-site.xml
编辑 /usr/local/hadoop-3.2.2/etc/hadoop/core-site.xml
文件,在<configuration>
标签内加入如下配置:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:///usr/local/hadoop-3.2.2</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://172.18.111.104:8888</value>
</property>
</configuration>
配置hdfs-site.xml
编辑 /usr/local/hadoop-3.2.2/etc/hadoop/hdfs-site.xml
文件,在<configuration>
标签内加入如下配置:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop-3.2.2/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop-3.2.2/tmp/dfs/data</value>
</property>
<!-- 配置web界面ip跟端口 -->
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
</configuration>
注意:dfs.http.address
这个属性必须配置,否则在浏览器通过http://主机ip:50070访问不了。
设置SSH免密码登录
创建ssh key:
ssh-keygen -t rsa
接下来按回车默认设置即可。
再执行以下命令:
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
验证是否可以免密登录:
ssh localhost
启动与停止
第一次启动hdfs需要格式化:
cd /usr/local/hadoop-3.2.2
./bin/hdfs namenode -format
启动hdfs:
./sbin/start-dfs.sh
停止hdfs:
./sbin/stop-dfs.sh
备注:如果启动出现“but there is no HDFS_NAMENODE_USER defined. Aborting operation.”错误,解决方法如下:
-
在Hadoop安装目录下找到sbin文件夹。
-
在里面修改四个文件:
- 对于
start-dfs.sh
和stop-dfs.sh
文件,添加下列参数:
#!/usr/bin/env bash HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
- 对于
start-yarn.sh
和stop-yarn.sh
文件,添加下列参数:
#!/usr/bin/env bash YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
- 对于
-
最后再启动一次,就解决问题了:
./sbin/start-dfs.sh
验证:在浏览器输入:http://主机IP:50070
简单的验证hadoop命令:
hadoop fs -mkdir /test
在浏览器查看,出现以下页面,就说明成功:
配置mapred-site.xml
编辑 /usr/local/hadoop-3.2.2/etc/hadoop/mapred-site.xml
文件,在<configuration>
标签内加入如下配置:
<configuration>
<!-- 通知框架MR使用YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置yarn-site.xml
编辑 /usr/local/hadoop-3.2.2/etc/hadoop/yarn-site.xml
文件,在<configuration>
标签内加入如下配置:
<configuration>
<!-- reducer取数据的方式是mapreduce_shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
yarn启动与停止
启动:
cd /usr/local/hadoop-3.2.2
./sbin/start-yarn.sh
停止:
./sbin/stop-yarn.sh
在浏览器查看:http://主机ip:8088
使用jps命令验证:
到此,hadoop单机模式就配置成功了!