centos7下搭建hadoop--小白入门

视频演示地址:https://www.bilibili.com/video/BV1bg411c7W7/

一、准备工作

在VMware官网下载虚拟机
在这里插入图片描述
本文使用到的centos为7.8 2003
Apache开源网站上下载hadoop,版本根据自己需要下载,本文采用2.7.7版本
ssh远程工具,本文使用到的有xshell,xftp。
hadoop需要Java的环境,本文使用jdk1.8

二、虚拟机里安装centos

注意:安装后如果提示在这里插入图片描述
大部分原因是BIOS里面未开启,这里每种品牌的电脑的开启有所不同,如果不是很懂,点这询问度娘

安装步骤
在这里插入图片描述
不是很清楚虚拟机配置的小伙伴,这里就选典型。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
输入虚拟机名称与安装路径。
在这里插入图片描述
本地硬盘空间不大的小伙伴,这里就默认就行,也可以根据自己电脑配置,调整大一点。
在这里插入图片描述
现在我们开始选择centos镜像。
在这里插入图片描述
在这里插入图片描述
接下来就是开启虚拟机,进行centos的系统安装啦!
将鼠标定位到这个界面,按下enter键即可开始安装。
在这里插入图片描述
这个检测需要花费一定时间,我们可以按ESC
在这里插入图片描述
选择安装过程中的语言,我这里选择中文,英文好的小伙伴,可以选择英文进行安装。
在这里插入图片描述
这里系统安装位置是需要我们手动选择的。

在这里插入图片描述
因为后面需要用ssh远程软件连接这个centos,这里我就进行一下网络的选择。也可以在安装完成后进行网络配置。
在这里插入图片描述
在这里插入图片描述
下图中,ipv4设置下方法选择手动,ip地址需要在虚拟机中查看虚拟机所在的子网,再进行设置,网关也需要在虚拟机网络设置中查看。
这里查看虚拟机的网络配置,需要注意,手动配置的网关需要和这里面的一样才可以。
在这里插入图片描述
注意:这里查看网卡一定要是VMnet8这个
在这里插入图片描述
下图框选出的就是Linux中需要设置的网关
在这里插入图片描述
我这里的网关是192.168.11.2,所有我刚才就设置的这个网关,每个虚拟机的网关可能不一致,安装时注意查看自己的网关。

注意:(一般情况下,可以跳过这部分,网络按照上面配置不生效时,可以参考一下修改方式)
刚才查看的虚拟机网络配置,实际上就是本地虚拟网卡的配置,如果本地虚拟网卡的配置与刚才的配置不一致,需要进行手动配置一下本地的虚拟网卡,否则,有可能会导致虚拟机上不了网。
这里以win10电脑为例,查看本地虚拟网卡。查看方式许多,这里我使用我常用的方式。在任务栏找到网络图标,右键 打开网络设置在这里插入图片描述在这里插入图片描述
找到这个网卡,右键查看属性
在这里插入图片描述
双击ipv4这点在这里插入图片描述
如不是下图这样,建议手动配置一下,与虚拟机保持一致,若不一致,可能导致虚拟机上不了网。这里的IP地址可以向我这样,最后一位设置为1。

继续回到虚拟机中,进行网络配置。
在这里插入图片描述
在这里插入图片描述
后面我们使用ssh来操作,这里我就选择最小安装。也可以选择图像化安装。
在这里插入图片描述
图形化安装可以看下面这张图,最小安装可跳过下一张图
在这里插入图片描述
点击开始安装后,我们需要设置一下root账户的密码,最小安装可以不用创建用户,图形化安装必须创建用户。
在这里插入图片描述
接下来,就是等待安装完成啦!

我们是使用虚拟机安装来配置hadoop,另外的结点系统,我们可以采用虚拟机克隆的方式来操作。也可以在等待的时间里进行手动安装。手动安装步骤与上面一致。克隆的计算机,我们需要修改网络配置。后面的hadoop从机,我将采用克隆的方式进行。

