当前位置:   article > 正文

Hadoop安装与配置_hadoop-3.2.4安装配置

hadoop-3.2.4安装配置

前言

有错误请指正,海涵。
使用的环境:Ubuntu18.04.1 LTS+Windows双系统(故而不是安装在虚拟机上的)
Hadoop3.2.0(因为选择了当下比较新的版本所以也是有些东西和之前不同)
JDK1.8.0_201

下载JDK

进Oracle官网下载JDK
在这里插入图片描述
接受协议后选择自己的系统下载jdk,我是64位所以就选64位了。
下载后解压到/usr/lib下

tar -zxvf jdk-8u181-linux-x64.tar.gz  -C /usr/lib    #解压文件并复制到 /usr/lib
  • 1

配置java环境变量

解压jdk并不够,还需要让系统知道你安装了jdk
配置环境变量的方法有两种,这里我就只说一种。

sudo vim /etc/profile #使用root权限编辑profile,vim是一个文本编辑器,不懂使用vim可以百度一下
  • 1
#在profile文件末尾加上以下代码
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_201     
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$PATH:$JAVA_HOME/bin
  • 1
  • 2
  • 3
  • 4
  • 5

保存以后系统还不知道这些配置,使用source命令更新

source /etc/profile
  • 1

这样java环境就配置好了,可以输入java -version命令看看是否成功,不成功会显示找不到命令。

下载Hadoop

首先安装Ubuntu,这里就不赘述了。
下载Hadoop3.2.0
进入hadoop官网
在这里插入图片描述
点击Download
在这里插入图片描述
点击3.2.0那一行的binary
在这里插入图片描述
图中所示的链接随便点击一个就可以开始下载了。
我Linux的用户是czq,那么我就在/home/czq下新建一个hadoop文件夹放hadoop文件。
将hadoop文件解压

tar -zxvf hadoop-3.2.0.tar.gz  -C /home/czq/hadoop    #解压文件并复制到/home/czq/hadoop
  • 1

配置Hadoop环境变量

首先配置hadoop环境变量,与配置java环境变量是一样的
编辑profile文件
文件最后修改为

export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export HADOOP_HOME=/home/czq/hadoop/hadoop-3.2.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  • 1
  • 2
  • 3
  • 4
  • 5

修改hostname

修改主机名,原先一般为localhost或者在安装时以及自定义

sudo vim /etc/hostname  #编辑hostname
  • 1

文件中只有一行,是当前主机的名字,改为你想要的名字。我的是Ubuntu01。

修改hosts

hosts文件里面存放的是其他主机的IP和主机名,其实就是告诉计算机,某个机器名对应的id是什么。
比如你现在有另一台主机,主机名为ubuntu02,ip为192.168.1.2,那么你在hosts中加一行

192.168.1.2   hosts
  • 1

修改/hadoop3.2.0/etc/hadoop下的配置文件

以下所有是xml文件的,内容都写在《configuration》里面
第一个hadoop-env .sh

在此文件中,有这么一段备注:

# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!
# export JAVA_HOME=
  • 1
  • 2
  • 3

在此备注的下面一行写入jdk路径,这一段就是告诉Hadoop,java环境配置在那里。

 export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_201
  • 1

建议向上面一样将JAVA_HOME写死,而不要写$JAVA_HOME,不然可能找不到路径。
第二个core-site.xml

<!-- 指定hdfs的文件系统,以及谁是namenode -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://Ubuntu01:9000</value>
    </property>
    <!-- hadoop临时文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/czq/hadoop/hadoop-3.2.0/tmp</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

第三个hdfs-site.xml

 <!-- 指定HDFS副本的数量,我这里暂时设为1,因为我只有一台机子,建议设置为3 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
</property>
<!-- 指定secondary namenode,(uri)host:50090 -->
<property>
         <name>dfs.secondary.http.address</name>
         <value>localhost:50090</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

第四个mapred-site.xml
老版本的可能是mapred-site.xml.template,把名字改成mapred-site.xml

mv mapred-site.xml.template mapred-site.xml
  • 1

加入以下内容

<!-- 指定mapreduce运行在yarn上 -->
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5

第五个yarn-site.xml
在命令行下输入如下命令,并将返回的地址复制。

hadoop classpath
  • 1
