美文网首页
Hadoop的安装(Ubuntu)

Hadoop的安装(Ubuntu)

作者: 娜弯舟 | 来源:发表于2019-11-07 16:43 被阅读0次

如果你安装 Ubuntu 的时候不是用的 “hadoop” 用户,那么需要增加一个名为 hadoop 的用户。

一、创建Hadoop用户

1.创建Hadoop用户,并使用并使用 /bin/bash 作为 shell
$ sudo useradd -m hadoop -s /bin/bash
2.为Hadoop用户设置密码
$ sudo passwd hadoop
3.增加Hadoop用户管理权限,方便部署
$ sudo adduser hadoop sudo
4.切换当前用户为Hadoop
$ su - hadoop

二、更新apt

更新apt,后续我们需要使用apt安装软件
$ sudo apt-get update
安装vim
$ sudo apt-get install vim

三、安装SSH、配置SSH无密码登陆

集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server
$ sudo apt-get install openssh-server
登陆SSH,第一次登陆输入yes,然后按提示输入密码,这样就登陆到本机了
$ ssh localhost
为了方便,配置SSH无密码登录,首先退出SSH

   $  exit                           # 退出刚才的 ssh localhost
   $  cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
   $  ssh-keygen -t rsa              # 会有提示,都按回车就可以
   $  cat ./id_rsa.pub >> ./authorized_keys  # 加入授权

此时用ssh localhost不用密码就能登录

四、安装Java环境

有多种方式安装JDK,我采取手动安装
1.在Oracle官方网站的dowmloads下载JDK(https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html),下载在电脑中Downloads下
2.在Linux命令行界面中,执行如下Shell命令(注意:当前登录用户名是hadoop)

    cd /usr/lib
    sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
    cd ~ #进入hadoop用户的主目录
    cd Downloads  #注意区分大小写字母,刚才已经通过FTP软件把JDK安装包jdk-8u231-linux-x64.tar.gz上传到该目录下
    sudo tar -zxvf ./jdk-8u231-linux-x64.tar.gz -C /usr/lib/jvm  #把JDK文件解压到/usr/lib/jvm目录下

JDK文件解压缩以后,可以执行如下命令到/usr/lib/jvm目录查看一下

    cd /usr/lib/jvm
    ls

可以看到,在/usr/lib/jvm目录下有个jdk1.8.0_231目录
3.设置环境变量

    cd ~
    vim ~/.bashrc

使用vim打开了hadoop这个用户的环境变量配置文件,在文件中添加:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_231
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

保存.bashrc文件并退出vim编辑器.
4.使.bashrc文件的配置立即生效,然后查看是否安装成功

source ~/.bashrc
java -version

安装成功反馈

hadoop@duduna-XPS-15-9570:~$ java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)

五、Hadoop安装

在Hadoop官网下载Hadoop安装包hadoop-2.10.0.tar.gz,下载完之后,将 Hadoop 安装至 /usr/local/ 中

sudo tar -zxf ~/Downloads/hadoop-2.10.0.tar.gz -C /usr/local   #解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.10.0/ ./hadoop   # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop       # 修改文件权限

Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息

cd /usr/local/hadoop
./bin/hadoop version

成功显示界面

hadoop@duduna-XPS-15-9570:/usr/local/hadoop$ ./bin/hadoop version
Hadoop 2.10.0
Subversion ssh://git.corp.linkedin.com:29418/hadoop/hadoop.git -r e2f1f118e465e787d8567dfa6e2f3b72a0eb9194
Compiled by jhung on 2019-10-22T19:10Z
Compiled with protoc 2.5.0
From source with checksum 7b2d8877c5ce8c9a2cca5c7e81aa4026
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.10.0.jar

六、Hadoop单机配置(非分布式)

Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。
现在可以执行Hadoop的例子来感受一下Hadoop运行,Hadoop附带了丰富的例子(包括 wordcount、terasort、join、grep 等。),以grep为例,来运行一下。

    $ cd /usr/local/hadoop
    $ mkdir ./input
    $ cp ./etc/hadoop/*.xml ./input   # 将配置文件作为输入文件
    $ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
    $ cat ./output/*          # 查看运行结果

执行成功后的运行结果:

执行结果
注意,Hadoop 默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将 ./output 删除。
$ rm -r ./output

七、Hadoop为分布式配置

伪分布式需要修改两个配置文件: core-site.xml 和 hdfs-site.xml

1、修改配置文件core-site.xml :

$ gedit ./etc/hadoop/core-site.xml
修改前:

    <configuration>
    </configuration>

修改后:

<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:

$ gedit ./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>

配置文件说明:
Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。

此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。

3、配置完成后进行NameNode格式化

$ ./bin/hdfs namenode -format

成功显示
(注意:如果在这一步时提示 Error: JAVA_HOME is not set and could not be found. 的错误,则说明之前设置 JAVA_HOME 环境变量那边就没设置好,请按教程先设置好 JAVA_HOME 变量,否则后面的过程都是进行不下去的。如果已经按照前面教程在.bashrc文件中设置了JAVA_HOME,还是出现 Error: JAVA_HOME is not set and could not be found. 的错误,那么,请到hadoop的安装目录修改配置文件“/usr/local/hadoop/etc/hadoop/hadoop-env.sh”,在里面找到“export JAVA_HOME=${JAVA_HOME}”这行,然后,把它修改成JAVA安装路径的具体地址,比如,“export JAVA_HOME=/usr/lib/jvm/default-java”,然后,再次启动Hadoop。)

4、开启 NameNode 和 DataNode 守护进程。

./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
遇到SSH提示,输入yes即可
确认是否成功启动:
$ jps

上传成功显示
这四项缺一不可,检查没有启动的原因,如果是NameNode和DataNode,一般是配置不成功,检查配置;如果是SecondaryNameNode则是启动不成功,重新启动。

5、启动成功

成功启动后,可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

访问web

6、如果要关闭Hadoop,则

$ ./sbin/stop-dfs.sh
再次打开Hadoop
$ ./sbin/start-dfs.sh

相关文章

网友评论

      本文标题:Hadoop的安装(Ubuntu)

      本文链接:https://www.haomeiwen.com/subject/apuvbctx.html