1. 环境说明

搭建在vmware workstation上的虚拟机

主机名:node2

IP:10.0.0.53(在 /etc/hosts 中添加主机和ip的映射关系)

软件版本信息:ubuntu 18.04,jdk 1.8,Hadoop 3.2.2

2. 前置配置内容

1)关闭防火墙

sudo ufw status    # 检查防火墙状态
sudo ufw disable    # 停止防火墙

2)安装启动sshd

ubuntu18.04 在普通安装方式下,已经安装了ssh客户端,此处安装服务端即可

sudo apt install openssh-server
sudo systemctl status sshd    # 检查sshd启动配置

3)配置ssh无密码登录

ssh-keygen -t rsa    # 生成密钥对
ssh-copy-id -i ~/.ssh/id.rsa.pub node2     # 追加公钥

执行完成后就在~/.ssh/authorized_keys中添加了认证信息,再次连接时无需密码

4)配置jdk

jdk下载完成后,解压并制作软链接,配置相关的环境变量完成java基础环境安装。

vim ~/.bashrc    # 添加如下变量信息
export JAVA_HOME=/home/[USER]/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

source ~/.bashrc
java -version    # 检查安装配置


3. 安装hadoop

下载hadoop软件压缩包,解压并制作软链接,此处安装位置为/home/[USER]/hadoop。

sudo chown -R [USER]:[USER] /home/[USER]/hadoop    # 修改hadoop属主属组
/home/[USER]/hadoop/bin/hadoop version    # 简单验证hadoop执行

配置hadoop相关的环境变量

vim ~/.bashrc        # 添加如下变量信息
export HADOOP_HOME=/home/[USER]/hadoop
export PATH=$PATH:$HADOOP_HOME/bin/:$HADOOP_HOME/sbin

配置$HADOOP_HOME/etc/hadoop/下的hadoop-env.sh文件

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh    # 修改其中的JAVA_HOME如下信息
export JAVA_HOME=/home/[USER]/jdk

4. hadoop伪分布式配置

hadoop在单节点上运行没有实际意义的分布式结构,该节点同时作为NameNode和DataNode,使用HDFS分布式文件系统进行存储。配置过程需要修改$HADOOP_HOME/etc/hadoop下的两个基本配置文件core-site.xml和hdfs-site.xml

配置core-site.xml文件内容

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node2:8020</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/[USER]/hadoop/tmp</value>
    </property>
</configuration>

配置hdfs-site.xml文件内容

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

配置完成后,进行NameNode格式化操作

$HADOOP_HOME/bin/hdfs namenode -format

格式化成功后,启动分布式文件系统

$HADOOP_HOME/sbin/start-dfs.sh    # 运行过程中的警告信息可以忽略,错误信息需要分析处理

启动成功后,使用jps列出本机系统上插装的Java虚拟机,可以看到DataNode,NameNode都已经启起来了

hadoop伪分布式安装配置_hadoop



启动完成后,通过web端工具能够查看相关信息,进行相应的文件系统操作,这里的控制台地址为:http://10.0.0.53:9870/

hadoop伪分布式安装配置_hadoop_02

5. 执行mapreduce实例

运行wordcount的mapreduce任务,验证dfs的文件存取正常

1)在hdfs上创建input目录

hdfs dfs -mkdir /input

2)准备input的文件,将本地文件系统中作为input的文件上传

hdfs dfs -put [PATH]/input/* /input    # 上传至/input
hdfs dfs -ls /input    # 查看hdfs下/input中的内容

3)执行wordcount

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /input /output

hadoop伪分布式安装配置_hadoop_03






4)wordcount正确结束,查看输出的文件,已经得到了次数统计的结果

hdfs dfs -ls /output
或
控制台中使用文件系统浏览器查看

hadoop伪分布式安装配置_mapreduce_04