hadoop主机master配置

登录上刚才安装的系统。我们先测试一下网络是否连接,可以ping一下百度,ping www.baidu.com,ping命令操作后,按下Ctrl + C键进行停止ping测试
在这里插入图片描述
出现上图所示,则表示网络正常连接。
对yum进行升级yum update -y。不进行升级也可以进行后面的操作。
我们先使用yum安装vim编辑器yum install vim -y,系统默认是vi编辑器,vi与vim功能差不多,vim多了语法高亮。
使用命令 ip addr查看当前网络
在这里插入图片描述
我们需要对网络进行静态配置(安装时,未进行网络配置,也可以直接在这里进行网络配置,效果一样)

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="70d3d71f-be8b-4d47-aa48-0783f94c498a"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.11.11"
PREFIX="24" # 也可以是 NETMASK=255.255.255.0
GATEWAY="192.168.11.2"
DNS1="114.114.114.114"
IPV6_PRIVACY="no"

输入命令vim /etc/sysconfig/network-scripts/ifcfg-ens33未安装vim可以使用vi编辑。打开文件后,我们按一下键盘上的i键,进入输入模式,按照我截图地方进行配置即可。IP根据自己实际情况配置。
在这里插入图片描述
按下ESC键退出编辑模式,英文状态下输入:wq回车 进行保存退出,具体命令查看Linux手册。
在这里插入图片描述
配置好之后,需要重启网卡服务。systemctl restart networkservice network restart 通过ip addr确认IP。
在这里插入图片描述

修改hosts文件

vim /etc/hosts添加一下内容。
在这里插入图片描述
再次进行重启网络systemctl restart network

windows系统下测试访问Linux是否成功。
Windows系统下,按下win+R–>输入cmd–>回车打开
在这里插入图片描述
可以ping通就说明本地与Linux之间的网络是可以互通的。

进行到这里,我们就可以使用ssh工具来进行操作啦!

xshell连接Linux

打开xshell软件,新建一个连接。
在这里插入图片描述
点击 连接后 输入用户名和密码 这里我没有创建用户,则使用root账户登录。
我这里安装了xftp,可以在xshell里直接将本地的文件上传的centos中。
在这里插入图片描述
可以直接将需要上传的文件拖动到里面即可上传。
在这里插入图片描述
我这点上传的位置为/root下,上传完成后,我们在xshell里进行查看并解压上传的文件。
在这里插入图片描述
tar.gz格式 解压命令tar -zxvf 包名其中参数v可以不要,加上v则可以在解压时输出信息。
在这里插入图片描述
这样就表示解压成功了。
我们先对jdk重命名一下mv jdk8u265-b01/ jdk1.8。声明一下,里面操作的路径不一定非要和我的一致,也可以选择其他的路径操作。

配置jdk环境变量

Linux下环境变量的配置方式不唯一,这里只使用一种方式配置。
输入命令vim /etc/profile。在文件的末尾加上以下语句。

export JAVA_HOME=/root/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH

在这里插入图片描述

# 配置环境变量后需要source一下
source /etc/profile

# 查看Java环境是否安装成功
java -version

在这里插入图片描述
到这里,Java环境就安装好了。

关闭系统防火墙

这里是本地搭建,三个系统都关闭防火墙。线上模式搭建时,防火墙按需配置。

# 先停止防火墙
systemctl stop firewalld
# 关闭防火墙
systemctl disable firewalld
# 查看防火墙状态
systemctl status firewalld

在这里插入图片描述

自动时间同步

# 安装ntp服务
yum install ntp -y
# 在root账户下创建定时任务
crontab -e
# 在打开的文件中输入以下内容,保存退出即可。
0 1 * * * /usr/sbin/ntpdate ntp1.aliyun.com

crontab命令使用教程,可以参考这篇博文

hadoop配置

# 进入hadoop目录下etc/hadoop里
cd hadoop-2.7.7/etc/hadoop/

在这里插入图片描述

修改hadoop配置文件

