一、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.sh,mapred-env.sh,yarn-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。可以看到此时有三个可用的 Datanode:http://linux01:50070进入web界面查看,这个方式更直接。
接着可以查看 Yarn 的情况,端口号为 8088 :以地址linux01:8088进入浏览器web界面进去,方式同上。
浙公网安备 33010602011771号