Ubuntu16 安装Hadoop 3.2.0 记录【全网最详细,最全,多图】

无道 2019-10-16 0 条评论 教程相关 阅读722 手机阅读

这学期有相关课程,记录下相关步骤,以后也方便点。

老师说用Ubuntu16稍微好点,那这里就用Ubuntu16.04 LTS。

然后我们这里安装的是伪分布式!

具体配置:

Vmware 15
Ubuntu16.04 LTS 桌面版
Jdk 8

都是tar包,自行去官网下载即可:

截图-1570669278

ssh服务

我想使用Xshell连接Vm里面的虚拟机,所以先ifconfig查询IP,通过Xshell登录。

截图-1571025937

截图-1571026028

然后其他操作请看我另一篇文章:https://www.misiyu.cn/article/117.html

其实这一步不是必须,可以直接在Vmware操作终端即可,但是我个人觉得里面操作很不方便,所以还是要提到外面用Xshell连接操作。

你要在Ubuntu系统中终端里操作命令,请忽略这一步骤。

创建hadoop用户

这一步没搞明白这么弄的目的是什么,今天上课问一下老师。

创建名为hadoop的用户

sudo useradd -m hadoop -s /bin/bash

创建用户hadoop的密码:

sudo passwd hadoop

截图-1571195093

叫你输入hadoop用户的密码

为hadoop用户增加管理员权限:

sudo adduser hadoop sudo

配置ssh秘钥

生成ssh秘钥

ssh-keygen -t rsa -P ''

截图-1571198158

如果提示命令不存在等,请看我另一篇文章:https://www.misiyu.cn/article/117.html

将钥匙添进无密码验证登录文件:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

截图-1571198441

然后试一下登录:

ssh localhost

输入yes,看看是不是进入了:

截图-1571198507

安装Jdk8

为了将Windows端的jdk8和hadoop的文件传到虚拟机上,我们这里通过安装一个lrzsz的软件来直接在Xshell中上传。

PS:老师讲的是建一个ftp服务,然后通过ftp上传,感觉多此一举。

安装lrzsz

sudo apt install lrzsz

截图-1571192992

安装完成后即可在Xshell终端输入rz,就可打开传输窗口

截图-1571193067

传输中

截图-1571193086

安装vim

我们再安装一个vim,操作文件方便 点,用vi也行。

sudo apt install vim

截图-1571193314

解压jdk

截图-1571193224

我们这里要将jdk-8u221-linux-x64.tar.gz解压到/usr/local/,目前jdk-8u221-linux-x64.tar.gz在我的家目录,当然在哪里不重要,统一将其安装(解压)到/usr/local里面。

之后的hadoop也装到/usr/local

确认目前你所在的目录是在jdk-8u221-linux-x64.tar.gz的目录,那么执行解压命令:

sudo tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local

其中8u221-linux-x64是由你下载的jdk版本决定,不要照抄,根据自己的名称来,可输入jdk按tab键自动补全。

还有就是必须加sudo,因为Ubuntu默认不是root用户,需要加sudo

那么我解压后的jdk目录就是:/usr/local/jdk1.8.0_221,这就是JAVA_HOME目录,下一步我们要配置环境变量。

截图-1571193811

配置JDK环境变量

编辑配置环境变量的文件,用之前的安装的vim,没安装的用vi

sudo vim /etc/profile

截图-1571193919

将一下内容添加到此文件末尾:

#Set Java Environment
JAVA_HOME=/usr/local/jdk1.8.0_221
JRE_HOME=$JAVA_HOME/jre

HADOOP_HOME=/usr/local/hadoop
ECLIPSE_HOME=/usr/local/eclipse

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ECLIPSE_HOME
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME  HADOOP_HOME  ECLIPSE_HOME  PATH  CLASSPATH

其中JAVA_HOME=/usr/local/jdk1.8.0_221后面的/usr/local/jdk1.8.0_221根据你安装的jdk版本来。

以上代码还顺带将hadoop和eclipse的环境变量也写进来了,还没到那一步,不过写进来也无所谓。hadoop我们也要安装进/usr/local里面

截图-1571194260

其余代码就不管了,至于如果你不会vim,不会将以上文件填进去的话,那么可以先去学一下vi(m)如何编辑文件。或者在vmware里面用可视化工具编辑也行。

要是环境变量配置生效,需要重启系统,或者执行以下代码:

source /etc/profile

截图-1571194411

测试是否配置成功,输入javajavac看看效果:

截图-1571194460

截图-1571194474

好了,配置jdk的步骤完成了。这里不止配置了jdk,还有一些前置操作,以后步骤需要用到的。所以长了点。

安装Hadoop

我这里上传jdk包的时候,已经顺带把hadoop的压缩包上传到Ubuntu了,没上传的用rz命令参照上面上传即可。

