0


CentOS中Hadoop的安装配置简略教程

一:配置虚拟机IP地址

    **以三台虚拟机为例,分别作为Master、Server 1、Server 2**

    ** 手动给三台虚拟机分别配以相应IP地址**

二:集群机器

    **这里使用三台主机搭建分布式集群环境,更多台机器同样可以使用如下配置。IP在不同局域网环境下有可能不同,可以用ifconfig****命令查看当前主机的IP。**

    ** 即可获得当前主机的IP在局域网地址,如下图:**

** 三台机器的名称和IP如下:**

主机名称

IP****地址

Master

192.168.213.139

Server1

192.168.213.140

Server2

192.168.213.141

** 三台电脑主机的用户名均为:W,三台机器可以**ping双方的ip来测试三台电脑的连通性。以Master主机为例,在Master节点主机上的Shell中运行如下命令,测试能否连接到Server 1节点主机。

     **如果出现如下图,说明连接成功**

     **为了更好的在Shell中区分三台主机,修改其显示的主机名,执行如下命令**
sudo vim /etc/hostname

** 在Master的/etc/hostname添加如下配置:Master**

** 同样Server 1的/etc/hostname添加如下配置:Server1**

** 同样Server 2的/etc/hostname添加如下配置:Server2**

** 重启三台电脑,重启后在终端Shell中才会看到机器名的变化,如下图:**

     **修改三台机器的/etc/hosts****文件,添加同样的配置:**
sudo vim /etc/hosts

** 配置如下:**

127.0.0.1 localhost

192.168.213.139 Master

192.168.213.140 Server1

192.168.213.141 Server2

三:配置ssh无密码登录本机和访问集群机器

    **三台主机电脑分别运行如下命令:**
sudo yum -y install openssh

systemctl enable sshd.service

systemctl start  sshd.service

   ** 删除秘钥配置文件,在配置之前要将之前配置过得删除,配置文件在当前用户的家目录下.ssh目录(三个节点操作)**
 rm -rf ~/.ssh

** 生成秘钥(三个节点生成)**

ssh-keygen

    ** 输入完成后按四次回车,显示以下结果:**

     **秘钥拷贝(将三个节点的秘钥都拷贝到Master中)(三个节点执行)**
ssh-copy-id Master

      **拷贝完成后,在Master中检查是否拷贝成功(Master执行)**
cat ~/.ssh/authorized_keys

     **秘钥分发(Master执行)        **
scp -r ~/.ssh/authorized_keys Server1:~/.ssh/

scp -r ~/.ssh/authorized_keys Server2:~/.ssh/

     **免密登录验证(三个节点操作)
   

**

ssh Master

ssh Server1

ssh Server2

**

![](https://img-blog.csdnimg.cn/a65a8e24a1c34360bfe737d6cdeb4087.png)

**

四:JDKHadoop****安装配置

** <1>:**JDK安装配置

(1):查询已有JAVA环境版本信息

java -version

(2): 卸载已有的openJDK

rpm -qa |grep java

** 如上,将下面几个删除即可**

** .noarch文件属于通用文件,不影响,不用删除,删了也没事~**

     **删除命令,(注:删除命令需要用root权限)**
sudo rpm -e --nodeps xxx

     **检查是否已经删除成功,(如下说明已经删除成功了)**
 java -version

** (3):**查看云端目前支持安装的jdk版本

 yum search java|grep jdk

** 选择版本后,安装(执行以下命令会自动安装jdk相关依赖)**

sudo yum install -y java-11-openjdk

(4):安装完成,验证是否安装成功

  java -version

** (5):配置JDK**的环境变量

sudo vim ~/.bashrc

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:/usr/local/hadoop-3.3.5/bin:/usr/local/hadoop-3.3.5/sbin
Master hadoop-3.3.5]$ bin/hdfs namenode -format
unset HADOOP_HOME

** 命令使修改的配置文件生效**

source ~/.bashrc

** 通过搜索java文件,查找jdk默认安装目录**

  sudo find / -name 'java'

提示:通过yum命令在线安装jdk简单、快捷、无需配置环境变量即可使用java相关服务。

<2>hadoop安装配置

