0


hadoop 单节点模式安装

概要

hadoop 单节点模式安装

一、系统安装

1、工具环境

    (1)虚拟机:VMware woekstation 16 Player

        程序:VMware-player-full-16.2.3-19376536.exe

        官网:https://www.vmware.com/

        下载地址:https://www.vmware.com/cn/products/workstation-player.html

        https://customerconnect.vmware.com/cn/downloads/info/slug/desktop_end_user_computing/vmware_workstation_player/16_0

        https://www.vmware.com/cn/try-vmware.html

    (2)操作系统

        操作系统:ubuntu的桌面版

        程序版本:ubuntu-20.04.4-desktop-amd64.iso

        下载地址:https://ubuntu.com/#download

2、系统安装

    (1)使用简易安装

        账号:hadoopsingle

        虚拟机名称:hadoopsingle

        虚拟机位置选择D盘:D:\Virtual Machines\hadoopsingle

        分配磁盘100G,内存8G,cpu8核,选择磁盘为单个磁盘,网络选择桥接模式,其他默认

(2)安装Ubuntu

        使用笔记本安装的,使用无线网络上网,通过虚拟机软件将络连接选择桥接模式,勾选或不勾选复制物理网络连接都可以;

        激活root账号并设置密码,sudo  passwd  root ,输入root密码即可;

        更新所有软件

        apt update

        apt upgrade

        如何在VMware虚拟机的Ubuntu下实现与windows系统的文件(文字)互相复制粘贴

        1.sudo apt autoremove open-vm-tools

        2.sudo apt install open-vm-tools-desktop

        3.重启系统即可

        若复制失效或者报错,可使用以下办法解决:

        1.apt -f install

        2.reboot

        配置windows主机和ubuntu虚拟机文件通过ftp传输

        安装查看虚拟机IP程序

        sudo apt install net-tools

        查看IP

        ifconfig -a

        查看ftp服务

        ps -ef|grep ftp

        安装ftp服务

        sudo apt install vsftpd

        查看ftp版本

        vsftpd -version

        修改vsftpd.conf配置文件

        安装vim编辑器

        sudo apt install vim

        sudo vim  /etc/vsftpd.conf

        去掉如下两个内容的注释通常在28和31行

        local_enable=YES

        write_enable=YES

        重启ftp服务

        sudo /etc/init.d/vsftpd restart

        windows安装和配置FileZilla

        FileZilla 客户端下载和安装

        FileZilla工具可以去官网下载即可,https://www.filezilla.cn/download

        安装配置即可

        FileZilla或者SecureCRT连接虚拟机过慢的解决方法

        问题原因:

        当我们更换网络环境时,可能会发现终端工具连接Linux虚拟机的速度变得很慢,这是因为ssh的服务端在连接时会自动检测dns环境是否一致导致的

        解决方案

        我们把它修改为不检测

        修改文件位置:vim /etc/ssh/sshd_config

        把

        #UseDNS yes

        修改为

        UseDNS no

        然后,重启ssh服务

        systemctl restart sshd

        修改国外apt更新国外镜像源为国内镜像源

        到/etc/apt下面更改sources.list更换国外镜像为国内镜像,是将us的地址换为cn;

        cd /etc/apt

        ls -l

        cat sources.list

        cp sources.list sources.list.bak

        vim sources.list

        将us的地址换成cn的地址(系统22版默认安装已换)

        更新软件列表

        sudo apt update

        更新软件

        sudo apt upgrade

        查看系统版本

        sudo lsb_release -a

二、hadoop安装前提

1、需要的软件

    (1)jdk

        3.3.3对应jdk目前支持的版本为java8或Java11,编译只能是Java8,所以安装java8;

        链接地址为:https://www.oracle.com/java/technologies/downloads/

        java8下载地址为:https://www.oracle.com/java/technologies/downloads/#java8-linux

        对应版本地址:https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/8u341-b10/424b9da4b48848379167015dcc250d8d/jdk-8u341-linux-x64.tar.gz

        #sudo apt install openjdk-8-jre-headless   # version 8u312-b07-0ubuntu1~20.04

        #apt install openjdk-8-jdk-headless   # version 8u342-b07-0ubuntu1~20.04

        #可以使用ubuntu推荐自带的java8

    (2)hadoop

            目前安装的版本为3.3.3;

            链接地址为:https://dlcdn.apache.org/hadoop/common/hadoop-3.3.3/hadoop-3.3.3.tar.gz

