赞
踩
系统 :centos7
hadoop版本:hadoop3.1.3
JDK:1.8
1、下载JDK方到指定目录并解压
解压:tar -zxvf jdk-8u221-linux-x64.tar.gz
2、配置java环境变量
vim /etc/profile
在文件末尾添加并保存
export JAVA_HOME=/base/JDK/jdk1.8.0_221
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
3、让修改后的文件生效
source /etc/profile
4、验证是否配置成功
java -version
若返回
openjdk version "1.8.0_222-ea"
OpenJDK Runtime Environment (build 1.8.0_222-ea-b03)
OpenJDK 64-Bit Server VM (build 25.222-b03, mixed mode)
说明配置成功
(1)
ssh-keygen
一直回车
(2)将生成的密钥发送到本机地址
ssh-copy-id localhost
(注意:若报错找不到命令则需要安装openssh-clients执行:yum -y install openssh-clients 即可)
(3)测试免登录是否成功
ssh localhost
(1)下载Hadoop
https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
(2)、将下载好的包上传到系统中某个目录下,并解压
tar -zxvf hadoop-3.1.3.tar.gz
(3)、配置环境变量
vim /etc/profile
在文件中添加
export HADOOP_HOME=/base/hadoop/hadoop-3.1.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
让修改后的文件生效
source /etc/profile
(4)、验证是否配置成功
hadoop version
(1)、目录结构
(2)重要目录说明
*bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本
*etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
*lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
*sbin目录:存放启动或停止Hadoop相关服务的脚本
*share目录:存放Hadoop的依赖jar包、文档、和官方案例
(1)、Hadoop中的重要目录说明
1)bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本
2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
4)sbin目录:存放启动或停止Hadoop相关服务的脚本
5)share目录:存放Hadoop的依赖jar包、文档、和官方案例
(2)、配置 hadoop下 /etc/hadoop 的 hadoop-env.sh 文件
在该文件中添加Java的JAVA_HOME
export JAVA_HOME=具体目录根据自己的环境配置
(3)、修改 hadoop下 /etc/hadoop 的 core-site.xml 文件
修改如下
<configuration>
<!--这里路径是namenode 、datanode 等存放的公共临时目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data_hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<!--设置hdfs中服务的主机和端口号-->
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.249.133:9000</value>
</property>
</configuration>
(4)、修改 hadoop下 /etc/hadoop 的 hdfs-site.xml 文件
修改如下
<configuration> <!--设置hdfs中的namenode文件目录--> <property> <name>dfs.namenode.name.dir</name> <value>/opt/data_hadoop/dfs/name</value> <final>true</final> </property> <!--设置hdfs中的datanode文件目录--> <property> <name>dfs.datanode.data.dir</name> <value>/opt/data_hadoop/dfs/data</value> <final>true</final> </property> <!--设置数据块副本(由于是单机所以1即可)--> <property> <name>dfs.replication</name> <value>1</value> </property> <!--hdfs的访问权限设置为false--> <property> <name>dfs.permissions</name> <value>false</value> </property> <!--web界面访问--> <property> <name>dfs.http.address</name> <value>IP:50070</value> </property> </configuration>
(5)、格式化namenod
在启动hadoop集群前需要格式化namenode。需要注意的是,第一次安装Hadoop集群的时候需要格式化Namenode,以后直接启动Hadoop集群即可,不需要重复格式化Namenode。
在Hadoop目录下输入如下命令
bin/hdfs namenode -format
(6)、启动
在hadoop目录下输入
./sbin/start-dfs.sh
若在启动中报错如下:
Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
则需要在 start-dfs.sh,stop-dfs.sh头部中添加如下信息:
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
(7)、访问(根据自己的地址来访问)
在访问前先查看下防火墙是否开着
查看防火墙状态:firewall-cmd --state
若是running,则表示防火墙开着,则需要关闭防火墙.若是not running ,则表示防火墙关闭状态。
关闭防火墙命令:systemctl stop firewalld.service
IP:50070
(1)、配置yarn-env.sh
配置一下 JAVA_HOME
export JAVA_HOME=XXXXX
(2)、配置 yarn-site.xml
</configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop21</value>
</property>
</configuration>
(3)、mapred-env.sh
配置一下JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
(4)、mapred-site.xml
</configuration>
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5)、启动
在hadoop目录下输入
./sbin/start-yarn.sh
若在启动中报错如下:
Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
则需要在 start-yarn.sh,stop-yarn.sh头部中添加如下信息:
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
访问:IP:8088
hadoop22(192.168.85.22) | hadoop23(192.168.85.23) | hadoop24(192.168.85.24) | |
---|---|---|---|
HDFS | NameNode DateNode | DateNode | SecondaryNameNode DateNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
选中某一台服务器配置好以下文件。配置完以后要将这些拷贝到其他服务器上。
core-site.xml 文件配置
<configuration>
<!--这里路径是namenode 、datanode 等存放的公共临时目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/base/hadoop/data/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<!--设置hdfs中服务的主机和端口号-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop22:9000</value>
</property>
</configuration>
文件内容加入一下配置
#java环境变量
export JAVA_HOME=/opt/module/jdk1.8.0_144
文件内容加入一下配置
<configuration>
<!--设置数据块副本(由于是三台所以3)-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop24:50090</value>
</property>
</configuration>
文件内容加入一下配置
#java环境变量
export JAVA_HOME=/opt/module/jdk1.8.0_144
文件内容加入一下配置
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 设置ResourceManage 启动在哪台服务器 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop23</value> </property> <!-- 开启yarn.webapp.ui2 --> <property> <description>To enable RM web ui2 application.</description> <name>yarn.webapp.ui2.enable</name> <value>true</value> </property> <!-- 默认为true, 当虚拟机内存不够多时,容易超出虚拟机内存 --> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> <description>Whether virtual memory limits will be enforced for containers. </description> </property> </configuration>
文件内容加入一下配置
#java环境变量
export JAVA_HOME=/opt/module/jdk1.8.0_144
文件内容加入一下配置
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--value对应自己的目录 -->
<property>
<name>mapreduce.application.classpath</name>
<value>/base/hadoop/hadoop-3.1.3/share/hadoop/mapreduce/*:/base/hadoop/hadoop-3.1.3/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
生成公钥和私钥:
ssh-keygen
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登录的目标机器上
ssh-copy-id hadoop22
ssh-copy-id hadoop23
ssh-copy-id hadoop24
注:以上ssh配置都需要在每个服务器上配置一下
workers在hadoop主目录下 etc/hadoop/中
vim etc/hadoop/workers
添加以下内容
hadoop22
hadoop23
hadoop24
这些配置需要所有的服务器一致,将这些文件复制到其他服务器即可。
如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)
[root@hadoop22 hadoop-3.1.3] ./bin/hdfs namenode -format
若在启动中报错如下:
Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
则需要在 start-dfs.sh,stop-dfs.sh头部中添加如下信息:
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
在hadoo22主机上
[root@hadoop22 hadoop-3.1.3]# ./sbin/start-dfs.sh
查看是否启动成功
[root@hadoop22 hadoop-3.1.3]# jps
20242 DataNode
20089 NameNode
23007 Jps
查看其他两个主机
[root@hadoop23 hadoop-3.1.3]# jps
2025 DataNode
23006 Jps
[root@hadoop24 hadoop-3.1.3]# jps
20432 DataNode
2039 SecondaryNameNode
23007 Jps
若在启动中报错如下:
Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
则需要在 start-yarn.sh,stop-yarn.sh头部中添加如下信息:
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。
在hadoo23主机上
[root@hadoop23 hadoop-3.1.3]# ./sbin/start-yarn.sh
地址 http://192.168.85.22:9870
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。