前言
在搭建 Hadoop 和 Hive 集群的过程中,笔者遇到了一些常见的坑。为了帮助其他同学减少踩坑的机会,特此总结这篇文章,希望能帮助大家顺利完成环境搭建。
Hadoop 集群搭建
1. 创建虚拟机
使用 VMware 创建一台至少 2 核 4 GB 内存的 Ubuntu 虚拟机,主机命名为 master
,然后克隆两台虚拟机,分别命名为 slave1
和 slave2
。
1.1 如何更改主机名
可视化界面更改
点击设置,选择 “关于”,然后点击 “设备名称” 进行修改。
终端界面更改
执行以下命令编辑主机名:
vim /etc/hostname
将文件中的内容替换为新的主机名。
1.2 修改 /etc/hosts
文件
在所有三台主机上都需要修改此文件。使用 ifconfig
查看每台机器的局域网 IP 地址,然后编辑 hosts
文件:
vim /etc/hosts
以下是修改示例,记得将 IP 地址替换为自己机器的实际 IP:
192.168.219.128 master
192.168.219.129 slave1
192.168.219.130 slave2
修改完后,重启每台主机:
reboot
2. 配置 SSH 免密登录
为三台机器配置 SSH 密钥,实现远程无密码访问。
2.1 安装 SSH 服务
sudo apt-get install openssh-server # 安装 SSH 服务
sudo /etc/init.d/ssh restart # 启动 SSH 服务
sudo ufw disable # 关闭防火墙
2.2 生成 SSH 密钥并分发
在每台节点上生成 SSH 密钥,并将公钥分发到其他机器。
首先生成密钥:
ssh localhost
cd ~/.ssh
rm ./id_rsa*
ssh-keygen -t rsa
然后将公钥添加到 authorized_keys
文件:
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
接着将 master
主机上的公钥传送到 slave1
和 slave2
:
scp ~/.ssh/id_rsa.pub hadoop@slave1:~/
scp ~/.ssh/id_rsa.pub hadoop@slave2:~/
最后,在 slave1
和 slave2
上执行以下命令:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
这样就完成了免密登录配置。
3. 安装 Java 环境
sudo apt update
sudo apt install openjdk-8-jdk
4. 安装 Hadoop
可以通过 wget
下载 Hadoop,但可能速度较慢。建议在本地官网下载,然后上传到虚拟机。
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz
tar -xzvf hadoop-3.3.5.tar.gz
sudo mv hadoop-3.3.5 /usr/local/hadoop
5. 配置环境变量
vim ~/.bashrc
编辑 ~/.bashrc
文件,添加以下内容:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
使配置生效:
source ~/.bashrc
6. 配置 Hadoop
在 /usr/local/hadoop/etc/hadoop/
目录下配置以下文件:
6.1 core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>