2、配置

    (1)ssh免密登录

        查看是否安装ssh

        rpm  -qa  |  grep  ssh

        sudo apt install rpm

        查询ssh安装路径

        which ssh

        usr/bin/ssh

        查询pdsh安装路径

        which pdsh

        #卸载程序和所有配置文件。在终端中输入以下命令,把替换成你希望完全移除的程序:

        #sudo apt --purge remove pdsh

        系统默认没有安装pdsh

        安装SSH,配置SSH无密码登录

        sudo apt install openssh-server

        安装ssh

        apt install ssh

        安装pdsh

        apt install pdsh

        查询ssh安装路径

        which ssh

        usr/bin/ssh

        因为 ssh 默认禁止 root 用户访问,需要修改 sshd_config 文件中的 PermitRootLogin 数据为 yes;

        vim /etc/ssh/sshd_config

        找到:

        # Authentication:

        #LoginGraceTime 2m

        #PermitRootLogin prohibit-password

        修改为:

        PermitRootLogin yes

        再重启sshd服务 ,重启命令:systemctl restart sshd.service

        进入 ~/.ssh/ 目录

        若不存在,需要执行一次

        使命令登陆本机:

        ssh localhost

        输入 yes

        然后按提示输入主机密码

        按四下回车

        再重启sshd服务 ,重启命令:systemctl restart sshd.service

        cd ~/.ssh/

        ssh-keygen -t rsa

        按回车即可

        授权

        cat ./id_rsa.pub >> ./authorized_keys

        查看服务进程

        ps -ef|grep ssh

        下一次连接就不用输入密码了,exit可退出当前主机

        cd /

        cd ~

        ssh localhost

        ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

        cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

        chmod 0600 ~/.ssh/authorized_keys



    (2)关闭防火墙

        sudo ufw status: 查看防火墙状态,inactive是关闭状态,active是开启状态

        sudo ufw enable:开启防火墙

        sudo ufw default deny:启动默认防御,作用:关闭所有外部对本机的访问(本机访问外部正常)

        sudo ufw disable:关闭防火墙

        sudo ufw allow|deny [service]:禁用防火墙

        选择关闭状态

    (3)创建用户

        单机版,为了避免权限限制,我们使用root安装,省略创建用户过程;

        useradd hadoop

        passwd hadoop (直接输入两次密码即可)

        注意:我都是用root用户操作,故这一步可以不用切换到hadoop用户。

    (4)修改机器名

        获取主机名:hostname或uname -a

        临时修改主机名,命令行下运行命令:“hostname 新主机名”

        其中“新主机名”可以用任何合法字符串来表示。不过采用这种方式,新主机名并不保存在系统中,重启系统后主机名将恢复为原先的主机名称。

        永久修改主机名,在Ubuntu系统中永久修改主机名也比较简单。主机名存放在/etc/hostname文件中,修改主机名时,编辑hostname文件,在文件中输入新的主机名并保存该文件即可

        查看网卡相关信息:ifconfig

        如果没有,安装:sudo apt install net-tools

        修改/etc/hosts配置文件

        /etc/hosts存放的是域名与ip的对应关系,域名与主机名没有任何关系,你可以为任何一个IP指定任意一个名字。

        修改主机名与IP地址映射关系:vim /etc/hosts

        在最后一行添加 ip地址 主机名,如:192.168.1.252 ubuntu

        修改后重启系统

        sudo reboot

3、安装jdk

    安装 OpenJDK 8

    sudo apt update

    sudo apt upgrade

    验收是否有jdk安装:java -version

    没有安装

    #sudo apt install openjdk-8-jre-headless   # version 8u312-b07-0ubuntu1~20.04

    #apt install openjdk-8-jdk-headless   # version 8u342-b07-0ubuntu1~20.04

    我自定义安装

    1、下载linux版jdk jdk-8u341-linux-x64.tar.gz

    2、将jdk拷贝到安装目录,jdk存放地址为/opt/jdk/

    3、执行命令 tar -zxvf  jdk-8u341-linux-x64.tar.gz,解压jdk

    首先使用which找到 Java 安装路径:

    which java

    /opt/jdk/jdk1.8.0_341/bin/java

    4、配置环境变量

        sudo vim /etc/profile,文件末尾加上如下环境变量配置

        export JAVA_HOME=/opt/jdk/jdk1.8.0_341

        export JRE_HOME=$JAVA_HOME/jre

        export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

        export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

