hadoop集群搭建

Hadoop安装配置与MapReduce词频统计

工具:

  1. VMware® Workstation 16 Pro
  2. hadoop-3.3.1.tar.gz
  3. jdk-8u202-linux-x64.tar.gz
  4. CentOS-7-x86_64-DVD-2009.iso
  5. Xftp-8.0.0057p.exe
  6. Xshell-8.0.0057p.exe

  • 创建虚拟机

Tips:

1.网络和主机名 –》 打开网络,   主机名设置为hadoop1

2.软件选择-》Gnone桌面

3.添加hadoop用户,密码为hadoop

  • 克隆虚拟机

完整克隆

  • 配置虚拟机

(1)修改主机名

hostnamectl  set-hostname hadoop2            

bash

hostnamectl  set-hostname hadoop3

bash

(2)修改主机名与IP映射

ip a 查看地址

vi /etc/hosts    //三台主机都要修改,修改的ip地址是自己电脑上的

192.168.1.132 hadoop1

192.168.1.133 hadoop2

192.168.1.134 hadoop3

vi编辑器的使用技巧

o下一行插入

esc退出编辑模式

:wq 写入并退出

(3)修改静态静态IP

1.修改网卡信息

su

vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO="static"

ONBOOT="yes"

IPADDR="192.168.1.132"                  

NETMASK="255.255.255.0"

GATEWAY="192.168.1.2"

DNS="8.8.8.8"

Tips: hadoop1 hadoop2 hadoop3三个IP不一样

2.重启网络服务

systemctl restart network

ip a  //查看本机IP信息

(4)免密

ssh-keygen -t rsa   //在三台主机都要生成

ssh-copy-id hadoop1 //在hadoop1节点执行这三个命令

ssh-copy-id hadoop2

ssh-copy-id hadoop3

  • 安装JDK

(1)创建目录(三个节点都要创建)

mkdir -p /export/data

mkdir -p /export/servers

mkdir -p /export/software

(2)上传jdk文件

使用xftp上传文件到hadoop1

(3)解压并修改环境变量

cd /root

tar -xvzf jdk-8u202-linux-x64.tar.gz -C /export/servers/

vi /etc/profile

export JAVA_HOME=/export/servers/jdk1.8.0_202

export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile

java -version

(4)分发

scp -r /export/servers/ jdk1.8.0_202 root@hadoop2:/export/servers/

scp -r /export/servers/ jdk1.8.0_202 root@hadoop3:/export/servers/

scp /etc/profile root@hadoop2:/etc/

scp /etc/profile root@hadoop3:/etc/

source /etc/profile

  • 安装Hadoop

(1)上传hadoop压缩文件

(2)解压并修改环境变量

cd /root

tar -zxvf /root/hadoop-3.3.1.tar.gz -C /export/servers

vi /etc/profile

export HADOOP_HOME=/export/servers/hadoop-3.3.1

export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

source /etc/profile

hadoop version

(3)修改配置文件

cd /export/servers/hadoop-3.3.1/etc/hadoop

vi hadoop-env.sh

export JAVA_HOME=/export/servers/jdk1.8.0_202

export HDFS_NAMENODE_USER=root

export HDFS_DATANODE_USER=root

export HDFS_SECONDARYNAMENODE_USER=root

export YARN_RESOURCEMANAGER_USER=root

export YARN_NODEMANAGER_USER=root

vi core-site.xml

<property>

    <name>fs.defaultFS</name>

    <value>hdfs://hadoop1:9000</value>

</property>

<property>

    <name>hadoop.tmp.dir</name>

    <value>/export/data/hadoop-3.3.1</value>

</property>

<property>

   <name>hadoop.http.staticuser.user</name>

   <value>root</value>

</property>

<property>

    <name>hadoop.proxyuser.root.hosts</name>

    <value>*</value>

</property>

<property>

    <name>hadoop.proxyuser.root.groups</name>

    <value>*</value>

</property>

<property>

    <name>fs.trash.interval</name>

    <value>1440</value>

</property>

