一、安装及配置虚拟机
1.创建Linux虚拟机
- 打开虚拟化软件:首先,你需要打开你的虚拟化软件,如VMware Workstation或VirtualBox等。
- 新建虚拟机:在软件界面中,选择“新建虚拟机”或类似的选项。
- 配置虚拟机:
- 兼容性设置:根据软件提示,选择合适的兼容性设置。
- 安装操作系统:选择“稍后安装操作系统”,因为通常我们会在创建虚拟机后再挂载操作系统镜像。
- 选择操作系统类型:根据你的需求,选择Linux作为操作系统类型,并选择你希望安装的Linux发行版,如CentOS、Ubuntu等。
- 配置虚拟机硬件:
- 名称和位置:为你的虚拟机命名,并选择存储位置。
- 处理器和内存:根据你的物理机性能和需求,配置虚拟机的处理器数量和内存大小。
- 网络:配置虚拟机的网络连接方式,如桥接模式、NAT模式或仅主机模式。
- 硬盘:为虚拟机创建虚拟硬盘,并设置其大小和存储类型。
- 完成创建:确认所有配置后,完成虚拟机的创建。
- 安装Linux操作系统:
- 挂载镜像:在虚拟机设置中,将你之前下载的Linux操作系统镜像挂载到虚拟机的光驱或USB设备上。
- 启动虚拟机:启动虚拟机,进入安装界面。
- 进行安装:按照屏幕提示,选择语言、时区等设置,然后进行系统安装。这通常包括分区硬盘、设置root密码、创建用户等步骤。
2.设置固定IP地址
- 查看当前IP地址:
- 在虚拟机中,使用命令
ip a
来查看当前的IP地址信息。这将显示虚拟机的网络接口以及分配的IPv4地址和子网掩码等。
- 在虚拟机中,使用命令
- 编辑网卡配置文件:
- 通常,虚拟机的网络配置文件位于
/etc/sysconfig/network-scripts/
目录下,文件名类似于ifcfg-ensXX
(其中XX
是网络接口的名称)。 - 使用文本编辑器(如
vi
或nano
)打开该配置文件。 - 将
BOOTPROTO
字段的值从dhcp
(动态主机配置协议)更改为static
(静态模式)。 - 添加或修改以下字段以设置静态IP地址、子网掩码、网关和DNS服务器:
IPADDR
:静态IP地址NETMASK
:子网掩码GATEWAY
:网关地址DNS1
和DNS2
:首选和备用DNS服务器地址
- 如果
ONBOOT
字段的值为no
,请将其更改为yes
,以确保网络接口在启动时自动激活。
- 通常,虚拟机的网络配置文件位于
- 重启网络服务:
- 保存并关闭配置文件后,重启虚拟机的网络服务以使更改生效。这通常可以通过执行
systemctl restart network
或service network restart
命令来完成。
- 保存并关闭配置文件后,重启虚拟机的网络服务以使更改生效。这通常可以通过执行
- 验证设置:
- 使用
ip a
命令再次查看虚拟机的IP地址信息,确认是否已成功设置为静态IP地址。 - 尝试从虚拟机ping一个外部地址(如百度或其他网站的IP地址),以验证虚拟机是否可以访问外网。
- 使用
3.远程连接虚拟机
- 确保虚拟机已安装SSH服务器:
- 在虚拟机的Linux系统中,使用命令
sudo apt install openssh-server
来安装OpenSSH服务器。安装过程中,根据提示输入“Y”以继续安装。 - 安装完成后,你可以使用
sudo service ssh restart
命令来重启SSH服务。
- 在虚拟机的Linux系统中,使用命令
- 配置SSH服务器:
- 有时,你可能需要编辑SSH配置文件
/etc/ssh/sshd_config
。使用文本编辑器打开该文件,并检查或修改以下配置:PermitRootLogin yes
:允许root用户登录。PasswordAuthentication yes
:允许密码验证。ProhibitPasswordAuthentication no
:如果不存在这个配置,或者其值为“yes”,请修改为“no”,表示允许密码认证。
- 修改后,保存并退出编辑器,然后重启SSH服务以应用更改。
- 有时,你可能需要编辑SSH配置文件
- 查询虚拟机IP地址:
- 在虚拟机内部,使用
ifconfig
或ip addr
命令来查看虚拟机的IP地址。
- 在虚拟机内部,使用
- 在本地计算机上连接SSH:
- 在本地计算机上,打开终端或SSH客户端软件。
- 输入
ssh 用户名@虚拟机IP地址
命令,其中“用户名”是你在虚拟机上创建的SSH用户名,“虚拟机IP地址”是你在上一步中查询到的IP地址。 - 如果这是首次连接,系统可能会提示你确认虚拟机的公钥。输入“yes”以接受公钥,并保存至本地
known_hosts
文件。 - 输入虚拟机的用户密码,成功验证后即可建立SSH连接。
二、搭建Hadoop完全分布式集群
1.在Linux下安装Java
- 检查本地系统环境:首先,你需要检查你的Linux系统版本和内核版本,确保它们与你要安装的Java版本兼容。
- 更新软件包:打开终端,并执行
sudo apt update
命令来更新软件包列表并获取最新的软件包信息。这一步是确保你能够获取到最新的Java安装包。 - 安装Java运行时环境(JRE):默认情况下,Ubuntu软件源中提供了OpenJDK,它是Java的开源实现。你可以使用
sudo apt install default-jre
命令来安装默认的JRE(Java运行时环境)。安装过程中,你将会看到一个确认提示,按下回车键继续安装。安装完成后,JRE将会被配置为系统的默认Java版本。 - 安装Java开发工具包(JDK):如果你需要进行Java开发,你还需要安装Java开发工具包(JDK)。在终端中执行
sudo apt install default-jdk
命令来安装JDK。同样地,安装过程中会有一个确认提示,按下回车键继续安装。 - 验证Java安装结果:使用
java -version
命令来检查Java版本。如果Java已成功安装,将显示Java的版本信息。
2.修改配置文件
- 选择文本编辑器:首先,你需要选择一个文本编辑器来打开和编辑配置文件。常用的编辑器包括
vi
、vim
、nano
等。这些编辑器在大多数Linux发行版中都是预装的。 - 确定配置文件位置:根据你要修改的配置项,找到对应的配置文件。配置文件通常位于
/etc
目录下或其子目录中,例如/etc/sysconfig
、/etc/httpd
等。有时候,配置文件也可能位于应用程序的安装目录下。 - 打开配置文件:使用选定的文本编辑器打开配置文件。例如,使用
vi
编辑器打开/etc/sysctl.conf
文件,可以运行sudo vi /etc/sysctl.conf
命令。 - 修改配置:在编辑器中,定位到要修改的配置项,并进行相应的更改。注意,修改时要谨慎,避免误操作导致系统或应用程序出现问题。
- 保存并退出:完成修改后,保存文件并退出编辑器。在
vi
或vim
中,通常可以按Esc
键退出编辑模式,然后输入:wq
保存并退出,或输入:q!
强制退出不保存。
3.克隆虚拟机
- 打开虚拟机管理软件,如VMware Workstation或VirtualBox。
- 在虚拟机列表中,选中要克隆的虚拟机,然后右键点击选择“管理”或类似的选项。
- 在弹出的菜单中,选择“克隆”或“复制”选项。这将会启动克隆向导。
- 在克隆向导中,选择克隆的类型。通常有完整克隆和链接克隆两种选择。完整克隆会创建一个完全独立的虚拟机,与原始虚拟机没有任何关联。链接克隆则依赖于原始虚拟机,如果原始虚拟机损坏,链接克隆将无法使用。根据需求选择合适的克隆类型。
- 选择克隆虚拟机的存储位置,并为其命名。
- 点击“下一步”或“完成”按钮,开始克隆过程。这可能需要一些时间,具体取决于虚拟机的大小和性能。
- 克隆完成后,你将在虚拟机列表中看到新的克隆虚拟机。
4.配置SSH免密登录
- 生成密钥对:
- 在客户端上,打开终端并运行
ssh-keygen -t rsa
命令来生成RSA类型的密钥对。这个命令会提示你选择一个保存密钥的位置(默认为~/.ssh/id_rsa
)以及是否设置一个密码短语(passphrase)。你可以选择不设置密码短语以简化后续步骤,但这样可能会降低安全性。 - 运行命令后,将生成两个文件:私钥(
id_rsa
)和公钥(id_rsa.pub
)。私钥应该保留在本地,而公钥则需要复制到目标服务器上。
- 在客户端上,打开终端并运行
- 复制公钥到目标服务器:
- 使用
ssh-copy-id
命令将公钥复制到目标服务器。命令格式为ssh-copy-id <用户名>@<目标服务器IP地址>
。例如,如果用户名是john
,目标服务器IP地址是192.168.1.100
,则命令为ssh-copy-id john@192.168.1.100
。 - 第一次运行此命令时,系统可能会提示你输入目标服务器的登录密码。输入正确的密码后,公钥将被复制到目标服务器的
~/.ssh/authorized_keys
文件中。
- 使用
- 测试免密登录:
- 尝试使用SSH连接到目标服务器,命令为
ssh <用户名>@<目标服务器IP地址>
。如果一切正常,你应该能够成功连接到服务器而无需输入密码。
- 尝试使用SSH连接到目标服务器,命令为
- 可选配置:
- 为了进一步提高安全性,你可以考虑限制SSH访问的源IP地址、禁用root登录、使用更强大的加密算法等。
- 另外,定期更换密钥对也是一个好的安全实践。
5.配置时间同步服务
- 安装时间同步软件:
- 在Linux系统中,常用的时间同步软件有NTP(Network Time Protocol)和Chrony。你可以根据系统的需求和偏好选择其中一个进行安装。在大多数Linux发行版中,你可以使用包管理器(如yum或apt)来安装这些软件。
- 例如,在CentOS上安装Chrony,你可以运行
yum install chrony
命令。在Ubuntu上安装NTP,你可以运行apt-get install ntp
命令。
- 启动时间同步服务:
- 安装完成后,你需要启动时间同步服务。对于Chrony,你可以使用
systemctl start chronyd
命令来启动服务。对于NTP,相应的命令是systemctl start ntpd
。 - 确保服务在系统启动时自动运行,你可以使用
systemctl enable chronyd
(或ntpd
)命令来实现。
- 安装完成后,你需要启动时间同步服务。对于Chrony,你可以使用
- 配置NTP服务器:
- 你需要配置NTP服务器以指定可靠的时间源。这通常涉及编辑NTP或Chrony的配置文件。配置文件的位置取决于你使用的Linux发行版和软件。
- 在配置文件中,你可以指定一个或多个NTP服务器地址。这些服务器应该是可信的、网络可达的,并且能够提供准确的时间信息。
- 你还可以配置其他选项,如同步间隔、偏移容忍度等,以满足你的特定需求。
- 允许客户端连接:
- 确保NTP服务器配置允许客户端进行连接和同步。这通常涉及配置防火墙规则或NTP服务器的访问控制列表。
- 你还可以配置NTP服务器的广播或多播功能,以便在局域网内广播时间信息。
- 在客户端配置时间同步:
- 对于需要同步时间的客户端,你需要配置它们以连接到NTP服务器并自动同步时间。这通常涉及安装相应的客户端软件(如NTP或Chrony客户端)并配置其连接到指定的NTP服务器。
- 确保客户端在系统启动时自动启动时间同步服务,并定期检查时间同步状态以确保准确性。
- 测试和验证:
- 完成配置后,你应该测试和验证时间同步服务的准确性和可靠性。你可以使用
date
命令来检查客户端和服务器的时间是否一致,或者使用专门的工具来监测时间偏差和同步情况。
- 完成配置后,你应该测试和验证时间同步服务的准确性和可靠性。你可以使用
6.启动和关闭Hadoop集群
启动Hadoop集群:
- 首先,需要切换到Hadoop的sbin文件目录中,例如使用命令
cd /opt/server/hadoop/sbin/
。 - 在启动Hadoop集群之前,可能需要格式化HDFS文件系统,使用命令
hadoop namenode -format
。 - 启动Hadoop集群的服务进程。这通常包括启动HDFS(Hadoop分布式文件系统)的所有节点上的NameNode(主节点)和DataNode(数据节点)服务,以及启动YARN(Hadoop资源管理器)的所有节点上的ResourceManager(资源管理器)和NodeManager(节点管理器)服务。可以使用
./start-dfs.sh
或start-dfs.sh
命令启动HDFS,使用./start-yarn.sh
或start-yarn.sh
命令启动YARN。 - 如果需要使用MapReduce历史服务器来查看作业历史信息,可以在一个节点上启动MapReduce历史服务器服务。
- 使用jps命令查看进程,确保所有服务都已成功启动。
- 访问Hadoop的web网站,通常使用虚拟机IP地址加端口号,例如
192.168.191.131:9870
。
关闭Hadoop集群:
关闭Hadoop集群的过程相对简单,通常涉及到停止相关服务进程。具体的命令可能因Hadoop版本和配置的不同而有所差异,但通常可以通过类似stop-dfs.sh
和stop-yarn.sh
的命令来停止HDFS和YARN的服务。
7.监控Hadoop集群
- 使用Hadoop自带的监控工具:
- Hadoop集群自带了一些监控工具,如Hadoop管理界面(通常是
http://<主机名>:50070
)和YARN管理界面(通常是http://<主机名>:8088
)。通过这些界面,可以查看集群的状态、任务运行情况、资源使用情况等信息。 - 还可以使用Hadoop Admin UI、Hadoop Resource Manager、Hadoop NameNode等自带的监控工具,来更详细地查看集群的运行情况。
- Hadoop集群自带了一些监控工具,如Hadoop管理界面(通常是
- 使用第三方监控工具:
- 除了Hadoop自带的监控工具外,还可以使用一些第三方监控工具来更全面地监控Hadoop集群。这些工具通常提供了更加丰富的监控指标和可视化界面,如Ambari、Cloudera Manager、Ganglia等。
- 这些工具能够监控集群的各种指标,如CPU利用率、内存使用情况、磁盘IO、数据节点状态等,并提供告警通知功能,当集群出现异常情况时能够及时发出警告。
- 配置邮件、短信等告警通知:
- 为了在集群出现问题时能够及时得到通知,可以配置邮件、短信等告警通知方式。这样,当监控工具检测到集群的异常或性能指标超出阈值时,可以自动发送通知给管理员,以便及时处理。
- 集成其他系统监控工具:
- Hadoop集群也可以与其他系统监控工具进行集成,如Nagios、Zabbix、Prometheus等。这些工具通常具有强大的监控和报警功能,可以与其他系统和应用进行集成,提供统一的监控和管理界面。