星光下的学者

导航

 

一、linux下JDK的安装

1. 下载并解压

官网 下载所需版本的 JDK,这里我下载的版本为JDK 1.8 ,下载后进行解压:

1 [root@linux01 ~]# tar -zxvf jdk-8u321-linux-x64.tar.gz

2. 设置环境变量

1 [root@linux01 ~]# vi /etc/profile

添加如下配置:(注意JDK文件夹名,不同版本解压后文件名不同,与其版本号相同)

1 export JAVA_HOME=/usr/java/jdk1.8.0_321  
2 export JRE_HOME=${JAVA_HOME}/jre  
3 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
4 export PATH=${JAVA_HOME}/bin:$PATH

执行 source 命令,使得配置立即生效:

[root@linux01 ~]# source /etc/profile

 检查是否安装成功

[root@linux01 ~]#java -version
显示出对应的版本信息则代表安装成功。
java version "1.8.0_321"
Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)

二、配置免密登录

2.1 生成密匙

在每台主机上使用 ssh-keygen 命令生成公钥私钥对

[root@linux01 .ssh]#ssh-keygen -t dsa -f ~/.ssh/id_dsa

-t 指定密钥类型,默认是 rsa ,可以省略。
-f 指定密钥文件存储文件名。

那么就会生成 id_rsa 和 id_rsa.pub 两个秘钥文件,/root/.ssh目录下ll命令可看。

 

接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码),可以不输入密码,直接按回车(免密钥嘛,就别密码了,直接回车)。

2.2 免密登录

2.2.1 把公钥分发到其他节点 :

1 [root@linux01 .ssh]# scp ./id_dsa.pub linux02:/root/.ssh/node01.pub
2 [root@linux01 .ssh]# scp ./id_dsa.pub linux03:/root/.ssh/node01.pub

这样在Linux02,03节点上/root/.ssh/目录下都有node01.pub这个公钥,可以去查看,验证是否成功。

2.2.2 将 linux01 的公钥写到本机和远程机器的 ~/ .ssh/authorized_key 文件中:

1 [root@linux01 .ssh]#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
2 [root@linux02 .ssh]#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
3 [root@linux03 .ssh]#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

可看到/root/.ssh目录下多了一个authorized_keys,其内容与id_dsa.pub相同。

2.2.3 现在可以验证登录了

1 [root@linux01 .ssh]# ssh linux02
2 [root@linux01 .ssh]# ssh linux03

结果会如下所示

 1 [root@linux01 .ssh]# ssh linux02
 Last login: Sat Mar 19 18:03:14 2022 from linux01
 2 [root@linux02 ~]# exit
 logout
 Connection to linux02 closed.
 3 [root@linux01 .ssh]# ssh linux03
 Last login: Sat Mar 19 18:04:15 2022 from linux01
 4 [root@linux03 ~]# exit
 logout
   Connection to linux03 closed.

三、Hadoop集群搭建

3.1 下载并解压

官网下载 Hadoop。这里是历史版本 Hadoop,下载地址为:https://archive.apache.org/dist/hadoop/common/,选取下载自己想要的版本,解压:

tar -zvxf hadoop-2.6.0-cdh5.15.2.tar.gz

3.2 配置环境变量

3.2.1编辑 profile 文件:

vim /etc/profile

增加如下配置:

export HADOOP_HOME=/usr/software/hadoop-2.7.2
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH

(PATH路径可以添加到之前jdk的PATH中,可以看到路径之间以”冒号:“连接。

${HADOOP_HOME}/sbin:这个一定要加入,之前没有加入,会出现Hadoop hdfs初始化成功,但是不能启动,不识别sbin目录下的命令的情况

执行 source 命令,使得配置立即生效:

source /etc/profile

3.2.2 进入 ${HADOOP_HOME}/etc/hadoop 目录下,修改配置文件

(1). 分别修改hadoop-env.shmapred-env.shyarn-env.sh,指定JDK的安装位置,如下:

# 指定JDK的安装位置
export JAVA_HOME=/usr/java/jdk1.8.0_321/

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

core-site.xml

 1 <configuration>
 2     <property>
 3         <!--指定 namenode 的 hdfs 协议文件系统的通信地址-->
 4         <name>fs.defaultFS</name>
 5         <value>hdfs://hadoop001:8020</value>
 6     </property>
 7     <property>
 8         <!--指定 hadoop 集群存储临时文件的目录-->
 9         <name>hadoop.tmp.dir</name>
10         <value>/home/hadoop/tmp</value>
11     </property>
12 </configuration>

 hdfs-site.xml

<configuration>
      <property>
          <!--namenode 节点数据(即元数据)的存放位置,可以指定多个目录实现容错,多个目录用逗号分隔-->
          <name>dfs.namenode.name.dir</name>
          <value>/home/hadoop/namenode/data</value>
      </property>
      <property>
          <!--datanode 节点数据(即数据块)的存放位置-->
          <name>dfs.datanode.data.dir</name>
          <value>/home/hadoop/datanode/data</value>
      </property>
      <property> 
          <!--指定hdfs保存数据的副本数量--> 
          <name>dfs.replication</name>
          <value>2</value>
      </property>
      <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>linux02:50090</value>
      </property>
 </configuration>  

 yarn-site.xml

<configuration>
    <property>
        <!--配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在 Yarn 上运行 MapReduce 程序。-->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <!--resourcemanager 的主机名-->
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop001</value>
    </property>
</configuration>

mapred-site.xml

<configuration>
    <property>
        <!--指定 mapreduce 作业运行在 yarn 上-->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

3.2.3. slaves

配置所有从属节点的主机名或 IP 地址,每行一个。所有从属节点上的 DataNode 服务和 NodeManager 服务都会被启动。

1 linux02
2 linux03

3.3 分发程序

将 Hadoop 安装包分发到其他两台服务器,分发后建议在这两台服务器上也配置一下 Hadoop 的环境变量。

[root@linux01 software]# scp -r ./hadoop-2.7.2 linux02:`pwd`
[root@linux01 software]# scp -r /usr/software/hadoop-2.7.2 linux03:/usr/software

以上两行代码是相同作用,第一行中“./”中的点表示当前目录,`pwd`表示路径(“`”这个pwd两边的符号不是单引号)。

3.3 初始化

在 linux01主机 上执行 namenode 初始化命令:

hdfs namenode -format

3.4 启动集群

进入到 linux01 的 ${HADOOP_HOME}/sbin 目录下,启动 Hadoop。此时 linux02 和 linux03 上的相关服务也会被启动:

# 启动dfs服务
start-dfs.sh
# 启动yarn服务
start-yarn.sh

3.7 查看集群

在每台服务器上使用 jps 命令查看服务进程,可以看到已成功启动

[root@linux01 sbin]# jps
1554 DataNode
1882 NodeManager
1789 ResourceManager
1439 NameNode
2175 Jps

或直接进入 Web-UI 界面进行查看,端口为 50070。可以看到此时有三个可用的 Datanodehttp://linux01:50070进入web界面查看,这个方式更直接。

接着可以查看 Yarn 的情况,端口号为 8088 :以地址linux01:8088进入浏览器web界面进去,方式同上。

 

posted on 2022-03-19 22:40  我觉得我还能挣扎一下  阅读(79)  评论(0)    收藏  举报