查看官方文档
在这里插入图片描述

修改hadoop-env.sh、yarn-env.sh

vim hadoop-env.sh
在这里插入图片描述
在这里插入图片描述
vim yarn-env.sh
在这里插入图片描述
同样的修改Java的路径
在这里插入图片描述

配置core-site.xml

vim core-site.xml

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://192.168.11.11:9000</value>
    <description>192.168.11.11为服务器IP地址,其实也可以使用主机名</description>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/root/hadoop-2.7.7/hadoopDatas/tempDatas</value>
    <description>hadoop临时文件目录,若指定目录不存在,则需要手动创建目录</description>
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>4096</value>
    <description>缓冲区大小</description>
  </property>
  <property>
    <name>fs.trash.interval</name>
    <value>1440</value>
    <description>开启hdfs回收站功能,value单位为分钟,这里设置为24小时候清理回收站</description>
  </property>
</configuration>

配置文件中,我们用了自定义路径,现在将设置好的路径创建出来

# 创建目录
mkdir -p /root/hadoop-2.7.7/hadoopDatas/tempDatas
mkdir -p /root/hadoop-2.7.7/hadoopDatas/namenodeDatas
mkdir -p /root/hadoop-2.7.7/hadoopDatas/datanodeDatas
mkdir -p /root/hadoop-2.7.7/hadoopDatas/snnName
mkdir -p /root/hadoop-2.7.7/hadoopDatas/snnEdits
mkdir -p /root/hadoop-2.7.7/hadoopDatas/nnEdits

在这里插入图片描述

配置hdfs-site.xml

vim hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
        <description>secondary NameNode web管理端口</description>
    </property>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
        <description>NameNode web管理端口</description>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///root/hadoop-2.7.7/hadoopDatas/namenodeDatas</value>
        <description>namenode元数据的存放位置</description>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///root/hadoop-2.7.7/hadoopDatas/datanodeDatas</value>
        <description>datanode元数据的存放位置</description>
    </property>
    <property>
        <name>dfs.namenode.checkpoint.dir</name>
        <value>file:///root/hadoop-2.7.7/hadoopDatas/snnName</value>
        <description>secondary NameNode节点合并临时镜像的存放目前录</description>
    </property>
    <property>
        <name>dfs.namenode.checkpoint.edits.dir</name>
        <value>file:///root/hadoop-2.7.7/hadoopDatas/snnEdits</value>
        <description>secondary NameNode节点合并临时操作的存放目前录</description>
    </property>
    <property>
        <name>dfs.namenode.edits.dir</name>
        <value>file:///root/hadoop-2.7.7/hadoopDatas/nnEdits</value>
        <description>namenode日志文件的存放位置</description>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
        <description>分片数量,伪分布式将其配置成1即可</description>
    </property>
    <property>
        <name>dfs.namenode.hosts</name>
        <value>s1, s2</value>
        <description>s1, s2分别对应DataNode所在服务器主机名</description>
    </property>
    <property>
        <name>dfs.blocksize</name>
        <value>134217728</value>
        <description>大文件系统HDFS块大小默认值为128M</description>
    </property>
    <property>
        <name>dfs.namenode.handler.count</name>
        <value>100</value>
        <description>更多的NameNode服务器线程处理来自DataNodes的RPCS</description>
    </property>
</configuration>

配置mapred-site.xml

安装后没有mapred-site.xml,我们需要复制一份出来使用cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    <description>执行框架设置为Hadoop YARN</description>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
    <name>mapreduce.job.ubertask.enable</name>
    <value>true</value>
    <description>开启MapReduce小任务模式</description>
  </property>
</configuration>

配置yarn-site.xml

vim yarn-site.xml