** (1):下载hadoop(以hadoop-3.3.5为例):点击跳转下载**

下载好的安装包放在 /usr/local目录,然后进入该目录下****解压安装:

sudo tar -xvf hadoop-3.3.5.tar.gz

(2): 配置Hadoop环境变量:

sudo vim /etc/profile  

     **添加hadoop环境变量:**
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:/usr/local/hadoop-3.3.5/bin:/usr/local/hadoop-3.3.5/sbin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

注意:这里的$PATH:$JAVA_HOME/bin:/usr/local/hadoop-3.3.5/bin::/usr/local/hadoop-3.3.5/sbin表示在保留原来的$PATH环境变量的基础上,再增加$JAVA_HOME/bin和:/usr/local/hadoop-3.3.5/bin和:/usr/local/hadoop-3.3.5/sbin这些路径作为新的$PATH环境变量。

** 执行使修改的配置文件生效。**

source /etc/profile

五:Hadoop配置文件修改

** **** 修改etc/hadoop-3.3.5中的一系列配置文件**

(1): 修改core-site.xml文件(Master:在主节点的ip或者映射名(改成自己的))

sudo vim /usr/local/hadoop-3.3.5/etc/hadoop/core-site.xml

    ** 在节点内加入配置:**
<configuration>
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://Master:9000</value>
            </property>
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>file:/usr/local/hadoop-3.3.5/tmp</value>
                    <description>Abase for other temporary directories.</description>
            </property>
</configuration>

(2):修改hadoop-env.sh文件

sudo vim /usr/local/hadoop-3.3.5/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64

将 export JAVA_HOME=${JAVA_HOME}修改为:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64 说明:修改为自己的JDK路径

(3):修改hdfs-site.xml文件(注意改成自己的路径)

sudo vim /usr/local/hadoop-3.3.5/etc/hadoop/hdfs-site.xml 

  **  在节点内加入配置:**
<configuration>
            <property>
                    <name>dfs.namenode.secondary.http-address</name>
                    <value>Master:50090</value>
            </property>
            <property>
                    <name>dfs.replication</name>
                    <value>2</value>
            </property>
            <property>
                    <name>dfs.namenode.name.dir</name>
                    <value>file:/usr/local/hadoop-3.3.5/tmp/dfs/name</value>
            </property>
            <property>
                    <name>dfs.datanode.data.dir</name>
                    <value>file:/usr/local/hadoop-3.3.5/tmp/dfs/data</value>
            </property>
</configuration>

(4):修改mapred-site.xml文件

** Hadoop没有mapred-site.xml这个文件,现将文件复制到这然后进入mapred-site.xml**

cd /usr/local/hadoop-3.3.5/etc/hadoop

sudo cp mapred-queues.xml.template mapred-site.xml

sudo vim mapred-site.xml

** (Master:在主节点的ip或者映射名(改成自己的))**

<configuration>
            <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.address</name>
                    <value>Master:10020</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.webapp.address</name>
                    <value>Master:19888</value>
            </property>
</configuration>

(5):修改workers文件

** 添加自己的主节点和从节点(Server1、Server2)**

sudo vim /usr/local/hadoop-3.3.5/etc/hadoop/workers

**    将里面的localhost删除,添加以下内容(Master和Server1、Server2节点都要修改):**
Server1
Server2

** 注意:这里面不能有多余空格,文件中不允许有空行。**

(6):修改yarn-site.xml文件

sudo vim /usr/local/hadoop-3.3.5/etc/hadoop/yarn-site.xml 

<configuration>
            <property>
                    <name>yarn.resourcemanager.hostname</name>
                    <value>Master</value>
            </property>
            <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
            </property>
</configuration>

(7):配置hadoop-3.3.5/sbin/目录下文件

    **(start-dfs.sh、start-yarn.sh、stop-dfs.sh、stop-yarn.sh文件)**

** 服务启动权限配置
配置start-dfs.sh与stop-dfs.sh文件**

