集群搭建的笔记记录
通过XFTP等软件将 hadoop-3.2.1.tar.gz 包上传到 Master节点的“/opt”内。
1. 进入opt目录
cd /opt
1.1 解压Hadoop安装包
tar -zxvf hadoop-3.2.1.tar.gz
1.2 重命名:
hadoop-3.2.1”文件夹名称修改为“hadoop”
mv hadoop-3.2.1 hadoop
2. 配置:
2.1 配置env文件
vi /opt/hadoop/etc/hadoop/hadoop-env.sh
找到 “export JAVA_HOME” 这行,添加java路径
export JAVA_HOME=/usr/local/java/jdk1.8.0_251
Esc+:wq 保存并退出
2.2 进入 cd /opt/hadoop/etc/hadoop
文件夹 配置以下文件
配置 核心组件文件
vi core-site.xml
将下面的配置代码放在文件的 <configuration>和 </configuration> 之间
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/hadoopdata</value>
</property>
2.3 配置文件系统 :
系统配置文件 hdfs-site.xml:
vi hdfs-site.xml
需要将下面的代码填充到文件的<configuration>和</configuration>之间
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
2.4 配置 yarn-site.xml 文件
Yarn的站点配置文件是 yarn-site.xml
vi yarn-site.xml
需要将下面的代码填充到文件的<configuration>和</configuration>之间
(注意主机名master和端口号)。
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
2.5 配置 MapReduce 计算框架文件
在“/opt/hadoop/etc/hadoop”子目录下,系统已经有一个 mapred-site.xml.template文件,
需要复制并改名,位置不变,命令是
cp /opt/hadoop/etc/hadoop/mapred-site.xml.template /opt/hadoop/etc/hadoop/mapred-site.xml
然后,用 vi编辑 mapred-site.xml 文件,
vi mapred-site.xml
需要将下面的代码填充到文件的<configuration>和</configuration>之间。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
2.6 配置 Master 的 slaves 文件:
slaves 文件给出了 Hadoop 集群的 Slave 节点列表。
文件十分重要,启动Hadoop 的时候,系统总是根据当前 slaves 文件中 Slave 节点名称列表启动集群不在列表中的Slave
节点便不会被视为计算节点。
vi slaves
添加(另外两台主机名):
slave0
slave1
2.7 配置环境变量:
进入
cd /opt/hadoop
vi编辑 .bash_profile 文件,
vi ~/.bash_profile
将下述代码追加到文件的尾部(注意Hadoop的目录路径):
#HADOOP
export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
保存 退出,执行以下 命令,使上述配置生效。
source ~/.bash_profile
2.8 创建 Hadoop 数据目录:
mkdir /opt/hadoop/hadoopdata
注意,这里的数据目录名 “hadoopdata”与前面 Hadoop 核心组件文件core-site.xml中的配置:
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/hadoopdata</value>
</property>
是一致的。
2.9 复制hadoop到其他机器上
复制 Master 上的 Hadoop 到 Slave 节点:
scp -r /opt/hadoop root@slave0:/opt/hadoop
scp -r /opt/hadoop root@slave1:/opt/hadoop
2.10 格式化文件系统
该操作只需要在 Master 节点上进行,命令是
hadoop namenode -format
2.11 启动和关闭 Hadoop
cd /opt/hadoop/sbin
start-all.sh
命令启动 Hadoop 集群。
首先进入 Hadoop 安装主目录,然后执行 sbin/start-all.sh
命令,
执行命令后,系统提示“ Are you sure want to continue connecting(yes/no)”,
请输入yes
,之后系统即可启动。
stop-all.sh
关闭 Hadoop集群命令。
下次启动 Hadoop 无须 NameNode 初始化 只需**
start-dfs.sh
**即可
然后接着使用 start-yarn.sh 启动 Yarn
实际上,Hadoop 系统建议放弃(deprecated),使用 start-all.sh 和 stop-all.sh 一类的命令,
而改用 start-dfs.sh 和 start-yarn.sh 命令。**
2.12 验证 Hadoop 是否启动成功
检查hadoop启动情况:
http://主机ip:50070
终端执行
jps
查看 Hadoop 是否启动成功。
显示的结果是四个进程的名称:
SecondaryNameNode、 ResourceManager、 Jps 和NameNode,表明主节点( Master )启动成功
失败解决分案:
格式化文件系统hadoop集群启动失败解决方案:
cd /opt/hadoop/sbin
安装源:yum install epel-release -y
Q1:
Starting namenodes on [localhost]
ERROR: Attempting to launch hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting launch.
解决1:
是因为缺少用户定义造成的,所以分别编辑开始和关闭脚本
vi sbin/start-dfs.sh
vi sbin/stop-dfs.sh
在顶部空白处添加内容:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=root
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
Q2:
Starting resourcemanager
ERROR: Attempting to launch yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting launch.
Starting nodemanagers
ERROR: Attempting to launch yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting launch.
解决2:
是因为缺少用户定义造成的,所以分别编辑开始和关闭脚本
vi sbin/start-yarn.sh
vi sbin/stop-yarn.sh
顶部添加:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=root
YARN_NODEMANAGER_USER=root