Hadoop搭建伪分布式必坑指南
简介
本项目使用各工具版本如下:
jdk8
hadoop-2.10.1
ubuntu20.4.3-desktop-amd64
VMWare15 pro
经过作者多次测试 jdk版本和hadoop版本会影响搭建过程,作者仅对以上配置进行测试可以搭建成功,其他版本大同小异。
本文中图片来自作者多次搭建 有些图片上信息可能与文章不符 建议按文章内容来进行操作
搭建指南
本教程只针对于安装好前期环境后,对hadoop伪分布式的安装。由于网络上有大量VMWare虚拟机使用、linux基础、jdk安装等相关教程,在此将直接跳过。
不会请百度!
安装jdk8
可以换源后直接编译安装
sudo apt update
apt install jdk8
配置环境变量
正常配置jdk环境变量,编译安装记得注意多次软连接跳转 要找到实际位置配置环境变量
修改主机名
该步骤非必要环节 可跳过,后面配置文件记得进行修改
修改主机的名称vim /etc/hostname和域名和主机映射对应的关系 vim /etc/hosts,改过之后即生效,自己可以ping一下,我这里ip对应master,比如ping master之后发现可以ping通即可;
下载并解压hadoop
该步骤各种办法都可以 ftp还是wget等等
正常解压就好
tar -zcvf hadoop-*.tar.gz
修改hadoop配置(重点步骤)
先移动到 hadoop的 etc/hadoop文件夹下
1、修改的第一个配置文件,hadoop-env.sh
ubuntu@master:~$ cd /home/ubuntu/hadoop/hadoop-2.7.4/etc/hadoop/
ubuntu@master:~/hadoop/hadoop-2.7.4/etc/hadoop$ vim hadoop-env.sh
修改的内容如下所示:主要修改就是jdk的JAVA_HOME;如果忘记自己jdk的目录可以执行命令echo $JAVA_HOME复制一下结果即可,保存退出。
2、修改第二个配置文件:core-site.xml
修改的内容如下所示:因为是伪分布式,所以节点配置直接配置主机名了
这里有之前没有修改主机名的 记得对下面配置进行修改
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/ubuntu/hadoop/hadoop-2.10.4/tmp</value>
</property>
此处hadoop.tmp.dir记得根据自己文件地址进行配置
建议自行创建一个tmp文件夹
mkdir /home/ubuntu/hadoop/hadoop-2.10.4/tmp
3、修改第三个配置文件:hdfs-site.xml
修改内容如下:
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
4、修改第四个配置文件
首先将mapred-site.xml.template修改为mapred.site.xml,然后就将开始修改配置文件
修改内容如下所示:
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5、修改第五个配置文件:yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6、修改第六个配置文件:slaves
修改的内容即是自己的主机名称
关闭ubuntu防火墙
ufw disable #关闭防火墙
ufw status #查看防火墙状态
ufw enable #开启防火墙
配置hadoop环境变量(非必要)
为了执行hadoop命令方便,同样配置一下hadoop的环境变量;记得根据自己本地情况进行配置 ,配置如下所示
配置保存之后记得source /etc/profile刷新配置
格式化namenode
初始化namenode 此处建议用root权限来做
hadoop namenode -format
报错解决如下:
执行格式化命令后看到successfully表示格式化成功
启动Hadoop
启动脚本均在hadoop的sbin目录下
先启动HDFS
./start-dfs.sh
再启动YARN
./start-yarn.sh
启动过程中输出大概三次yes和密码;输入即可
此处常见报错是由于权限不足导致的无法创建log文件,即使给该用户放到sudo用户组也无效,报错如下:
由于该版本ubuntu禁止root账号直接登录所以每次开机后root账户都被随机生成一个密码。可以修改root密码然后切换成root用户来执行。
sudo passwd root
su root
./start-dfs.sh
./start-yarn.sh
验证
使用jps命令验证;查看有几个进程;分别是启动start-dfs.sh和start-yarn.sh的效果,要只有一个进程为失败
然后即可浏览器进行访问 web服务端口号为50070 hdfs端口号9000