Hadoop配置手册1
Date: September 25, 2022
第1章 hadoop环境搭建
1.1 安装Vmware软件
- 下载地址:https://www.onlinedown.net/soft/45831.htm
- 运行安装程序,并连续点击下一步安装
- 输入密钥,启动程序
详细参考:https://blog.csdn.net/weixin_45014379/article/details/126102088
1.2 引入CentOS镜像
前言:
这里开始安装虚拟机,为节省硬盘容量和减轻电脑运算负担,这里采用Linux的最小化安装方式,即命令行版本
1.2.1 新建虚拟机
- 选择自定义
- 选额Cent OS 7
- 安装虚拟机位置
- 处理器配置
- 指定磁盘容量
- 指定磁盘文件配置
1.2.2 编辑虚拟网络编辑器
前言:
这里其实默认配置就好,若未来有网络配置问题,则需要对此处进行修改。
- 编辑虚拟网络编辑器
- 设置NAT模式
- 检测网关IP是否冲突
- 检测DHCP是否有IP冲突问题
1.2.3 同步物理机IPv4地址
对虚拟机的网络配置完成之后,需要对物理机的IPv4进行同步
- 对VMnet8进行网络配置属性
- 同步IP地址
1.2.4 正式安装CentOS7系统
安装之前,手动配置一下CD,即手动使用映像文件
- 选择英文,防止以后系统出现未知错误
- 基础配置
1.2.5 配置CentOS
准备工作:
安装vim编辑器
yum install vim
配置网络:
- 找到并编辑 ifcfg-ens33 文件
因为要静态IP,更方便管理,所以这里BOOTPROTO设置成static
- 重启,以更新配置,并检查网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.8.130
GATEWAY=192.168.8.2
DNS1=8.8.8.8
DNS2=8.8.4.4
service network restart
lo是回环地址,它是一个软件实现回环
ens33是配置的网卡,我们需要查看其中的 inet是否是自己所配置的,若是就可
然后我们可以尝试用ping来ping一下百度,查看网络是否通畅
注意:这里用 ctrl+c 来停止ping
补充:这里我们需要下载一个网络工具以检查网络
yum install net-tools
关闭防火墙
分布式集群中,各个节点之间的通信会受到防火墙的阻碍,因此关闭防火墙
systemctl stop firewalld.service
禁止防火墙开机启动
systemctl disable firewalld.service
若出现网络问题,查看网络配置文件是否错误
vi /etc/sysconfig/network-scripts/ifcfg-ens33
1.2.6 基础环境配置
配置时钟同步
在线安装 ntpdate,使用阿里云 ntp 服务器同步时间,date 命令查看当前时间
yum install ntpdate
ntpdate ntp.aliyun.com
date
配置主机名
作用:
在网络中能够唯一标识主机,让我们能够通过ip 地址和网络主机名访问这台主机
修改主机名:
hostnamectl set-hostname master
查看修改后的主机名:
hostname
配置hosts列表
hosts 列表作用是让集群中的每台服务器彼此都知道对方的主机名和 ip 地址
vim /etc/hosts
验证,ping ip 地址和主机名,结果相同无区别
ping 192.168.253.5
ping master
1.2.7 连接powershell
方便未来cv,节省操作时间
如果连接不上powershell:
解决方案:
方案1:
-
修改ip地址
虚拟网络编辑:
这里的ip最好给DHCP分配范围内的
物理机中的VMnet8修改一下IP地址:
-
虚拟机同步配置
具体过程见上面配置centos中的配置网络一块
- 配置主从机
vim /etc/hosts
解决方案2:
在VMnet8中采用自动获取IP地址,解决问题
采用如上方式,成功解决了虚拟机与物理机ip地址冲突的问题
常用知识:查看虚拟机和物理机的ip地址
虚拟机:
ifconfig 检查虚拟机的ip
物理机:
可以用在管理员权限下cmd中输入ipconfig找WLAN开头的ipv4,也可以直接找设置中的网络和Internet中的查看网络属性
1.3 安装Java
- 安装Java
yum install java-1.8.0-openjdk
yum install java-1.8.0-openjdk-devel
- 找到Java路径, 一般在如下位置, 记住这个路径
[root@master lib]# cd /usr/lib/jvm
[root@master jvm]# cd java
[root@master java]# pwd
/usr/lib/jvm/java
- 配置profile文件
vim /etc/profile
文末添加如下两行, 方便其他软件读java的home环境
export JAVA_HOME=/usr/lib/jvm/java
export PATH=$JAVA_HOME/bin:$PATH
使配置生效
source /etc/profile
1.4 安装Hadoop
- 选择使用阿里云的网址下载Hadoop
https://mirrors.aliyun.com/apache/hadoop/common/hadoop-2.10.1/?spm=a2c6h.25603864.0.0.433f3a2cRJPZLj
- 解压后可得如下文件
- 使用xftp连接虚拟机
然后将hadoop的压缩包转移到/usr/hadoop中
- 虚拟机中解压缩包
解压压缩包:
tar -zxvf hadoop-2.10.1
hadoop文件路径
/usr/hadoop/hadoop-2.10.1
配置/etc/profile文件,文末加上如下两行
注意一下这里的版本号为2.10.1
export HADOOP_HOME=/usr/hadoop/hadoop-2.10.1
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
保存出来,source /etc/profile
让文件生效
然后,我们用 hadoop version
验证一下是否配置成功即可
- 将hadoop与java绑定
cd /usr/hadoop/
cd hadoop-2.10.1/
cd etc/
cd hadoop/
vim hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java
- Hadoop核心文件配置
进入 hadoop 的 etc 文件夹, vim core-site.xml
<configuration>
<!--指定文件系统的入口地址,可以为主机名或ip -->
<!--端口号默认为8020 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!--指定hadoop的临时工作存目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
</property>
</configuration>
配置 yarn-env.sh 文件,vim yarn-env.sh
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
修改为:
export JAVA_HOME=/usr/java/jdk1.8.0_241
配置 hdfs-site.xml 文件,新增以下内容:
<configuration>
<!--指定hdfs备份数量,小于等于从节点数目-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.http.address</name>
<value>master:50070</value>
</property>
<!-- 自定义hdfs中namenode的存储位置-->
<!-- <property>-->
<!-- <name>dfs.namenode.name.dir</name>-->
<!-- <value>file:/usr/hadoop/dfs/name</value>-->
<!-- </property>-->
<!-- 自定义hdfs中datanode的存储位置-->
<!-- <property>-->
<!-- <name>dfs.datanode.data.dir</name>-->
<!-- <value>file:/usr/hadoop/dfs/data</value>-->
<!--</property>-->
</configuration>
配置 mapred-site.xml 文件,通过 cp 命令生成不带后缀 template
的文件
cp mapred-site.xml.template mapred-site.xml
编辑 mapred-site.xml 文件,新增以下内容:
<configuration>
<!--hadoop的MapReduce程序运行在YARN上-->
<!--默认值为local-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置 yarn-site.xml 文件
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!--nomenodeManager获取数据的方式是shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
编辑 slaves 文件,vim slaves,修改成如下
slave1
slave2
- 克隆虚拟机
- 配置SSH公钥
生成公钥私钥
在 master 和每台 slave 上,采用 rsa 算法产生公钥和私钥
ssh-keygen -t rsa
查看生成的私钥 id_rsa 和公钥 id_rsa.pub
cd /root/.ssh/
ls
发送公钥
在 master 上创建一个大家通用的公钥 authorized_keys,修改 authorized_keys 权限,并将这个公钥发送给每个 slave
cat id_rsa.pub >> authorized_keys
chmod 644 authorized_keys
systemctl restart sshd.service
scp /root/.ssh/authorized_keys slave1:/root/.ssh
scp /root/.ssh/authorized_keys slave2:/root/.ssh
scp /root/.ssh/authorized_keys slave3:/root/.ssh
具体配置过程如下:
- 验证SSH
ssh 登录检验,测试是否可以在主机ssh其他从机,且不用输入密码
ssh master
ssh slave1
exit
ssh slave2
exit
ssh slave3
exit
第2章 测试Hadoop安装
2.1 测试Hadoop实验
- 格式化HDFS
[root@master ~]# cd /usr/hadoop/
[root@master hadoop]# cd hadoop-2.10.1/
[root@master hadoop-2.10.1]# cd bin/
[root@master bin]# hdfs namenode -format
注意:格式化仅需进行一次
- 启动hadoop
cd /usr/hadoop/hadoop-2.10.1/sbin
[root@master sbin]# start-all.sh
- 查看hadoop进程
jps
//我个人的显示如下
[root@master sbin]# jps
1440 NameNode
3348 Jps
1768 ResourceManager
1628 SecondaryNameNode
- 通过web端访问hadoop
查看 YARN 界面:http://192.168.8.130:8088/
查看 NameNode、DataNode:http://192.168.8.130:50070/
查看 SecondaryNameNode :http://192.168.8.130:50090/