解压hadoop包

进入到上传包的目录,执行解压命令:

截图-1571194654

sudo tar -zxvf hadoop-3.2.0.tar.gz -C /usr/local

需要注意的事项,参照解压jdk 【你看此篇文章时到hadoop版本目录问题】

解压中

截图-1571194765

默认是hadoop-3.2.0,我们需要重命名为hadoop

cd /usr/local # 进入安装目录
sudo  mv hadoop-3.2.0/ hadoop # 重命名

截图-1571194907

更改hadoop文件夹权限

sudo  chown  -R  hadoop:hadoop  ./hadoop

这一步要求你已经进入/usr/local了,不然以上命令路径没对。

截图-1571195438

这一步还要我们之前创建了hadoop的用户,因为这是更改为hadoop用户

截图-1571195486

检测版本信息

在进行这一步之前,我们还需要在hadoop的配置文件里设置一下JAVA_HOME的值:

cd /usr/local/hadoop/etc/hadoop # 进入hadoop的配置文件目录
sudo vim hadoop-env.sh # 编辑配置文件

截图-1571195822

注:上面截图错了,应该在JAVA_HOME前加个export (注意末尾有个空格)

检测版本信息

cd /usr/local/hadoop
./bin/hadoop veriosn

hadoop veriosn
# 还记得之前我们配置jdk环境变量的时候说的吗,我们顺带配置了hadoop的环境变量(如果你安装到/usr/local/hadoop),那么可以直接运行hadoop命令

WTF,怎么报错了?

kuan@ubuntu:~$ hadoop version
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /usr/local/hadoop/logs/fairscheduler-statedump.log (Permission denied)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(FileOutputStream.java:270)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
    at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
    at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:207)
    at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)

    .......

首先,你没报错的话,说明可能你没有完全按照我的步骤来。

报错了的话,原因很简单,用户不对

我们之前执行了命令sudo chown -R hadoop:hadoop ./hadoop,更换了hadoop文件夹的所属,但我们现在是谁?

截图-1571196816

切换用户即可:

su - hadoop

截图-1571196886

输入hadoop密码,切换用户即可。

再次执行:hadoop version

截图-1571196944

Yes,没有报错。hadoop到此安装完成了,环境变量也配置了。

修改hadoop配置

对于伪分布式安装,我们需要修改core-site.xml和hdfs-site.xml这两个文件。

进入配置文件的目录:

cd /usr/local/hadoop/etc/hadoop

core-site.xml

vim core-site.xml 

添加以下内容:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000/</value>
        <description>默认的HDFS端口,用于NameNode与DataNode之间到的通讯,IP为NameNode的地址</description>
    </property>
<property>
    <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>存放hadoop文件系统依赖的基本配置</description>
    </property>
</configuration>

先把这两行删除,然后整体复制我上面的内容

截图-1571198678

hdfs-site.xml

同样道理

vim ./hdfs-site.xml 

删除默认的<configuration></configuration>

<configuration>
<property>
        <name>dfs.replication</name>
        <value>1</value>
        <description>设置副本数</description>
</property>

<property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/usr/local/hadoop/tmp/dfs/name</value>
   <description>设置存放NameNode的文件路径</description>
</property>

<property>
   <name>dfs.datanode.data.dir</name>
   <value>file:/usr/local/hadoop/tmp/dfs/data</value>
  <description>设置存放DataNode的文件路径</description>
</property>

</configuration>

然后初始化文件系统

hadoop namenode -format

以上命令是配置了环境变量才可以直接使用,不然需要到/usr/local/hadoop/bin目录执行:./hadoop namenode -format

执行结果:

截图-1571199023

看到如上内容,理论上执行成功了。

执行所有服务

cd /usr/local/hadoop/ #进入安装目录
./sbin/start-all.sh # 执行启动命令

截图-1571199287

如上。

输入命令jps查看在运行的进程:

截图-1571199331

有以上6个,说明你的hadoop安装运行都没有问题了。

安装eclipse

这后面的内容就是安装eclipse,和本文章关系不大,而且安装的Ubuntu是可视化界面,安装一个软件也没什么。

可能讲到mapreduce还要在续写,或者新写一篇文章。

待续.......

全文完 [
有帮助?打赏
支付宝打赏
微信打赏
]
修改: 2019-10-29 20:42
这篇文章还没有评论呢~
点击刷新/生成验证码
It's me
昵称:无道
坐标:成都
性别:
一个人,一介学生,一个儿子~ 愿你我都被世界温暖以待
迷思爱 公众号

新建了个公众号,会不定期分享一些小玩意,有提升效率的办公软件、有一些黑科技的软件、或教程等等。

爷~,要不关注下~~