欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hadoop3.2.0详细安装步骤

程序员文章站 2022-07-14 15:17:43
...

一、环境准备

①准备三台虚拟机,查看ip
②先修改主机名(每个节点统一命名规范)
修改/etc/hosts文件:(如下)
172.18.96.1 master
172.18.96.2 slave1
172.18.96.3 slave3

二、永久关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

三、配置ssh免密登录

三台机器都运行:
ssh-****** -t rsa  #一路回车即可
cd 到 /root/.ssh目录下:
创建文件:
touch authorized_keys #生成公钥
将三台机器下的/root/.ssh/id_rsa.pub文件中的内容拷贝到人认证文件authorized_keys中,然后依次分发给两外两台机器。

四、配置jdk1.8

将jdk解压到自定义目录
vim /etc/profile #添加如下信息

export JAVA_HOME=jdk安装目录
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:JAVA_HOME/bin

再保存执行

source /etc/profile

验证

java -version

五、Hadoop环境配置

解压并移动到自定义位置
vim /etc/profile
export HADOOP_HOME=Hadoop的安装目录
export PATH=PAHT:PAHT:HADOOP_HOME/bin
export PATH=PATH:PATH:HADOOP_HOME/sbin
更新资源使生效

source /etc/profile

首先在hadoop-env.sh文件中指定JDK的路径

export JAVA_HOME=jdk安装目录

配置core-site.xml
添加内容如下:

 <configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

配置hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>
    <property><!--namenode持久存储名字空间及事务日志的本地文件系统路径-->
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/dfs/name</value>
     </property>
     <property><!--DataNode存放块数据的本地文件系统路径-->
         <name>dfs.datanode.data.dir</name>
         <value>/usr/local/hadoop/dfs/data</value>
     </property>
     <property><!--数据需要备份的数量,不能大于集群的机器数量,默认为3-->
        <name>dfs.replication</name>
        <value>2</value>
    </property>
</configuration>

配置yarn-site.xml

<configuration>
    <property><!--NodeManager上运行的附属服务,用于运行mapreduce-->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>

配置mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

修改workers文件,删除localhost,并换成

slave1
slave2

修改以下四个文件

$ vim sbin/start-dfs.sh
$ vim sbin/stop-dfs.sh
两处增加以下内容

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

处理2
$ vim sbin/start-yarn.sh
$ vim sbin/stop-yarn.sh
两处增加以下内容

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

将hadoop分发给另外两个结点:
Hadoop安装完成,格式化Namenode

Hadoop namenode -format

启动Hadoop

./start-all.sh

运行hadoop例程中自带的wordcount程序:

1.先在hdfs上创建文件夹:
hadoop fs -mkdir -p /data/input
2.在本地创建一个my_wordcount.txt
touch my_wordcount.txt
3.编辑my_wordcount.txt文件,输入一些字符
nano my_wordcount.txt
比如:
hello world
hello hadoop
hello I will eat lunch
4.把本地的my_wordcount.txt文件上传到云端,由主机进行文件的分布式存储。
hadoop fs -put my_wordcount.txt /data/input

5.查看云端的/data/input文件夹下面是否有该文件
hadoop fs -ls /data/input
6.运行share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar这个java程序,调用wordcount方法。
在hadoop_home的目录下执命令:

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /data/input/ /data/out/my_wordcount

7.查看云端的/data/output/my_wordcount/part-r-00000文件。

hadoop fs -cat /data/out/my_wordcount/part-r-00000

注意:在运行Java程序时,会遇到加载不到类的错误:

解决方法:

在命令行执行hadoop classpath命令,将执行后的内容复制到yarn-site.xml中,如下所示:
Hadoop3.2.0详细安装步骤
将yarn-site.xml在分发给两外两台机器。
先将进程停止:stop-all.sh
在重新开启进程:start-all.sh
在重新执行java程序,就好了。