vi hdfs-site.xml

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<property>

    <name>dfs.namenode.secondary.http-address</name>

    <value>hadoop2:9868</value>

</property>

vi mapred-site.xml

<property>

    <name>mapreduce.framework.name</name>

    <value>yarn</value>

</property>

<property>

    <name>mapreduce.jobhistory.address</name>

    <value>hadoop1:10020</value>

</property>

<property>

   <name>mapreduce.jobhistory.Webapp.address</name>

    <value>hadoop1:19888</value>

</property>

<property>

    <name>yarn.app.mapreduce.am.env</name>

    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>

</property>

<property>

    <name>mapreduce.map.env</name>

    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>

</property>

<property>

    <name>mapreduce.reduce.env</name>

 <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>

</property>

vi yarn-site.xml

<property>

    <name>yarn.resourcemanager.hostname</name>

    <value>hadoop1</value>

</property>

<property>

    <name>yarn.nodemanager.aux-services</name>

    <value>mapreduce_shuffle</value>

</property>

<property>

    <name>yarn.nodemanager.pmem-check-enabled</name>

    <value>false</value>

</property>

<property>

    <name>yarn.nodemanager.vmem-check-enabled</name>

    <value>false</value>

</property>

<property>

    <name>yarn.log-aggregation-enable</name>

    <value>true</value>

</property>

<property>

    <name>yarn.log.server.url</name>

    <value>http://hadoop1:19888/jobhistory/logs</value>

</property>

<property>

    <name>yarn.log-aggregation.retain-seconds</name>

    <value>604800</value>

</property>

vi workers

hadoop2

hadoop3

(4)分发

scp -r /export/servers/hadoop-3.3.1 root@hadoop2:/export/servers/

scp -r /export/servers/hadoop-3.3.1 root@hadoop3:/export/servers/

scp /etc/profile root@hadoop2:/etc

scp /etc/profile root@hadoop3:/etc

source /etc/profile   (hadoop2、hadoop3都需要)

source /etc/profile

(5)格式化HDFS

hdfs namenode -format (在hadoop1格式化一次)

如果格式化多了,修改clusterid 使datanode的clusterid与namenode的一致

(6)启动Hadoop

第一种方式:

start-all.sh (在hadoop1上启动)  //自动启动HDFS和YARN

第二种方式:

start-dfs.sh (在hadoop1上启动)   //启动HDFS 

(hadoop1进程: NameNode 

hadoop2进程:DataNode SecondaryNameNode 

hadoop3进程:DataNode)

start-yarn.sh(在hadoop1上启动)

(hadoop1进程: ResourceManager

hadoop2进程:NodeManager 

hadoop3进程:NodeManager)

(7)查看Hadoop运行状态

Jps

(8)WebUI查看集群状态

1.关防火墙

systemctl status firewalld

systemctl stop firewalld

systemctl disable firewalld

如果进入安全模式

hdfs dfsadmi -safemode leave

关闭安全模式

浏览器打开: http://192.168.1.132:9870

    •  词频统计

(1)准备文本数据

vi word.txt

hello world

hello hadoop

hello hdfs

hello yarn

(2) 创建目录

hdfs dfs -mkdir -p /wordcount/input

(3) 上传文件

hdfs dfs -put /root/word.txt /wordcount/input

(4) 查看文件是否上传成功

http://192.168.1.132:9870

(5) 运行MapReduce程序

cd /export/servers/hadoop-3.3.1/share/hadoop/mapreduce/

ll

hadoop jar hadoop-mapreduce-examples-3.3.1.jar wordcount /wordcount/input/ /wordcount/output

hadoop dfsadmin -safemode leave

(6) 查看MapReduce程序运行状态

http://192.168.1.132:8088

hdfs dfs -cat /wordcount/output/part-r-00000