<configuration>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
    <description>可以写主机名,也可以写主机IP地址</description>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <description>以逗号分隔的服务列表,其中服务名称只能包含A-Z a-z 0-9,不能以数字开头</description>
  </property>
  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    <description>开启日志聚合功能</description>
  </property>
  <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>6004800</value>
    <description>设置聚合日志在hdfs上的保存时间,单位为秒</description>
  </property>
  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>20480</value>
    <description>设置yarn集群内存分配方案,单位为字节</description>
  </property>
  <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>2048</value>
    <description>设置yarn集群内存分配方案,单位为字节</description>
  </property>
  <property>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>2.1</value>
    <description>设置yarn集群内存分配方案</description>
  </property>
</configuration>

配置slaves

vim slaves
数据节点DN的机器名称,可以包含主机master,一行一个主机名

master
s1
s2

hadoop系统变量的配置

# 编辑环境变量
vim /etc/profile

#在配置文件的末尾加上以下内容
export HADOOP_HOME=/root/hadoop-2.7.7
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

# 保存退出后,需要source一下
source /etc/profile

在这里插入图片描述

克隆两个从机

可以先将hadoop的配置完成后,再进行克隆,最后进行免密操作。
克隆操作前,需要先把克隆主机进行关机。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
另外一台从机与上面操作一致。
克隆完成后,在vm里打开从机。从机1与从机2操作类似,这里只留下从机1的操作。

这里需要修改网卡的UUID,由于UUID比较长且vm中不能复制,则这一步留到IP配置后,使用工具连接,再进行操作。

修改IPvim /etc/sysconfig/network-scripts/ifcfg-ens33,与主机不同即可
在这里插入图片描述
重启网络服务,命令与前文提到的一致
在这里插入图片描述
测试网络是否畅通,ping百度测试
在这里插入图片描述

  • 修改主机名(hostnamectl set-hostname s1s1表示修改后的主机名)
    需要重启系统生效。
    在这里插入图片描述
    使用xshell连接上从机,与主机连接方式相同。
    生成网卡的UUID
    在这里插入图片描述
    在这里插入图片描述
    保存,重启网络systemctl restart network
    从机2同样操作。

免密操作

需在克隆完成后进行操作。

操作流程(建议多阅读几次,理解一下流程):
免密需要将每个系统ssh生成的公钥保存在authorized_keys这个文件中,我们分别在主机maser与从机s1、s2上生成秘钥。进入到主机master通过ssh-keygen生成秘钥后的目录,利用cp命令,将id_rsa.pub这个公钥文件复制一份,命名为authorized_keys,然后将带有主机master公钥的authorized_keys文件复制到从机s1中。在从机s1中,将从机s1的公钥追加到带有主机master公钥的authorized_keys文件中。到这里,authorized_keys这个文件就包含了主机master与从机s1的公钥,我们把带有公钥的authorized_keys这个文件复制到从机s2中。继续将从机s2的公钥追加到已经带有两个公钥的authorized_keys文件中,这样从机s2的authorized_keys这个文件就包含了主机master、从机s1、s2的公钥。把带有3个公钥的authorized_keys这个文件复制到主机master、从机s1上,这样主机master、从机s1、s2就都拥有了3个系统的公钥,就可以实现免密操作了。
注意:这些操作在ssh-keygen生成的.ssh目录下进行。复制也是需要复制到.ssh这个目录下。

scp远程命令
Linux中scp命令用于Linux之间复制文件和目录。
语法:scp [可选参数] file_source file_target
file_source :带路径的源文件或文件目录
file_target :带路径的目标文件目录
参数说明:
-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

# 分别在主机、从机上生成秘钥
ssh-keygen -t rsa
# 会在当前目录下生成一个.ssh文件
# 将生成文件目录下的id_rsa.pub复制到authorized_keys
cp id_rsa.pub authorized_keys
# 将authorized_keys文件复制到从机s1中(需要从机中先执行生成秘钥的命令,即ssh-keygen -t rsa)
scp authorized_keys root@s1:/root/.ssh
# 在从机s1上把authorized_keys中追加上s1的公钥
cat id_rsa.pub >> authorized_keys
# 将authorized_keys文件复制到从机s2中(需要从机中先执行生成秘钥的命令,即ssh-keygen -t rsa)
scp authorized_keys root@s2:/root/.ssh
# 在从机s2上把authorized_keys中追加上s2的公钥
cat id_rsa.pub >> authorized_keys
# 把s2上的authorized_keys分别复制到主机master、从机s1上去,这样就可以实现主机与两台从机的免密操作了
scp authorized_keys root@master:/root/.ssh
scp authorized_keys root@s1:/root/.ssh