sudo vim sbin/start-dfs.sh 
    ![](https://img-blog.csdnimg.cn/be4efa5c45bb433bb98e4230297c701d.png)

** 和**

sudo vim 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文件**
sudo vim sbin/start-yarn.sh 

 **和**
sudo vim sbin/stop-yarn.sh

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

(8):将各个文件复制到其他节点上

配置好后,将 Master 上的 /usr/local/Hadoop-3.3.5 文件夹复制到各个节点上。因为之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。在 Master 节点上执行:

cd /usr/local

sudo rm -r ./hadoop-3.3.5/tmp     # 删除 Hadoop 临时文件

sudo rm -r ./hadoop-3.3.5/logs/*   # 删除日志文件

sudo tar -zcf ~/hadoop-3.3.5.master.tar.gz ./hadoop-3.3.5  # 先压缩再复制

cd ~

sudo scp ~/hadoop-3.3.5.master.tar.gz Server1:/home/w

sudo scp ~/hadoop-3.3.5.master.tar.gz Server2:/home/w

sudo scp -r /etc/profile w@Server1:/etc/profile #将环境变量profile文件分发到Server1节点

sudo scp -r /etc/profile w@Server2:/etc/profile #将环境变量profile文件分发到Server2节点

sudo scp -r /usr/local/hadoop-3.3.5 w@Master:/usr/local

sudo scp -r /usr/local/hadoop-3.3.5 w@Server1:/usr/local #将hadoop文件分发到Server1节点

sudo scp -r /usr/local/hadoop-3.3.5 w@Server2:/usr/local #将hadoop文件分发到Server2节点

(9):在 Server1、Server2 节点上执行:

sudo rm -r /usr/local/hadoop-3.3.5    # 删掉旧的(如果存在)

sudo tar -zxf ~/hadoop-3.3.5.master.tar.gz -C /usr/local

sudo chown -R w /usr/local/hadoop-3.3.5

(10):生效Server1、Server2的环境变量

source /etc/profile

六、启动Hadoop

CentOS系统需要关闭防火墙: CentOS系统默认开启了防火墙,在开启 Hadoop 集群之前,需要关闭集群中每个节点的防火墙。有防火墙会导致 ping 得通但 telnet 端口不通,从而导致 DataNode 启动了,但 Live datanodes 为 0 的情况。

(1):CentOS 7关闭防火墙

            **需通过如下命令关闭(防火墙服务改成了 firewall,在Master执行):**
systemctl stop firewalld.service    # 关闭firewall
    
systemctl disable firewalld.service # 禁止firewall开机启动

** 使用以下命令查看防火墙状态:**

systemctl status firewalld

(2):启动

            **首次启动需要先在 Master 节点执行 NameNode 的格式化:**
cd /usr/local/hadoop-3.3.5

hdfs namenode -format       # 首次运行需要执行初始化,之后不需要

     **接着可以启动 hadoop 了,启动需要在 Master 节点上进行:**
start-dfs.sh

start-yarn.sh

mr-jobhistory-daemon.sh start historyserver

#或者

start-all.sh

**输入命令

jps

可以查看各个节点所启动的进程。正确的话,在 Master 节点上可以看到 NameNode、ResourceManager、SecondrryNameNode 进程,如下图所示:**

** 在 Server1、Server2节点可以看到 DataNode 和 NodeManager 进程,如下图所示:**

**缺少任一进程都表示出错。另外还需要在 Master 节点上通过命令

hdfs dfsadmin -report

查看 DataNode 是否正常启动,如果 Live datanodes 不为 0 ,则说明集群启动成功。例如我这边一共有 2 个 Datanodes**:

**也可以通过 Web 页面看到查看 DataNode 和 NameNode 的状态:http://主节点IP地址:9870 **如果不成功,可以通过启动日志排查原因。

    ** 在本地浏览器里访问如下地址:可以通过 ****http://主节点IP地址:808//cluster **自动跳转到cluster页面

** 如果要关闭hadoop,执行以下命令:(三节点执行)**

stop-dfs.sh

stop-yarn.sh

#或

stop-all.sh

标签: hadoop centos 大数据

本文转载自: https://blog.csdn.net/weixin_55280439/article/details/130081197
版权归原作者 躺平又摸鱼 所有, 如有侵权,请联系我们删除。

“CentOS中Hadoop的安装配置简略教程”的评论:

还没有评论