<!-- 指定YARN的ResourceManager -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>Ubuntu01</value>
</property>
    <!-- reducer获取数据的方式 ,当前只有mapreduce_shuffle这种方式-->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
 </property>
 <!-- 将 hadoop classpath输出的信息粘贴到value中,指定yarn需要的classpath,这里和之前的版本不同,之前的版本不需要-->
 <property>
        <name>yarn.application.classpath</name>
        <value>/home/czq/hadoop/hadoop-3.2.0/etc/hadoop:/home/czq/hadoop/hadoop-3.2.0/share/hadoop/common/lib/*:/home/czq/hadoop/hadoop-3.2.0/share/hadoop/common/*:/home/czq/hadoop/hadoop-3.2.0/share/hadoop/hdfs:/home/czq/hadoop/hadoop-3.2.0/share/hadoop/hdfs/lib/*:/home/czq/hadoop/hadoop-3.2.0/share/hadoop/hdfs/*:/home/czq/hadoop/hadoop-3.2.0/share/hadoop/mapreduce/lib/*:/home/czq/hadoop/hadoop-3.2.0/share/hadoop/mapreduce/*:/home/czq/hadoop/hadoop-3.2.0/share/hadoop/yarn:/home/czq/hadoop/hadoop-3.2.0/share/hadoop/yarn/lib/*:/home/czq/hadoop/hadoop-3.2.0/share/hadoop/yarn/*</value>
    </property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

第六个workers
以前的版本不叫座workers,叫做slaves
一个翻译是工作者,一个是奴隶。可能官方觉得不好听就改了。
其实就是指定datanode有那些
比如你有三个机子,ubuntu01是namenode,ubuntu02和ubuntu03是datanode,那么,文件内容是这样的:

ubuntu02
ubuntu03
  • 1
  • 2

关闭防火墙

不关防火墙,没办法通讯。其他教程都是这样教的,我也不知道是不是一定要这样,比较反感。

sudo ufw status #查看防火墙状态
sudo ufw disable #关闭防火墙
  • 1
  • 2

安装SSH

ssh用于远程连接
输入以下命令安装ssh

sudo apt-get install openssh-server
  • 1

可以试一下装好了没有

ssh localhost
  • 1

配置SSH免密码远程登录

现在的Hadoop版本好像默认是免密登录,不配置会报错。(好像,因为我报错了)
ssh有两种方式登录,一种是输入密码,还有一种就是配置密钥。
具体原理就不赘述了,感兴趣就去百度一下。
大致步骤是这样的:
1.生成公钥和私钥。

#生成密钥,并存在~/.ssh里面
ssh-keygen -t rsa
#输入后疯狂回车,一切默认,不要输入密码,不然就白作了。
  • 1
  • 2
  • 3

2.把公钥发送给需要远程登录的主机
方法1:

ssh-copy-id -i Ubuntu1
  • 1

方法2:

#进入~/.ssh,将id_rsa.pub发送给远程主机
scp id_rsa.pub ubuntu02:/home/czq/
  • 1
  • 2

远程主机将公钥加入信任列表

将id_rsa.pub加入/.ssh文件夹下的authorized_keys文件中。
因为一开始authorized_keys这个文件是没有的,所以我们要自己创建。

touch authorized_keys  #创建authorized_keys
chmod 600 authorized_keys  #修改文件权限
cat /home/czq/id_rsa.pub >> authorized_keys #将id_rsa.pub文件内容追加到authorized_keys
cd /home/czq #进入 /home/czq
rm id_rsa.pub #删除在个文件,因为已经不用了。
  • 1
  • 2
  • 3
  • 4
  • 5

格式化Hadoop

需要注意的是:格式化会在hadoop根目录创建文件夹,所以需要写权限。
所以你可以给文件夹加权限,或者用root权限

hadoop namenode -format
  • 1

运行Hadoop

start-dfs.sh  #运行HDFS
start-yarn.sh #运行yarn
jps #查看Hadoop进程
  • 1
  • 2
  • 3

查看集群管理界面

一个是localhost:9870,需要注意的是,老版本的端口号是50070,而不是9870
在这里插入图片描述

还有一个管理mapreduce的,localhost:8088
在这里插入图片描述

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/634370
推荐阅读
相关标签
  

闽ICP备14008679号