文章目录
- Hadoop介绍
- 实验
- 修改主机名
- 配置主机域名映射
- 关闭防火墙
- 关闭selinux
- 配置yum仓库
- 安装并配置NTP服务,用于时间同步
- 配置免密登录
- 将Hadoop、jdk环境包上传到服务器
- 安装与配置jdk
- 安装Hadoop
- 修改Hadoop配置文件
- 将修改好的环境复制到其他节点
- 格式化Hadoop
- 验证启动情况
- 注意事项
Hadoop介绍
- Hadoop的框架最核心的设计就是:HDFS和MapReduce
- HDFS为海量的数据提供了存储
- MapReduce为海量的数据提供了计算
- 把HDFS理解为一个分布式的,有冗余备份的,可以动态扩展的用来存储大规模数据的大硬盘
- 把MapReduce理解成为一个计算引擎,按照MapReduce的规则编写Map计算/Reduce计算的程序,可以完成计算任务
实验
实验环境:
主机名 | RHEL版本 | IP地址 |
---|---|---|
Master-bad | RHEL 7.0 | 192.168.43.130 |
slave01-bad | RHEL 7.0 Min | 192.168.43.129 |
slave02-bad | RHEL 7.4 | 192.168.43.131 |
修改主机名
- Master-bad设置主机名
[root@server ~]# hostnamectl set-hostname Master-bad
[root@server ~]# bash
[root@master-bad ~]#
在其他两台主机做相同操作,修改成相应的主机名
配置主机域名映射
- master-bad配置域名映射
[root@master-bad ~]# vim /etc/hosts
192.168.43.129 slave01-bad
192.168.43.130 master-bad
192.168.43.131 slave02-bad
[root@master-bad ~]#
在其他两台主机做相同的配置,配置域名映射
关闭防火墙
- master-bad上关闭防火墙
[root@master-bad ~]# systemctl stop firewalld //关闭防火墙
[root@master-bad ~]# systemctl disable firewalld //禁止开机自启
在另外两台主机做相同的操作,关闭防火墙
关闭selinux
- master-bad上关闭selinux
[root@master-bad ~]# vim /etc/selinux/config
SELINUX=disabled
在另外两台主机做相同的配置,关闭selinux
配置yum仓库
- master-bad上配置yum仓库
[root@master-bad yum.repos.d]# vim rhel.repo
[Base]
name=RHEL
baseurl=file:///mnt
gpgcheck=0
enabled=1
[root@master-bad yum.repos.d]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@master-bad yum.repos.d]# yum clean all
[root@master-bad yum.repos.d]# yum repolist
源标识 源名称 状态
Base RHEL 4,305
repolist: 4,305
[root@master-bad yum.repos.d]#
在另外两台主机做相同的配置,配置yum仓库
安装并配置NTP服务,用于时间同步
master-bad配置:
- 安装NTP
[root@master-bad ~]# yum -y install ntp
- 配置ntp,并设置开机自启
[root@master-bad ~]# vim /etc/ntp.conf //在配置文件中加入以下内容
server 127.127.1.0
fudge 127.127.1.0 startum 10
[root@master-bad ~]# systemctl start ntpd
[root@master-bad ~]# systemctl enable ntpd
slave01-bad配置:
- 安装ntp客户端
[root@slave01-bad ~]# yum -y install ntpdate
- 配置时间同步
[root@slave01-bad ~]# ntpdate master-bad
slave02-bad相同配置,配置时间同步
配置免密登录
-
只需要配置从主节点到从节点的即可
-
生成ssh密钥
[root@master-bad ~]# ssh-keygen
- 将ssh密钥上传给master-bad
[root@master-bad ~]# ssh-copy-id master-bad
Are you sure you want to continue connecting (yes/no)? yes //yes确认
root@master-bad's password: //输入master-bad的root密码
同样操作将ssh密钥传给salve01-bad、slave02-bad
将Hadoop、jdk环境包上传到服务器
- 使用Xftp、SecureFX或其他远程工具将软件包上传至服务器
- 直接在Internet上下载相关的包(
wget
)
这里直接使用Xftp上传至服务器
- 查看已上传到软件包
[root@master-bad ~]# ll /opt/Hadoop/
总用量 8
drwxr-xr-x. 9 root root 4096 6月 1 22:58 hadoop-2.7.6
drwxr-xr-x. 8 root root 4096 6月 1 23:08 jdk1.8.0_171
[root@master-bad ~]#
如果是下载的是tar、gz的压缩包,需要先解压(
tar -xf 压缩包名 解压的路径
)
安装与配置jdk
[root@master-bad ~]# vim /etc/profile //配置环境变量
export JAVA_HOME=/opt/Hadoop/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin
[root@master-bad ~]# source /etc/profile //重读文件,使配置的环境生效
[root@master-bad ~]# java -version //验证,查看Java环境的版本
java version "1.7.0_51"
OpenJDK Runtime Environment (rhel-2.4.5.5.el7-x86_64 u51-b31)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)
[root@master-bad ~]#
安装Hadoop
[root@master-bad ~]# vim /etc/profile //配置环境变量
export HADOOP_HOME=/opt/Hadoop/hadoop-2.7.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
[root@master-bad ~]# source /etc/profile //重读配置文件,是环境变量生效
[root@master-bad ~]# chmod -R 755 /opt/Hadoop/ //修改权限
[root@master-bad ~]# hadoop version //验证,查看Hadoop版本
Hadoop 2.7.6
。。。
[root@master-bad ~]#
需要递归赋予权限,否则无法查看Hadoop的版本信息
修改Hadoop配置文件
- 修改
core-site.xml
配置文件
[root@master-bad ~]# cd /opt/Hadoop/hadoop-2.7.6/etc/hadoop/
[root@master-bad hadoop]# vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master-bad:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/Hadoop/hadoop-2.7.6/hdfs</value>
</property>
</configuration>
[root@master-bad hadoop]#
- 修改
hdfs-site.xml
配置文件
[root@master-bad hadoop]# vim hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave02-bad:9001</value>
</property>
</configuration>
[root@master-bad hadoop]#
- 修改
mapred-site.xml
配置文件
[root@master-bad hadoop]# vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
[root@master-bad hadoop]#
- 修改
yarn-site.xml
配置文件
[root@master-bad hadoop]# vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master-bad</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
[root@master-bad hadoop]#
- 修改
slaves
配置文件
[root@master-bad hadoop]# vim slaves
master-bad
slave01-bad
slave02-bad
[root@master-bad hadoop]#
- 修改
hadoop-env.sh
配置文件
[root@master-bad hadoop]# vim hadoop-env.sh
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/opt/Hadoop/jdk1.8.0_171
为防止配置出错,方便恢复,配置文件修改前,将原文件复制一行,注释掉,再进行修改
将修改好的环境复制到其他节点
- 将JDK环境包复制到其他从节点
[root@master-bad hadoop]# scp -r /opt/Hadoop/jdk1.8.0_171/ slave01-bad:/opt/Hadoop/
[root@master-bad hadoop]# scp -r /opt/Hadoop/jdk1.8.0_171/ slave02-bad:/opt/Hadoop/
- 将Hadoop软件包复制到其他从节点
[root@master-bad hadoop]# scp -r /opt/Hadoop/hadoop-2.7.6/ slave01-bad:/opt/Hadoop/
[root@master-bad hadoop]# scp -r /opt/Hadoop/hadoop-2.7.6/ slave02-bad:/opt/Hadoop/
- 将环境复制到其他从节点
[root@master-bad hadoop]# scp /etc/profile slave01-bad:/etc/
[root@master-bad hadoop]# scp /etc/profile slave02-bad:/etc/
格式化Hadoop
[root@master-bad hadoop]# hdfs namenode -format
[root@master-bad hadoop]# start-all.sh
格式化成功后,会看到
successfully formatted
验证启动情况
- master-bad验证
[root@master-bad hadoop]# jps
46340 NodeManager
46184 ResourceManager
45914 DataNode
48461 Jps
45726 NameNode
[root@master-bad hadoop]#
- slave01-bad验证
[root@slave01-bad ~]# jps
2881 DataNode
2979 Jps
2942 NodeManager
[root@slave01-bad ~]#
- slave02-bad验证
[root@slave02-bad ~]# jps
3796 NodeManager
3653 DataNode
3722 SecondaryNameNode
4222 Jps
[root@slave02-bad ~]#
注意事项
- 主机名和hosts中的映射关系要一致,如果不一致,服务会起不来
- 关闭防火墙,禁止开机自启,或防火墙放行(实验中可以禁止防火墙自启,方便实验可以直接关闭防火墙)
- 客户端一定要配置时间同步
- master上生成的ssh密钥三台主机都要上传
- jdk和Hadoop的环境配置完成后,检查是否生效
- Hadoop启动后,可以通过Web访问
http://localhost:9870
或http://localhost:50070
验证是否成功启动
实验中遇到的问题及解决方法:
- 无法格式化Hadoop
使用
hadoop namenode -format -force
强制格式化
- master可以使用jps查看,slave无法查看
root@slave01-bad's password: slave01-bad: Permission denied, please try again
将Hadoop的安装目录权限提高,
chmod -R 777 /opt/Hadoop/
/opt/Hadoop/jdk1.8.0_171/bin/jps: 没有那个文件或目录
没有将jdk环境包上传至slave,重新上传
[root@master-bad hadoop]# scp -r /opt/Hadoop/jdk1.8.0_171/ slave02-bad:/opt/Hadoop/
问题解决办法可参考-柚子皮-的博客。
以上内容均属原创,如有不详或错误,敬请指出。
本文作者:
坏坏
本文链接: https://blog.csdn.net/qq_45668124/article/details/106491736
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!