本文目录导读:
《Hadoop集群完全分布式搭建详细步骤》
环境准备
1、操作系统选择与安装
- 选择合适的Linux发行版,如CentOS 7,在多台服务器(至少3台,这里假设3台分别命名为master、slave1、slave2)上安装CentOS 7操作系统,确保网络连接正常。
图片来源于网络,如有侵权联系删除
- 在安装过程中,注意设置静态IP地址,例如在CentOS 7中,可以通过编辑/etc/sysconfig/network - scripts/ifcfg - eth0
(假设网卡为eth0)文件,设置IP地址、子网掩码、网关和DNS等网络参数。
2、安装JDK
- 从Oracle官网下载JDK安装包(如jdk - 8uXXX - linux - x64.tar.gz)。
- 在每台服务器上创建/usr/java
目录,将下载的JDK压缩包上传到该目录并解压,tar - zxvf jdk - 8uXXX - linux - x64.tar.gz
。
- 配置环境变量,编辑/etc/profile
文件,添加以下内容:
```bash
export JAVA_HOME=/usr/java/jdk1.8.0_XXX
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
```
- 使环境变量生效:source /etc/profile
。
3、关闭防火墙和SELinux
- 关闭防火墙:systemctl stop firewalld
,systemctl disable firewalld
。
- 关闭SELinux:编辑/etc/selinux/config
文件,将SELINUX=enforcing
修改为SELINUX=disabled
,然后重启服务器。
配置SSH免密登录
1、生成密钥对
- 在master节点上执行ssh - keygen - t rsa
,一路回车,生成公钥和私钥对。
2、分发公钥
- 将master节点的公钥复制到slave1和slave2节点上,首先在master节点上执行ssh - copy - id root@slave1
和ssh - copy - id root@slave2
,然后按照提示输入slave1和slave2节点的密码,这样就可以实现master节点到slave节点的免密登录。
安装和配置Hadoop
1、下载和安装Hadoop
- 从Hadoop官方网站下载稳定版本的Hadoop(如hadoop - 3.3.0.tar.gz)。
- 在每台服务器上创建/usr/local/hadoop
目录,将下载的Hadoop压缩包上传到该目录并解压,tar - zxvf hadoop - 3.3.0.tar.gz
。
2、配置Hadoop核心文件
hadoop - env.sh:编辑/usr/local/hadoop/etc/hadoop/hadoop - env.sh
文件,设置JAVA_HOME
变量为之前安装JDK的路径,export JAVA_HOME=/usr/java/jdk1.8.0_XXX
。
core - site.xml:编辑/usr/local/hadoop/etc/hadoop/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>
```
hdfs - site.xml:编辑/usr/local/hadoop/etc/hadoop/hdfs - site.xml
文件,添加以下内容:
```xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
```
mapred - site.xml:从mapred - site.xml.template
复制得到mapred - site.xml
,编辑mapred - site.xml
文件,添加以下内容:
```xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
图片来源于网络,如有侵权联系删除
</configuration>
```
yarn - site.xml:编辑/usr/local/hadoop/etc/hadoop/yarn - site.xml
文件,添加以下内容:
```xml
<configuration>
<property>
<name>yarn.resourcemanager.hosts</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux - services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
```
3、配置slaves文件
- 编辑/usr/local/hadoop/etc/hadoop/slaves
文件,将slave1和slave2的主机名分别写入文件,每行一个主机名。
启动Hadoop集群
1、格式化NameNode
- 在master节点上,进入/usr/local/hadoop/bin
目录,执行hdfs namenode - format
命令,格式化NameNode。
2、启动集群
- 在master节点上,进入/usr/local/hadoop/sbin
目录,执行start - all.sh
命令,启动Hadoop集群,可以通过jps
命令在master节点上查看NameNode、ResourceManager等进程是否启动,在slave节点上查看DataNode、NodeManager等进程是否启动。
测试Hadoop集群
1、创建HDFS目录并上传文件
- 在master节点上,执行hdfs dfs - mkdir /test
命令创建一个名为test
的HDFS目录。
- 然后执行hdfs dfs - put /etc/profile /test
命令,将本地的/etc/profile
文件上传到/test
目录下。
2、运行MapReduce示例程序
- 在master节点上,进入/usr/local/hadoop/share/hadoop/mapreduce
目录,执行hadoop jar hadoop - mapreduce - examples - 3.3.0.jar wordcount /test/profile /test/output
命令,运行WordCount示例程序,统计/test/profile
文件中的单词数量,输出结果将保存在/test/output
目录下。
通过以上步骤,就可以成功搭建一个Hadoop完全分布式集群,并进行基本的测试操作,在实际应用中,还需要根据具体的业务需求和环境进行进一步的优化和配置。
评论列表