Hadoop3.2.0详细安装步骤

一、环境准备

①准备三台虚拟机,查看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-keygen -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>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</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中,如下所示:
在这里插入图片描述
将yarn-site.xml在分发给两外两台机器。
先将进程停止:stop-all.sh
在重新开启进程:start-all.sh
在重新执行java程序,就好了。

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