大数据 Hadoop 环境搭建图文详解
一、虚拟机环境准备
1、虚拟机网络模式设置为 NAT
点击 “编辑虚拟机设置”。
点击 “网络适配器” → “NAT模式” 即可。
2、克隆虚拟机
右键需要克隆的虚拟机 → 管理 → 克隆。
选择“虚拟机中的当前状态”,点击下一步。
选择“创建完整克隆”,点击下一步。
更改虚拟机名称以及位置,点击下一步。
创建完成后关闭即可。
3、修改虚拟机为静态 IP
查看虚拟网卡信息。
输入 ifconfig ,看到可以正常使用的网卡以及相关信息。
可以看到我们这里的网卡是 ens33。
查看网关。
在 VMware 中的虚拟网络编辑器中可以看到。
修改网卡配置。
输入以下命令,即可编写网卡配置。
vim /etc/sysconfig/network-scripts/ifcfg-网卡名
我这里的网卡名是 ens33,则命令如下:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
把有的部分注释掉,没有的部分在最后加上。
# 要配制的部分
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.182.128 #IP地址
NETMASK=255.255.255.0 #子网掩码
NETWORK=192.168.0.0
修改网关配置。
输入以下命令,编写网关配置。
vim /etc/sysconfig/network
编写以下内容。
NETWORKING=yes
GATEWAY=192.168.182.2 #网关
修改 DNS 配置。
输入以下内容,编写 DNS 配置。
vim /etc/resolv.conf
编写以下内容。
search localdomain
nameserver 8.8.8.8
nameserver 192.168.182.2
重启网络服务。
service network restart
4、修改主机名
查看本机主机名
查看本机主机名使用 hostname 即可。
hostname
修改主机名(CentOS 7)。
使用下面的命令修改主机名。
hostnamectl set-hostname 主机名
示例:
hostnamectl set-hostname node1
修改主机名(通用,CentOS7 与 非 CentOS7)。
NETWORKING=yes
NETWORKING_IPV6=no
GATEWAY=192.168.182.2 #网关
HOSTNAME=node1 #主机名
修改 CentOS 的 hosts。
使用下面的命令编辑 hosts。
vim /etc/hosts
在每个虚拟机的 hosts 文件后面增加自己所安装的虚拟机的 IP 地址以及主机名。
192.168.182.133 master
192.168.182.128 node1
192.168.182.129 node2
将 hosts 文件拷贝到 node1 和 node2 节点命令:
scp /etc/hosts node1:/etc/hosts # 拷贝到 node1
scp /etc/hosts node2:/etc/hosts # 拷贝到 node2
修改 Windows 的 hosts。
进入 C:\Windows\System32\drivers\etc 路径。
打开 hosts 文件,填写如下内容:
192.168.182.133 master
192.168.182.128 node1
192.168.182.129 node2
保存文件,如果不行的话可以先移出来,再移回去。
5、关闭防火墙
查看防火墙状态。
systemctl status firewalld.service
绿的running表示防火墙开启。
关闭防火墙。
systemctl stop firewalld.service
或:
service iptables stop
开机禁用防火墙自启。
systemctl disable firewalld.service
或:
chkconfig iptables off
启动防火墙。
systemctl start firewalld.service
防火墙随系统开启启动。
systemctl enable firewalld.service
6、设置 ssh 免密码登录(只在 Master 这台主机操作)
生成密钥并拷贝到子节点。
主节点执行命令 ssh-keygen -t rsa 产生密钥,一直回车执行命令。
将密钥拷贝到其他两个子节点,命令如下:
ssh-copy-id -i node1
ssh-copy-id -i node2
实现主节点 master 本地免密码登录。
首先进入到 /root 命令:
cd /root
在进入到 ./.ssh 目录下:
cd ./.ssh/
将公钥写入本地执行命令:
cat ./id_rsa.pub>> ./authorized_keys
二、用户及文件权限配置
1、创建用户
adduser atguigu #添加用户
passwd atguigu #修改密码
2、配置用户具有 root 权限
输入以下命令进行配置:
vi /etc/sudoers
配置 atguigu 用户的信息:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
atguigu ALL=(ALL) ALL
3、在 /opt 目录下创建文件夹
在 /opt 目录下创建 module、software 文件夹。
mkdir module # 创建 module 文件夹
mkdir software # 创建 software 文件夹
修改 module、software 文件夹的所有者 cd。
chown atguigu:atguigu module
chown atguigu:atguigu software
查看文件归属。
ls -al
三、JDK 安装
1、卸载现有 jdk
查询是否安装 Java。
rpm -qa|grep java
如果安装的版本低于 1.7,则卸载该 jdk。
sudo rpm -e 软件包
2、将 jdk、Hadoop 导入到 opt 目录的 software 文件夹下
导入 jdk 安装包。
导入 Hadoop 安装包。
3、查看软件包是否导入成功
cd software/
ls
4、解压 jdk 到 /opt/module 目录下
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
5、配置 jdk 环境变量
获取 jdk 路径。
进入 jdk 的解压路径,输入以下命令即可查看 jdk 路径:
pwd
打开 /etc/profile 文件:
输入以下命令打开 profile 文件。
sudo vi /etc/profile
输入以下命令配置 Java 环境变量。
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
保存退出。
配置 jdk 环境生效。
source /etc/profile
测试 jdk 是否安装成功。
java -version
重启(如果 java -version 可以用就不用重启)。
sync
sudo reboot
四、Hadoop 安装(master 主机)
1、进入 Hadoop 安装包路径下
cd /opt/software/
2、解压安装文件到 /opt/module 目录下
tar -zxf hadoop-2.7.2.tar.gz -C /opt/module/
3、查看是否解压成功
ls /opt/module/
4、将 Hadoop 添加到环境变量下
获取 Hadoop 安装路径。
进入 Hadoop 路径,输入以下命令查看 Hadoop 安装路径。
pwd
打开 /etc/profile 文件。
使用 vim 打开 profile 文件。
sudo vi /etc/profile
编辑 Hadoop 环境。
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
保存退出。
Hadoop 环境生效。
source /etc/profile
测试 Hadoop 是否安装成功。
hadoop version
重启(如果 hadoop version 可以用就不用重启)。
sync
sudo reboot
5、修改 Hadoop 相关配置文件
(1) 修改 Hadoop 的 slaves 文件
进入 /opt/module/hadoop-2.7.2/etc/hadoop 目录。
cd /opt/module/hadoop-2.7.2/etc/hadoop
修改该目录下的 slaves 文件。
使用 vim 编辑 slaves 文件。
vim slaves
删除原来的内容,修改为如下内容。
node1
node2
(2) 修改 Hadoop 的 hadoop-env.sh 文件
进入 /opt/module/hadoop-2.7.2/etc/hadoop 目录。
cd /opt/module/hadoop-2.7.2/etc/hadoop
修改该目录下的 hadoop-env.sh 文件。
添加 JAVA_HOME 路径:
export JAVA_HOME=/opt/module/jdk1.8.0_144
(3) 修改 Hadoop 的 core-site.xml 文件
进入 /opt/module/hadoop-2.7.2/etc/hadoop 目录。
cd /opt/module/hadoop-2.7.2/etc/hadoop
修改该目录下的 core-site.xml 文件。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
</configuration>
(4) 修改 Hadoop 的 hdfs-site.xml 文件
进入 /opt/module/hadoop-2.7.2/etc/hadoop 目录。
cd /opt/module/hadoop-2.7.2/etc/hadoop
修改该目录下的 hdfs-site.xml 文件。
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
(5) 修改 Hadoop 的 yarn-site.xml 文件
进入 /opt/module/hadoop-2.7.2/etc/hadoop 目录。
cd /opt/module/hadoop-2.7.2/etc/hadoop
修改该目录下的 yarn-site.xml 文件。
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
(6) 修改 Hadoop 的 mapred-site.xml 文件
进入 /opt/module/hadoop-2.7.2/etc/hadoop 目录。
cd /opt/module/hadoop-2.7.2/etc/hadoop
复制 mapred-site.xml.template 为 mapred-site.xml。
cp mapred-site.xml.template mapred-site.xml
修改该目录下的 mapred-site.xml 文件。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
(7) 复制 Hadoop 的安装目录到其它子节点
scp -r /opt/module/hadoop-2.7.2 node1:/opt/module/hadoop-2.7.2
scp -r /opt/module/hadoop-2.7.2 node2:/opt/module/hadoop-2.7.2
6、验证(启动 Hadoop)
首先看下 hadoop-2.7.2 目录下有没有 tmp 文件夹。 如果没有执行一次格式化命令:
cd /opt/module/hadoop-2.7.2 #进入 hadoop 安装目录
./bin/hdfs namenode -format # 格式化命令
执行完格式化命令会生成 tmp 文件。
启动 Hadoop。
输入以下命令启动 Hadoop。
cd /opt/module/hadoop-2.7.2 #进入 hadoop 安装目录
./sbin/start-all.sh #启动程序
验证主节点进程。
输入以下命令查看进程:
jps #显示所有 java 进程 pid
主节点进程:
- ResourceManager
- NameNode
- SecondaryNameNode
子节点进程
- DataNode
- NodeManager
④ 验证 HDFS:
浏览器登录地址:192.168.182.133:50070(ip 地址是 master 节点的地址)。
出现以下界面则证明 HDFS 安装成功:
刚搭建完成,什么都没有。
PS:
如果第一次启动失败了,请重新检查配置文件或者哪里步骤少了。 再次重启的时候 需要手动将每个节点的 tmp 目录删除:
rm -rf /opt/module/hadoop-2.7.2/tmp
然后在<font color=“red”>主节点</font>执行以下命令格式化 namenode。
./bin/hdfs namenode -format
文章相关附件可以点击下面的原文链接前往下载:
https://ost.51cto.com/resource/2334。