hadoop3.2.1集群搭建

hadoop目前最新版本为3.2.1,本教程将使用hadoop最新版本搭建大数据集群,并通过yarn运行wordcount的mapreduce程序

软件和服务器准备工作

软件准备

  1. hadoop 3,2,1。 下载地址点击下载
  2. java8。 下载地址 点击下载 (经本人测试jdk最新版本 java14 运行hadoop集群会报错,所以并不是jdk版本越高越好) 

服务器准备

hadoop服务器
ip(主机名) 外网ip 功能
172.19.86.64(host01) 139.196.56.185

namenode

resourcemanager

172.19.86.65(host02) 47.100.167.206

datanode

nodemanager

172.19.86.63(host03) 139.196.193.96

datanode

nodemanager

 

服务器环境配置

  1. 将jdk和hadoop放置到3台服务器的 /home/software 目录,并解压到当前目录

  2. 在3台服务器上配置jdk环境变量,JAVA_HOME=/home/software/jdk1.8.0_202

  3. 在3台服务器上配置 /etc/hosts 文件,使3台服务器能够通过hostname互相ping通

  4. 在3台服务器上生成ssh密钥对,并相互拷贝公钥文件追加到 ~/.ssh/authorized_keys 文件中,检测是否能够ssh免密钥互通

搭建hdfs文件系统

3台服务器上修改hadoop-env.sh 文件,路径为 /home/software/hadoop-3.2.1/etc/hadoop/hadoop-env.sh ,内容为:

export JAVA_HOME=/home/software/jdk1.8.0_202
export HADOOP_HOME=/home/software/hadoop-3.2.1

3台服务器上新建data目录,命令为 

mkdir -p /home/software/hadoop-3.2.1/data/tmp
mkdir -p /home/software/hadoop-3.2.1/data/namenode
mkdir -p /home/software/hadoop-3.2.1/data/datanode

3台服务器上修改core-site.xml 文件,路径为 /home/software/hadoop-3.2.1/etc/hadoop/core-site.xml,内容为:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://host01:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/software/hadoop-3.2.1/data/tmp</value>
    </property>
</configuration>

3台服务器上hdfs-site.xml,路径为 /home/software/hadoop-3.2.1/etc/hadoop/hdfs-site.xml,内容为:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/software/hadoop-3.2.1/data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/software/hadoop-3.2.1/data/datanode</value>
    </property>
</configuration>

3台服务器上修改workers文件,路径为:/home/software/hadoop-3.2.1/etc/hadoop/workers ,内容为:

host01
host02
host03

 在host01上格式化文件系统,命令为: /home/software/hadoop-3.2.1/bin/hdfs namenode -format

在host01上启动namenode,命令为 sbin/hadoop-daemon.sh start namenode

在3台服务器上启动datanode,命令为 sbin/hadoop-daemon.sh start datanode

这样我们就可以在浏览器通过 http://139.196.56.185:9870/ 地址访问我们的hdfs文件系统了

在host01上创建文件夹 bin/hdfs dfs -mkdir -p /user/root/wordcount/input

配置yarn

3台服务器上配置mapred-site.xml文件,路径为 /home/software/hadoop-3.2.1/etc/hadoop/mapred-site.xml, 内容为

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>

3台服务器上配置yarn-site.xml.xml文件,路径为  /home/software/hadoop-3.2.1/etc/hadoop/yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>host01</value>
    </property>
</configuration>

在host01上启动resourcemanager,命令为  sbin/yarn-daemon.sh start resourcemanager

在3台服务器上启动nodemanager,命令为 sbin/yarn-daemon.sh start nodemanager

http://139.196.56.185:8088/cluster,访问yarn的web页面 

在yarn上运行wordcount程序

  1. bin/hdfs dfs -put input.txt wordcount/input 放置文件到hdfs文件系统中
  2. bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount wordcount/input wordcount/output 在yarn上运行mapreduce的wordcount程序
  3. bin/hdfs dfs -cat wordcount/output/part* 查看wordcount运行的结果

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章