本文目录导读:
《Hadoop分布式集群搭建详细教程》
环境准备
1、硬件要求
- 至少需要三台服务器(为了演示分布式集群的特性,实际生产环境中根据数据量和负载需求可能会更多),这些服务器的配置可以根据实际需求调整,但建议每台服务器具有足够的内存(如8GB以上)、磁盘空间(如100GB以上)和适当的CPU核心数(如4核以上)。
2、操作系统安装与配置
- 选择合适的操作系统,如CentOS 7或Ubuntu 18.04,这里以CentOS 7为例。
- 在每台服务器上安装CentOS 7操作系统,安装过程中注意网络配置,确保每台服务器都能互相通信,可以设置静态IP地址,例如将服务器1的IP设置为192.168.1.101,服务器2的IP设置为192.168.1.102,服务器3的IP设置为192.168.1.103。
- 关闭防火墙和SELinux,在CentOS 7中,可以使用命令“systemctl stop firewalld”关闭防火墙,使用“setenforce 0”临时关闭SELinux,修改“/etc/selinux/config”文件中的“SELINUX = disabled”来永久关闭SELinux。
3、软件安装与配置
- 安装Java环境,Hadoop运行需要Java环境支持,在每台服务器上安装JDK,可以从Oracle官网下载适合的JDK版本,例如JDK 8,下载完成后,解压到指定目录,如“/usr/local/java”,然后设置环境变量,在“/etc/profile”文件中添加以下内容:
```bash
export JAVA_HOME=/usr/local/java/jdk1.8.0_XXX
export PATH=$PATH:$JAVA_HOME/bin
```
保存文件后,执行“source /etc/profile”使环境变量生效。
Hadoop安装
1、下载Hadoop
- 从Hadoop官方网站(https://hadoop.apache.org/)下载适合的Hadoop版本,这里以Hadoop 3.3.0为例,将下载的压缩包解压到指定目录,如“/usr/local/hadoop”。
2、配置Hadoop环境变量
- 在“/etc/profile”文件中添加以下内容:
```bash
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
```
执行“source /etc/profile”使环境变量生效。
3、Hadoop核心配置文件修改
hadoop - env.sh:在“$HADOOP_HOME/etc/hadoop/hadoop - env.sh”文件中,设置Java环境变量,找到“export JAVA_HOME=${JAVA_HOME}”这一行,将其修改为“export JAVA_HOME=/usr/local/java/jdk1.8.0_XXX”(根据实际的Java安装路径)。
core - site.xml:
```xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
```
这里假设将其中一台服务器(如192.168.1.101)作为主节点(命名为master),“hadoop.tmp.dir”指定了Hadoop临时文件的存储目录。
hdfs - site.xml:
```xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/hdfs/data</value>
</property>
</configuration>
```
“dfs.replication”设置数据块的副本数为3,适合在3台服务器的集群中,以保证数据的可靠性。
mapred - site.xml:
```xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
```
yarn - site.xml:
```xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux - services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
```
集群部署
1、设置主机名和主机映射
- 在每台服务器上,使用“hostnamectl set - hostname [主机名]”命令设置主机名,如在主节点上设置为“master”,在从节点上分别设置为“slave1”和“slave2”。
- 在每台服务器的“/etc/hosts”文件中添加主机映射关系,
```
192.168.1.101 master
192.168.1.102 slave1
192.168.1.103 slave2
```
2、配置SSH免密登录
- 在主节点(master)上,使用“ssh - keygen - t rsa”命令生成SSH密钥对,然后将公钥“id_rsa.pub”内容追加到每台服务器(包括自身)的“authorized_keys”文件中,可以使用“ssh - copy - id [用户名]@[目标主机名或IP]”命令来方便地复制公钥,在主节点上执行“ssh - copy - id root@master”、“ssh - copy - id root@slave1”和“ssh - copy - id root@slave2”。
3、启动Hadoop集群
- 在主节点(master)上,首先格式化HDFS文件系统,执行“hdfs namenode - format”命令,这一步只需要在首次启动集群时执行一次。
- 然后启动Hadoop集群的各个组件,可以使用“start - all.sh”命令来启动HDFS(NameNode和DataNode)和YARN(ResourceManager和NodeManager)等组件。
- 通过浏览器访问Hadoop的管理界面,在浏览器中输入“http://master:9870”可以访问HDFS的管理界面,输入“http://master:8088”可以访问YARN的管理界面。
集群测试
1、创建测试文件并上传到HDFS
- 在主节点上创建一个测试文件,echo 'Hello Hadoop' > test.txt”,然后使用“hdfs dfs - put test.txt /”命令将测试文件上传到HDFS的根目录下。
2、运行MapReduce示例程序
- Hadoop自带了一些MapReduce示例程序,可以运行“hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop - mapreduce - examples - 3.3.0.jar wordcount /test.txt /output”来执行一个简单的单词计数程序。“/test.txt”是输入文件在HDFS中的路径,“/output”是输出结果在HDFS中的路径,运行完成后,可以通过“hdfs dfs - cat /output/part - r - 00000”查看输出结果。
通过以上步骤,我们就完成了一个基本的Hadoop分布式集群的搭建、部署和初步测试,在实际应用中,还需要根据具体的业务需求对集群进行进一步的优化和管理,如调整资源分配、监控集群性能等。
评论列表