主机master操作步骤截图
在这里插入图片描述
需要进入到.ssh目录下进行复制文件操作
在这里插入图片描述
在这里插入图片描述
从机生成秘钥与主机类似,这里不赘述。
在这里插入图片描述
从机s2继续将公钥追加到authorized_keys文件中
在这里插入图片描述
验证免密是否成功
主机master ssh登录s1与s2
在这里插入图片描述
图中未输入密码,免密成功
从机s1与s2的验证与master主机验证相似,小伙伴自行验证。

启动hadoop

第一次启动前需要进行初始化操作(主机master上操作)。

hdfs namenode -format

在这里插入图片描述
主机master上启动hadoop

start-all.sh

在这里插入图片描述
从机上再输入jps验证
在这里插入图片描述
在这里插入图片描述

现在我们可以通过主机master的ip地址加上端口(默认的是50070)查看hadoop的一些相关信息。
在这里插入图片描述
在这里插入图片描述
到这里,hadoop的搭建就结束啦!觉得本文有用的,点个赞呗!

  • 27
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 很高兴为您提供CentOS 7搭建Hadoop 3.3.集群的手记。 1. 安装Java 首先,需要安装Java。可以使用以下命令安装OpenJDK 8: sudo yum install java-1.8.-openjdk-devel 2. 下载Hadoop 下载Hadoop 3.3.版本,并将其解压缩到/opt目录下: sudo tar -xzf hadoop-3.3..tar.gz -C /opt 3. 配置Hadoop 进入Hadoop目录并编辑hadoop-env.sh文件: cd /opt/hadoop-3.3. sudo nano etc/hadoop/hadoop-env.sh 将JAVA_HOME设置为Java安装路径: export JAVA_HOME=/usr/lib/jvm/java-1.8.-openjdk 编辑core-site.xml文件: sudo nano etc/hadoop/core-site.xml 添加以下内容: <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:900</value> </property> </configuration> 编辑hdfs-site.xml文件: sudo nano etc/hadoop/hdfs-site.xml 添加以下内容: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hadoop-3.3./data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hadoop-3.3./data/datanode</value> </property> </configuration> 编辑mapred-site.xml文件: sudo cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml sudo nano etc/hadoop/mapred-site.xml 添加以下内容: <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 编辑yarn-site.xml文件: sudo nano etc/hadoop/yarn-site.xml 添加以下内容: <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> </configuration> 4. 启动Hadoop 格式化Hadoop文件系统: sudo bin/hdfs namenode -format 启动Hadoop: sudo sbin/start-all.sh 5. 验证Hadoop 在浏览器中访问http://localhost:987/,可以看到Hadoop集群的状态。 在Hadoop集群中创建一个目录: sudo bin/hdfs dfs -mkdir /test 在Hadoop集群中上传一个文件: sudo bin/hdfs dfs -put etc/hadoop/core-site.xml /test 在Hadoop集群中查看文件: sudo bin/hdfs dfs -ls /test 以上就是CentOS 7搭建Hadoop 3.3.集群的手记,希望对您有所帮助。 ### 回答2: 本篇文章主要介绍了如何在CentOS7系统上搭建Hadoop-3.3.0的集群,并在这个过程中遇到的一些问题和解决方案。 一、环境准备 操作系统:CentOS7 JDK版本:1.8.0_282 Hadoop版本:hadoop-3.3.0.tar.gz(可自行到官网下载) 二、系统设置 1、关闭防火墙 因为Hadoop集群需要互相通信和数据传输,所以需要关闭系统的防火墙,以避免互相之间的阻拦。 systemctl stop firewalld systemctl disable firewalld 2、设置hostname 为了方便节点之间的通信,需要给每个节点设置一个唯一的hostname。可以通过以下命令设置: hostnamectl set-hostname <hostname> 三、安装 JDK Hadoop运行依赖于JDK,需要先安装JDK。这里默认已经安装了openjdk-1.8.0_282版本,因此就不再重复说明了。如果您还没有安装JDK,可以通过以下命令进行安装: yum install java-1.8.0-openjdk-devel.x86_64 四、安装 Hadoop 1、解压缩 Hadoop 将下载好的hadoop-3.3.0.tar.gz复制到/opt/目录下,并解压缩: tar -zxvf hadoop-3.3.0.tar.gz 2、配置Hadoop环境变量 配置Hadoop环境变量,可以方便我们在任何地方都能够使用hadoop相关命令。在/etc/profile.d/目录下创建一个hadoop.sh文件,输入以下内容: export HADOOP_HOME=/opt/hadoop-3.3.0 export PATH=$HADOOP_HOME/bin:$PATH 最后执行以下命令,让环境变量生效: source /etc/profile 3、配置Hadoop 进入hadoop-3.3.0目录下,修改etc/hadoop/hadoop-env.sh文件,将JAVA_HOME指向正确的JDK目录: export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64 接下来修改etc/hadoop/core-site.xml文件,添加以下配置: <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://<NameNode_IP>:9000</value> </property> </configuration> 其中,NameNode_IP需要替换为NameNode的IP地址。 修改etc/hadoop/hdfs-site.xml文件,添加以下配置: <configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hdfs/datanode</value> </property> <property> <name>dfs.namenode.datanode.registration.ip-hostname-check</name> <value>false</value> </property> </configuration> 其中,dfs.replication表示副本数,dfs.namenode.name.dir表示NameNode元数据的存放路径,dfs.datanode.data.dir表示DataNode数据的存放路径,dfs.namenode.datanode.registration.ip-hostname-check设置为false表示关闭IP和hostname的检查,否则可能会导致节点无法正常注册。 最后,在etc/hadoop/mapred-site.xml和etc/hadoop/yarn-site.xml文件中添加以下内容: mapred-site.xml: <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> yarn-site.xml: <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> 五、配置ssh免密登录 在Hadoop集群中,各个节点之间需要相互通信,并且需要使用ssh远程登录操作。为了方便操作,可以实现ssh免密登录,即在各个节点之间可以直接相互访问而无需输入密码。具体实现步骤如下: 1、在每个节点上生成公钥和私钥 ssh-keygen -t rsa 2、将公钥拷贝到各个节点上 ssh-copy-id -i ~/.ssh/id_rsa.pub <hostname> 其中,<hostname>需要替换成对应节点的hostname。 3、测试是否成功 ssh <hostname> 如果可以直接登录而无需输入密码,则表示ssh免密登录配置成功。 六、启动Hadoop集群 1、启动Hadoop 首先需要启动NameNode和DataNode,使用以下命令启动: hadoop-daemon.sh start namenode hadoop-daemon.sh start datanode 然后启动ResourceManager和NodeManager,使用以下命令启动: yarn-daemon.sh start resourcemanager yarn-daemon.sh start nodemanager 启动成功后使用jps命令查看进程,看是否启动正常。 2、验证Hadoop 在启动Hadoop集群之后,可以通过以下命令验证是否正常: hadoop fs -mkdir /test hadoop fs -ls / 如果命令执行没有报错,则表示Hadoop集群启动成功并且在操作系统上正常运行。 以上便是在CentOS7系统上搭建Hadoop-3.3.0集群的过程。在实际操作中可能还会遇到一些其他的问题,需要我们不断的尝试和调试。相信通过这篇文章,读者可以对Hadoop的安装和配置有更深入的理解,并可以顺利搭建自己的Hadoop集群。 ### 回答3: CentOS 7是一种广泛使用的Linux操作系统,用于服务器和桌面应用程序。Hadoop是一个开源的分布式计算框架,专门用于处理大规模数据。在本文中,将介绍如何在CentOS 7上安装Hadoop 3.3.0,并建立Hadoop集群。 1. 安装Java 由于Hadoop是使用Java编写的,因此必须首先在系统上安装Java。可以使用以下命令来安装Oracle Java: ```shell $ sudo yum install java-1.8.0-openjdk-devel ``` Java将安装在`/usr/lib/jvm/java-1.8.0-openjdk`目录中。 2. 配置DNS 为了更好地管理Hadoop集群,可以将每个节点的IP地址映射到相应的主机名。可以在/etc/hosts文件中添加这些条目。例如,假设存在以下主机: - 192.168.1.10:master - 192.168.1.11:slave1 - 192.168.1.12:slave2 可以在每个节点上编辑/etc/hosts文件,添加以下内容: ```shell 192.168.1.10 master 192.168.1.11 slave1 192.168.1.12 slave2 ``` 3. 安装Hadoop 可以从Hadoop官方网站下载Hadoop二进制文件,或者使用以下命令下载并解压缩最新版本: ```shell $ wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz $ tar -xzvf hadoop-3.3.0.tar.gz -C /opt ``` Hadoop将解压缩到/opt/hadoop-3.3.0目录中。 4. 配置Hadoop 接下来需要配置Hadoop。可以在/opt/hadoop-3.3.0/etc/hadoop目录中找到所有Hadoop配置文件。必须编辑以下文件: - core-site.xml - hdfs-site.xml - mapred-site.xml - yarn-site.xml 第一个文件是core-site.xml。在每个节点上打开此文件,并添加以下配置: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000/</value> </property> </configuration> ``` 第二个文件是hdfs-site.xml。在每个节点上打开此文件,并添加以下配置: ```xml <configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hadoop-3.3.0/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hadoop-3.3.0/data/datanode</value> </property> </configuration> ``` 第三个文件是mapred-site.xml。在每个节点上打开此文件,并添加以下配置: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` 最后一个文件是yarn-site.xml。在每个节点上打开此文件,并添加以下配置: ```xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> </configuration> ``` 5. 配置SSH 为了在集群节点之间进行通信,必须配置SSH。可以使用以下命令在每个节点上安装SSH客户端和服务器: ```shell $ sudo yum install openssh-server openssh-clients ``` 要在所有节点上免密码认证,必须使用以下命令生成SSH秘钥: ```shell $ ssh-keygen -t rsa ``` 按照默认设置创建SSH秘钥对,并在使用此命令的过程中将公共SSH秘钥添加到所有节点上的~/.ssh/authorized_keys文件中: ```shell $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ``` 6. 启动Hadoop 现在,可以在集群节点上启动Hadoop。首先要格式化NameNode: ```shell $ /opt/hadoop-3.3.0/bin/hdfs namenode -format ``` 然后,在master节点上启动Hadoop: ```shell $ /opt/hadoop-3.3.0/sbin/start-all.sh ``` 这将启动Hadoop集群中的所有节点。可以在每个节点上检查日志,以确保节点正在正确运行: ```shell $ tail -f /opt/hadoop-3.3.0/logs/*.log ``` 7. 使用Hadoop 现在,可以在Hadoop集群上运行MapReduce作业。可以使用Hadoop的example程序来运行简单的MapReduce任务。例如,可以使用以下命令来运行wordcount程序: ```shell $ /opt/hadoop-3.3.0/bin/hadoop jar /opt/hadoop-3.3.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount input output ``` 该命令将从input目录中读取数据,并将结果写入output目录。可以使用以下命令查看输出: ```shell $ /opt/hadoop-3.3.0/bin/hdfs dfs -cat output/* ``` 以上是搭建Hadoop集群的基本步骤,如果需要实现更复杂的功能,可以在这些基本步骤的基础上进行进一步的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值