这篇文章主要介绍Ubuntu 系统下Hadoop的安装与伪分布式环境搭建
一、前期准备
你需要一个装有Linux操作系统的虚拟机。
1、虚拟机:Vmware WorkStation 14 Pro
软件来源:百度下载
2、Linux操作系统:我选的是ubuntu-17.10-desktop-amd64,大家可以根据自己的需求在官网下载:https://www.ubuntu.com/download
安装教程:https://jingyan.baidu.com/article/3f16e003c0b5102591c1030d.html(以Ubuntu为例)
二、环境准备
1、创建hadoop用户
切换到root用户
sudo root
增加一个hadoop用户
sudo useradd -m hadoop -s /bin/bash
给Hadoop用户添加管理员权限
sudo adduser hadoop sudo
更改hadoop用户密码(根据自己的意愿,可改可不改)
sudo passwd hadoop
![](https://i-blog.csdnimg.cn/blog_migrate/2e1ac4ac87895d8f9c023685deccf960.png)
切换到hadoop用户,密码为之前更改的
su hadoop
![](https://i-blog.csdnimg.cn/blog_migrate/a188ad99443bc57924720ec2d5c4a5f8.png)
2、更新apt
后续需要使用apt进行软件的安装,在这里先更新一下apt
sudo apt-get update
3、安装vim
sudo apt-get install vim
可能会出现如下错误
解决方法:
sudo rm /var/cachr/apt/archives/lock
sudo rm /var/lib/dpkg/lock
重新安装vim,遇到命令行的 [ yes/no] 选项,直接yes进行安装。
4、安装SSH,配置免密登陆
ubuntu默认安装了SSH client,我们需要安装SSH server
配置免密登陆。(可跳过)一方面,我们通过ssh登陆时比较方便,不需重新输入密码;另一方面,在集群方式工作时,主机与从机通信过程或从机与从机之间进行文件备份时是需要越过密码验证这一环节的,所以需要提前生成公钥,在集群工作时,可以直接自动登陆。
进入ssh所在目录
cd ~/.ssh
生成密钥对
ssh-keygen -t rsa
将公钥文件加入授权
cat ./id_rsa.pub >> ./authorized_keys
再次登陆SSH不需要输入密码
ssh localhost
5、安装配置JAVA环境
安装jdk(openjdk 1.8.0)
sudo apt-get install openjdk-8-jre openjdk-8-jdk
找到Java安装路径
dpkg -L openjdk-8-jdk | grep '/bin/javac'
利用编辑,配置环境变量
vim ~/.bashrc
在第一行添加如下代码:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 #java安装的绝对路径
退出vim:先按ESC键,:wq为保存退出;:q!为不保存退出
生效环境变量
source ~/.bashrc
检查JDK是否安装成功以及环境变量配置是否正确
java -version #JDK是否安装成功
echo $JAVA_HOME #查看环境变量
$JAVA_HOME/bin/java -version #验证与java -version 输出结果是否一致
配置JAVA环境成功显示如下:
如果在这一步时提示 Error: JAVA_HOME is not set and could not be found. 的错误,则说明之前设置 JAVA_HOME 环境变量那边就没设置好,请按教程先设置好 JAVA_HOME 变量,否则后面的过程都是进行不下去的。
三、安装配置Hadoop
1、hadoop安装包软件下载
下载地址:http://mirrors.cnnic.cn/apache/hadoop/common/
下载stable(稳定版)下面的hadoop-2.x.y.tar.gz 文件都是编译好,我下载的是hadoop-2.9.0.tar.gz
下载方式:可以在Ubuntu自带的火狐浏览器下下载(建议这种方式,下载的安装包默认位置在Downloads里),也可以在本地下载然后将文件拖到虚拟机内(我采用的是这种方式,因为我的火狐浏览器在下载的时候老是崩掉)
2、选择将 Hadoop 安装至 /usr/local/ 中并修改权限
sudo tar -zxf ~/Downloads/hadoop-2.9.0.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/ # 进入usr/local中
sudo mv ./hadoop-2.9.0/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop # 修改文件权限
3、检查hadoop是否安装成功
在hadoop文件所在目录输入下面命令:
./bin/hadoop version
安装成功会显示hadoop的版本,如下图所示:
四、Hadoop伪分布式环境配置
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
1、 修改core-site.xml配置文件
利用vim编辑器进行编辑,命令如下:
vi ./etc/hadoop/core-site.xml
修改为下面配置:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
修改后:
2、 修改hdfs-site.xml配置文件
利用vim编辑器进行编辑,命令如下:
vi ./etc/hadoop/hdfs-site.xml
修改为下面配置:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
修改后:
3、启动Hadoop
hdfs namenode -format
成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示
如果格式化错误,需要检查配置文件配置是否正确,最常见的问题就是配置文件里的拼写错误。
接着开启 NameNode 和 DataNode 守护进程,按提示操作
输入jps命令,查看所有的守护进程是否都正常启动。
4、停止Hadoop
./sbin/stop-dfs.sh
五、总结
易出错点:JAVA环境变量的配置,如果出错后续无法进行。