Hadoop

Hadoop安装

搭建环境

Ubuntu 16.04 64位 作为系统环境(Ubuntu 12.04,Ubuntu16.04 也行,32位、64位均可)
Hadoop2.6.0(2.7.1)

创建hadoop用户

按 Ctrl + Alt + T,即可进入命令行模式。

查看是否已经创建过hadoop用户
已创建用户

通过下面的命令查看是否有hadoop用户

cat /etc/passwd

image.png

未创建Hadoop用户

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

创建hadoop用户:
sudo useradd -m hadoop -s /bin/bash

为hadoop用户设置密码:
sudo passwd hadoop

hadoop用户增加管理员权限:
sudo adduser hadoop sudo

sudo命令: 安装过程中中会大量使用到sudo命令。sudo是ubuntu中一种权限管理机制,管理员可以授权给一些普通用户去执行一些需要root权限执行的操作,使用sudo命令需要输入密码。

apt工具更新

apt介绍

apt是一个命令行实用程序,用于在UbuntuDebian和相关Linux发行版上安装、更新、删除和管理deb软件包。 用Linux术语来说,包是类似于Windows上的程序的应用程序,库,工具。
apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
apt 命令执行需要超级管理员权限(root)。

apt工具更新
sudo apt-get update

image.png

出现上图字样即apt工具安装成功

vim安装
什么是vim

Linux中vim是从vi发展出来的一个文本编辑器,该编辑器具有代码补完、编译及错误跳转等方便编程的功能,并且在程序员中被广泛使用,而vi是老式的文本处理器,不过功能也已经很齐全了。

安装vim
sudo apt-get install vim

vim的常用模式有分为命令模式,插入模式,可视模式,正常模式。

  1. 正常模式
    正常模式主要用来浏览文本内容。一开始打开vim都是正常模式。在任何模式下按下Esc键就可以返回正常模式。
  2. 插入编辑模式 插入编辑模式则用来向文本中添加内容的。在正常模式下,输入i键即可进入插入编辑模式。
  3. 退出vim 如果有利用vim修改任何的文本,一定要记得保存。Esc键退回到正常模式中,然后输入:wq即可保存文本并退出vim。
无法获得锁

image.png

当出现此问题时,运行下列命令。

sudo rm /var/lib/dpkg/lock-frontend

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

什么是SSH

linux中ssh是“Secure Shell”的缩写,是建立在应用层和传输层基础上的一种安全协议,用于计算机之间的加密登录;ssh既可以远程联机服务器,又可以借助ssh协议来传输数据,提供更安全的SFTP服务。
ssh命令用于远程登录上Linux主机。

安装SSH

集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:

sudo apt-get install openssh-server

image.png

出现上图的情形即安装成功

  1. 安装后,可以使用如下命令登陆本机 :
ssh localhost
  1. 此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了

image.png

  1. 设置SSH无密码登录比较方便
exit                           # 退出刚才的 ssh localhost
cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys  # 加入授权

ssh-keygen -t rsa
输入命令后一直按回车即可,知道出现下图所示。

image.png

cat ./id_rsa.pub >> ./authorized_keys
把当前文件的id_rsa.pub 追加到 ./authorized_keys。

验证登录

image.png

不需要再次输入密码即成功。

安装JDK

把JDK1.8的安装包jdk-8u162-linux-x64.tar.gz 准备好在任意位置都可以。

cd /usr/lib
sudo mkdir jvm 
#创建/usr/lib/jvm目录用来存放JDK文件

cd 桌面
#进入用户的linux压缩包所在的位置

sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm 
#把JDK文件解压到/usr/lib/jvm目录下
配置环境变量
cd ~
vim ~/.bashrc
使用vim编辑器

进入后点击i 可编辑文字,输入下方文字后按 Esc键,英文 : ,wq保存并推出

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
配置生效

输入下面的命令,即可使配置生效

source ~/.bashrc

输入 java -version 出现下图情况则说明配置成功。

image.png

安装Hadoop3.1.3

将Hadoop压缩包解压到/usr/local中。安装包可以从Windows拖拽到Linux 桌面中

cd 桌面

sudo tar -zxf ./hadoop-3.1.3.tar.gz -C /usr/local

image.png

修改文件夹名称,并且修改文件权限
sudo mv ./hadoop-3.1.3/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop # 修改文件权限
检查Hadoop是否可用
cd /usr/local/hadoop
./bin/hadoop version

出现以下的情形则说明Hadoop可用

image.png

Hadoop单机配置(非分布式)

Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。

运行Hadoop例子

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/*          # 查看运行结果

image.png

Hadoop伪分布式配置

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xmlhdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: 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>

同样的,修改配置文件 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 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。
此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。

配置完成后,执行 NameNode 的格式化:

cd /usr/local/hadoop
./bin/hdfs namenode -format

image.png

成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。 如果这里出现了错误,那么就极有可能前边的JDK环境变量配置出现了问题。

接着开启 NameNode 和 DataNode 守护进程。

cd /usr/local/hadoop
./sbin/start-dfs.sh   #start-dfs.sh是个完整的可执行文件,中间没有空格
错误

image.png

我这里是出现了一个问题没有找到JAVA_HOME,环境变量配置成功了,

在JDK配置无错的情况下,可能是没有配置hadoop-env.sh文件。这个文件里写的是hadoop的环境变量,主要修改hadoop的JAVA_HOME路径。

切到 [hadoop]/etc/hadoop目录
执行:vim hadoop-env.sh
修改java_home路径和hadoop_conf_dir路径为具体的安装路径
例如:
export JAVA_HOME=/usr/jdk1.8.0_65
export HADOOP_CONF_DIR=/usr/hadoop-3.1.3/etc/hadoop

如果启动 Hadoop 时遇到输出非常多“ssh: Could not resolve hostname xxx”的异常情况,如下图所示:
image.png
这个并不是 ssh 的问题,可通过设置 Hadoop 环境变量来解决。首先按键盘的 ctrl + c 中断启动,然后在 ~/.bashrc 中,增加如下两行内容(设置过程与 JAVA_HOME 变量一样,其中 HADOOP_HOME 为 Hadoop 的安装目录):

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

退出后 source ~/.bashrc 使配置生效。

检验是否启动成功

通过命令 jps 来判断是否成功启动 。

image.png
出现这种情况即启动成功。

使用Web访问安装

使用命令:

cd /usr/local/hadoop
./sbin/start-dfs.sh   

使用虚拟机浏览器访问:http://localhost:9870。(hadoop3.1.3的端口为9870)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值