<think>好的,用户想了解如何搭建Hadoop集群的详细步骤和配置。首先,我需要回忆之前学过的Hadoop集群搭建知识,确保步骤正确。记得Hadoop集群通常分为完全分布式模式,需要多台机器,比如hadoop102、hadoop103、hadoop104这样的命名。用户提供的引用里提到了设置这些节点,并测试SSH连接,还有上传安装包。可能这些是关键的步骤。 接下来,我应该按照逻辑分步骤讲解。首先准备环境,包括服务器、Java安装、主机名和hosts文件的配置,以及SSH免密登录的设置。这些都是搭建集群的基础。然后,安装Hadoop,解压安装包,配置环境变量。接下来是核心的配置文件修改,比如hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml以及workers文件。每个配置文件的作用需要简要说明,比如core-site.xml设置NameNode地址,hdfs-site.xml配置副本数等。 配置完成后,需要同步到其他节点,这里可以用scp命令或者rsync。然后初始化HDFS,启动集群,最后验证是否成功,比如jps查看进程,或者访问Web界面。可能用户在实际操作中会遇到问题,比如SSH连接失败,端口占用,或者配置文件错误,这些常见问题应该提及解决方案。 另外,用户的问题可能涉及到具体的配置参数,比如副本数设置成多少合适,或者资源管理器的配置,这些需要根据集群规模给出建议。比如小型集群副本数可以设为2,但生产环境通常3。还有安全模式的问题,可能需要关闭防火墙或者配置SELinux。 需要确保所有的命令和路径都是正确的,比如JAVA_HOME的路径是否正确,Hadoop的安装目录是否一致。同时,用户可能需要知道如何验证集群是否正常工作,比如运行一个测试的MapReduce作业,或者检查日志文件。 最后,生成相关问题的时候,应该围绕用户可能进一步关心的问题,比如配置参数优化、添加节点、安全配置、性能调优等。这些能帮助用户更深入理解集群管理和维护。</think>### Hadoop集群搭建步骤详解 #### 一、环境准备(3节点示例) 1. **服务器规划** - hadoop102(NameNode + DataNode) - hadoop103(ResourceManager + DataNode) - hadoop104(SecondaryNameNode + DataNode) 2. **基础配置** - 所有节点安装JDK 8+并配置环境变量: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ``` - 配置主机名和/etc/hosts文件: ```bash 192.168.1.102 hadoop102 192.168.1.103 hadoop103 192.168.1.104 hadoop104 ``` - 配置SSH免密登录: ```bash ssh-keygen -t rsa ssh-copy-id hadoop102 ssh-copy-id hadoop103 ssh-copy-id hadoop104 ``` #### 二、Hadoop安装与配置 1. **解压安装包** ```bash tar -zxvf hadoop-3.3.6.tar.gz -C /opt/module/ ``` 2. **配置环境变量** ```bash export HADOOP_HOME=/opt/module/hadoop-3.3.6 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 3. **修改核心配置文件** - `etc/hadoop/hadoop-env.sh`: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ``` - `etc/hadoop/core-site.xml`: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop102:8020</value> </property> </configuration> ``` - `etc/hadoop/hdfs-site.xml`: ```xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration> ``` #### 三、集群同步与启动 1. **分发配置到所有节点** ```bash scp -r /opt/module/hadoop-3.3.6 hadoop103:/opt/module/ scp -r /opt/module/hadoop-3.3.6 hadoop104:/opt/module/ ``` 2. **初始化HDFS** ```bash hdfs namenode -format ``` 3. **启动集群** ```bash start-dfs.sh # 启动HDFS start-yarn.sh # 启动YARN ``` #### 四、验证集群状态 1. **进程验证** ```bash jps # hadoop102应显示NameNode/DataNode # hadoop103应显示ResourceManager/NodeManager ``` 2. **Web界面验证** - HDFS状态:`http://hadoop102:9870` - YARN状态:`http://hadoop103:8088` #### 五、常见问题解决 1. **SSH连接失败** - 检查防火墙状态:`systemctl stop firewalld` - 验证公钥是否完整复制到`~/.ssh/authorized_keys` 2. **端口冲突** - 使用`netstat -tunlp | grep 8020`检查默认端口占用情况 3. **HDFS无法格式化** - 删除所有节点的`/tmp/hadoop-*`目录后重试[^1]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值