Hadoop的安装与配置

创建hadoop用户

 创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。

sudo useradd -m hadoop -s /bin/bash

 为 hadoop 用户增加管理员权限,方便部署

sudo passwd hadoop

  最后注销当前用户(点击屏幕右上角的齿轮,选择注销),返回登陆界面。在登陆界面中选择刚创建的 hadoop 用户进行登陆。

sudo adduser hadoop sudo

更新apt

用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了

sudo apt-get update

后续需要更改一些配置文件,安装一下vim

sudo apt-get install vim

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

 安装 SSH server

sudo apt-get install openssh-server

 使用如下命令登陆本机

ssh localhost

首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中

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

此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了

安装Java环境

全部资料都放在下面的链接中了

链接:https://pan.baidu.com/s/1k86b13HvuB8wAF2b7iCzBA?pwd=ptr0 
提取码:ptr0

请把压缩格式的文件jdk-8u162-linux-x64.tar.gz下载到本地电脑

通过VMware tools的共享文档或者Xftp软件将压缩包放进虚拟机中,假设保存在“/home/lin/Downloads/”目录下,解压。

cd /home/lin/Downloads
sudo tar -zxvf jdk-8u162-linux-x64.tar.gz -C /usr/lib #解压并将解压后的文件放进。usr/lib中
cd /usr/lib
sudo mv jdk1.8.0_162 jdk #修改文件名

设置环境变量

cd ~
vim ~/.bashrc

 添加以下内容:

export JAVA_HOME=/usr/lib/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

 保存,退出后更新.bashrc配置

source ~/.bashrc

查看安装是否成功

java -version

出现下图,说明成功

java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

安装 Hadoop3.1.3

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

 Hadoop 解压后即可使用。

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

Hadoop单机配置

Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。

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>

 修改配置文件 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>

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

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

 成功的话,会看到 "successfully formatted" 的提示。

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

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

如果启动 Hadoop 时遇到输出非常多“ssh: Could not resolve hostname xxx”的异常情况

在 hadoop-env.sh中,增加如下两行内容:

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

在~/.bashrc,修改path

export PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH

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

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