5 5、重启配置 source /etc/profile

    6、查看是否配置成功。输入命令 java -version

    JAVA_HOME 环境变量

    (1)Java 安装路径

        /opt/jdk/jdk1.8.0_341

    (2)打开/etc/environment文件:

        /** sudo nano /etc/environment

        sudo apt install vim

       sudo vim /etc/environment

        在文件的末尾,添加下面的行:

        JAVA_HOME=/opt/jdk/jdk1.8.0_341

        想要让修改在当前 shell 生效,你可以登出系统,再登入系统,或者运行下面的命令:

        source /etc/environment

        验证 JAVA_HOME 环境变量被正确设置:

        echo $JAVA_HOME

    (3)配置环境变量

        vim  /etc/profile

        在这个文件最后添加如下两行:

        export JAVA_HOME=/opt/jdk/jdk1.8.0_341

        export PATH=$JAVA_HOME/bin:$PATH

        使这个配置文件生效

        source /etc/profile

        验证

        java -version

    (4)root用户如果关闭终端后,依旧没有,支持如下操作

        但是此方法有时退出终端后,再进入终端又会失效,所以可以:

        su root

        cd /root

        vim /root/.bashrc

        //在尾部添加:

        source /etc/profile

4、安装hadoop

上传或下载hadoop-3.3.3.tar.gz

#官网下载:hadoop3.3.3

#wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.3/hadoop-3.3.3.tar.gz

cp /home/hadoopsingle/Desktop/share/hadoop-3.3.3.tar.gz /opt/hadoop/.

tar -zxvf /opt/hadoop/hadoop-3.3.3.tar.gz -C /opt/hadoop/

至目录 /opt/hadoop/

#重命名 mv hadoop-3.3.3 hadoop

修改文件权限  sudo chown -R 0600 /opt/hadoop/hadoop-3.3.3

进入hadoop目录

cd /opt/hadoop/hadoop-3.3.3

验证hadoop版本

./bin/hadoop version

5、配置env和profile

配置env文件  修改JDK路径

vim /opt/hadoop/hadoop-3.3.3/etc/hadoop/hadoop-env.sh

vim /opt/hadoop/hadoop-3.3.3/etc/hadoop/mapred-env.sh

vim /opt/hadoop/hadoop-3.3.3/etc/hadoop/yarn-env.sh

添加:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

配置环境变量

vim /etc/profile

在文件最后添加如下三行

export JAVA_HOME=/opt/jdk/jdk1.8.0_341

export HADOOP_HOME=/opt/hadoop/hadoop-3.3.3

export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

使这个配置文件生效

source /etc/profile

验证

hadoop version

6、hadoop独立操作配置

独立操作,默认情况下,Hadoop 配置为以非分布式模式运行,作为单个 Java 进程。这对于调试很有用。

The following example copies the unpacked conf directory to use as input and then finds and displays every match of the given regular expression. Output is written to the given output directory.

pwd /opt/hadoop/hadoop-3.3.3

mkdir input

cp etc/hadoop/*.xml input

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.3.jar grep input output 'dfs[a-z.]+'

cat output/*

7、修改核心组件文件

vim /opt/hadoop/hadoop-3.3.3/etc/hadoop/core-site.xml

创建临时目录,mkdir tmp

配置里面添加:

    <configuration>

        <property>

            <name>hadoop.tmp.dir</name>

            <value>file:/opt/hadoop/hadoop-3.3.3/tmp</value>

            <description>Abase for other temporary directories.</description>

        </property>

        <property>

            <name>fs.defaultFS</name>

            <value>hdfs://localhost:9000</value>

        </property>

    </configuration>

8、修改文件系统文件

vim /opt/hadoop/hadoop-3.3.3/etc/hadoop/hdfs-site.xml

配置里面添加:

    <configuration>

        <property>

            <name>dfs.replication</name>

            <value>1</value>

        </property>

        <property>

            <name>dfs.namenode.name.dir</name>

            <value>file:/opt/hadoop/hadoop-3.3.3/tmp/dfs/name</value>

        </property>

        <property>

            <name>dfs.datanode.data.dir</name>

            <value>file:/opt/hadoop/hadoop-3.3.3/tmp/dfs/data</value>

        </property>

        <!-- 注释>

        <property>

            <name>dfs.namenode.http-address</name>

            <value>0.0.0.0:50700</value>

        </property>

        <!-->

    </configuration>

9、修改yarn文件

vim /opt/hadoop/hadoop-3.3.3/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_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>

        </property>

        <!--注释>

        <property>

            <name>yarn.resourcemanager.webapp.address</name>

            <value>ubuntu:8088</value>

        </property>

        <property>

            <name>yarn.resourcemanager.hostname</name>

            <value>ubuntu</value>

        </property>

        <property>

            <name>yarn.resourcemanager.address</name>

            <value>ubuntu:8032</value>

        </property>

        <property>

            <name>yarn.resourcemanager.scheduler.address</name>

            <value>ubuntu:8030</value>

        <property>

            <name>yarn.resourcemanager.resource-tracker.address</name>

            <value>ubuntu:8031</value>

        </property>

        <property>

            <name>yarn.resourcemanager.admin.address</name>

            <value>ubuntu:8033</value>

        </property>

        <!-->

    </configuration>

10、修改文件mapreduce文件

    vim /opt/hadoop/hadoop-3.3.3/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>

11、root用户启动hadoop需要的配置

在start-dfs.sh,stop-dfs.sh 两个文件顶部添加以下参数

vim /opt/hadoop/hadoop-3.3.3/sbin/start-dfs.sh

vim /opt/hadoop/hadoop-3.3.3/sbin/stop-dfs.sh

    HDFS_DATANODE_USER=root

    HADOOP_SECURE_DN_USER=hdfs

    HDFS_NAMENODE_USER=root

    HDFS_SECONDARYNAMENODE_USER=root

在start-yarn.sh,stop-yarn.sh两个文件顶部添加以下参数

vim /opt/hadoop/hadoop-3.3.3/sbin/start-yarn.sh

vim /opt/hadoop/hadoop-3.3.3/sbin/stop-yarn.sh

    YARN_RESOURCEMANAGER_USER=root

    HADOOP_SECURE_DN_USER=yarn

    YARN_NODEMANAGER_USER=root

12、配置完成,执行 NameNode 的格式化

进入目录cd /opt/hadoop/hadoop-3.3.3

格式化命令./bin/hdfs namenode -format

13、启动 NameNode 守护进程和 DataNode 守护进程

./sbin/start-dfs.sh

浏览 NameNode 的 Web 界面;默认情况下,它位于:默认端口号9870

http://localhost:9870/,或http://127.0.0.1:9870/,或http://192.168.1.253:9870/;

14、创建执行 MapReduce 作业所需的 HDFS 目录:

su root

cd /opt/hadoop/hadoop-3.3.3

./bin/hdfs dfs -mkdir /user

./bin/hdfs dfs -mkdir /user/root

15、将输入文件复制到分布式文件系统中

su root

cd /opt/hadoop/hadoop-3.3.3

./bin/hdfs dfs -mkdir input

./bin/hdfs dfs -put etc/hadoop/*.xml input

16、运行提供的一些示例

su root

cd /opt/hadoop/hadoop-3.3.3

./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.3.jar grep input output 'dfs[az.]+'

17、检查输出文件:将输出文件从分布式文件系统复制到本地文件系统并检查它们

su root

cd /opt/hadoop/hadoop-3.3.3

./bin/hdfs dfs -get output output

cat output/*

或者

./bin/hdfs dfs -cat output/*

18、启动 ResourceManager 守护进程和 NodeManager 守护进程

./sbin/start-yarn.sh

19、浏览 ResourceManager 的 Web 界面;默认情况下,它位于:

http://localhost:8088/

20、运行 MapReduce 作业

21、完成后,使用以下命令停止守护进程

./sbin/stop-yarn.sh

./sbin/stop-dfs.sh

22、hadoop环境变量配置

Ubuntu搭建hadoop时,在/bin、/sbin等路径下有一些经常使用的工具.为了能够在任何路径下都能使用这些工具,而不必切换到bin/sbin路径下,需要设置hadoop的环境变量(注意:前提是已经设置好jdk环境变量,jdk环境变量参考前面的配置)

我使用的是root用户,所以进入root用户目录下

(1)hadoop的安装路径

    /opt/hadoop/hadoop-3.3.3

(2)打开/etc/environment文件:

    vim /etc/environment

    在文件的末尾,添加下面的行:

    HADOOP_HOME="/opt/hadoop/hadoop-3.3.3"

    想要让修改在当前 shell 生效,你可以登出系统,再登入系统,或者运行下面的命令:

    source /etc/environment

    验证 HADOOP_HOME 环境变量被正确设置:

    echo $HADOOP_HOME

    /opt/hadoop/hadoop-3.3.3

(3)配置环境变量

    vim  /etc/profile

    在这个文件最后添加如下两行:

    export HADOOP_HOME=/opt/hadoop/hadoop-3.3.3

    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

    使这个配置文件生效

    source /etc/profile

    验证

    hadoop version

(4)root用户如果关闭终端后,依旧没有,支持如下操作

    但是此方法有时退出终端后,再进入终端又会失效,所以可以:

    su root

    cd /root

    vim /root/.bashrc

    //在尾部添加:

    source /etc/profile

本文转载自: https://blog.csdn.net/weixin_52536424/article/details/137126864
版权归原作者 hutu2022 所有, 如有侵权,请联系我们删除。

“hadoop 单节点模式安装”的评论:

还没有评论