Hadoop大数据集群搭建(超详细)

使用了几个学期的实验手册,应该没有啥大问题了,现在分享给大家,希望对你学习hadoop有用

实验环境: Vmware workstation + CentOS 7 + Hadoop 3.1.3

目录

第一步:安装虚拟机

第二步:虚拟机克隆

第三步:网络配置

第四步:ssh服务配置

第五步:安装JDK

第六步:安装Hadoop

第七步:Hadoop集群配置

第八步:格式化文件系统

第九步:启动和关闭hadoop集群

第十步:通过UI界面查看hadoop运行状态

第十一步:hadoop集群初体验


第一步:安装虚拟机

下载地址:下载 VMware Workstation Pro | CN

点击自定义硬件,如果点击弹框有问题,就先点击完成,然后在外边点击自定义硬件(见第二个图)

以上就完成虚拟机的安装了

进去后,创建文件夹

mkdir -p /export/data

mkdir -p /export/servers

mkdir -p /export/software

第二步:虚拟机克隆

搭建集群需要3个虚拟机,hadoop01,hadoop02,hadoop03,已经安装了hadoop01,剩下两个需要用到虚拟机克隆

相同的方法克隆hadoop03

第三步:网络配置

三个虚拟机的ip分别为

192.168.121.134 hadoop01

192.168.121.135 hadoop02

192.168.121.136 hadoop03

1.配置网络的准备工作

编辑-虚拟网络编辑器

然后点击确定,再点确定

设置本机网络(win10举例)

2. 开启3台虚拟机, 配置主机名

vi /etc/hostname       

修改hadoop02和hadoop03的hostname为 hadoop02 和 hadoop03

(注:这是CentOS7的修改方法,CentOS6修改/etc/sysconfig/network)

3. 配置ip映射

vi /etc/hosts

在文件末尾添加以下3行

192.168.121.134 hadoop01

192.168.121.135 hadoop02

192.168.121.136 hadoop03

同时修改hadoop02和hadoop03

4. 修改静态ip

在hadoop01上(如果文件中的参数都没有引号“”,则需要去掉)

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

BOOTPROTO="static"

ONBOOT="yes"

新增以下ip设置

IPADDR="192.168.121.134"

NETMASK="255.255.255.0"

GATEWAY="192.168.121.2"

DNS1="114.114.114.114"

然后在hadoop02和hadoop03上分别设置成121.135和121.136

5. 重启虚拟机

reboot

完成重启后测试下网络是否OK,命令ping www.baidu.com

第四步:ssh服务配置

1. 确认ssh服务已开启(默认已开启)

ps -e | grep sshd

2. 三台机器生成公钥和私钥

ssh-keygen -t rsa

执行该命令,按3下回车

3. 拷贝公钥到另外两台机器

在hadoop01,hadoop02和hadoop03上分别执行以下三行

ssh-copy-id hadoop01

ssh-copy-id hadoop02

ssh-copy-id hadoop03

都执行完毕后,三台机器就可以使用ssh连接而无需输入密码了

测试一下:

在hadoop02上输入ssh hadoop03,能够免密登录

然后exit退出回来hadoop02

==========================   快照    ==================================

第五步:安装JDK

1. 下载JDK

在jave网站上下载

Java Archive Downloads - Java SE 8

jdk-8u161-linux-x64.tar.gz(网站上下载需要注册,可以从群共享里获取)

2. 安装JDK

上传JDK到linux(SecureCRT工具里使用SecureFXPortable,MobaxTerm里使用自带的tftp功能,注意上传位置,是 /export/software/)

使用MobaxTerm里使用自带的tftp功能

执行解压缩操作:解压到 /export/servers

cd /export/software/

tar -zxvf jdk-8u161-linux-x64.tar.gz -C /export/servers/

cd /export/servers/

重命名为jdk

mv jdk1.8.0_161/ jdk

3. 配置JDK环境变量

vim /etc/profile

添加如下内容

export JAVA_HOME=/export/servers/jdk

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

修改完成之后记得使用命令source /etc/profile,使修改生效

4. JDK环境验证

java -version

第六步:安装Hadoop

1. 下载Hadoop 3.1.3

Index of /dist/hadoop/common

2. 安装Hadoop

同样通过mobaxterm的上的SFTP功能(或其他工具)上传到/export/software目录下,然后解压到/export/servers目录下

cd /export/software

mobaxterm的上的SFTP功能

tar -zxvf hadoop-3.1.3.tar.gz -C /export/servers/

3. 配置Hadoop系统环境变量

vim /etc/profile

配置环境变量

export HADOOP_HOME=/export/servers/hadoop-3.1.3

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

同时添加hadoop为root用户,否则启动的HDFS的时候可能会报错

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

执行source /etc/profile命令,让配置生效

4. 验证Hadoop环境

hadoop version

==========================   快照    ==================================

第七步:Hadoop集群配置

集群配置如下:

1、配置Hadoop集群主节点

(1)修改hadoop-env.sh文件

cd /export/servers/hadoop-3.1.3/etc/hadoop

vim hadoop-env.sh

找到export JAVA_HOME的位置修改

export JAVA_HOME=/export/servers/jdk

(2)修改core-site.xml文件

主要是配置主进程NameNode的运行主机和运行生成数据的临时目录

vim core-site.xml

写入以下内容

<configuration>

       <property>

              <name>fs.defaultFS</name>

              <value>hdfs://hadoop01:9000</value>

       </property>

    <property>

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

              <value>/export/servers/hadoop-3.1.3/tmp</value>

       </property>

</configuration>

(3)修改hdfs-site.xml文件

设置HDFS数据块的副本数量以及second namenode的地址

vim hdfs-site.xml

写入以下内容

<configuration>

       <property>

              <name>dfs.replication</name>

              <value>3</value>

       </property>

       <property>

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

              <value>hadoop02:50090</value>

       </property>

</configuration>

(4)修改mapred-site.xml文件

设置MapReduce的运行时框架

vim mapred-site.xml

写入以下内容

<configuration>

<!-- 指定MapReduce运行时框架,这里指定在Yarn上,默认是local -->

       <property>

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

              <value>yarn</value>

       </property>

</configuration>

(5)修改yarn-site.xml文件

设置yarn集群的管理者

vim yarn-site.xml

写入以下内容

<configuration>

   <property>

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

              <value>hadoop01</value>

       </property>

    <property>

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

              <value>mapreduce_shuffle</value>

    </property>

</configuration>

(6)修改workers文件

该文件用来记录从节点的主机名(hadoop 2.x中为slaves文件)

打开该配置文件,先删除里面的内容(默认localhost),然后配置如下内容。

vim workers

删除默认内容,添加以下内容

hadoop01

hadoop02

hadoop03

2、将集群主节点的配置文件分发到其他子节点

完成Hadoop集群主节点hadoop01的配置后,还需要将系统环境配置文件、JDK安装目录和Hadoop安装目录分发到其他子节点hadoop02和hadoop03上,具体指令:

 scp /etc/profile hadoop02:/etc/profile

 scp /etc/profile hadoop03:/etc/profile

 scp -r /export/ hadoop02:/

 scp -r /export/ hadoop03:/

传完之后要在hadoop02和hadoop03上分别执行 source /etc/profile 命令,来刷新配置文件

如果使用scp时需要输入密码,请重新检查ssh配置!

第八步:格式化文件系统

初次启动HDFS集群时,必须对主节点进行格式化处理。在hadoop01上执行

格式化文件系统指令如下:

hdfs namenode -format

 不要多次格式化主节点!

第九步:启动和关闭hadoop集群

脚本一键启动:

hadoop01主节点上执行:

start-dfs.sh

可以通过jps看到

在主节点上执行

start-yarn.sh

如果想要关闭,输入stop-dfs.sh即可(不要执行)

第十步:通过UI界面查看hadoop运行状态

1. 关闭防火墙功能

3虚拟机上均执行以下命令

本次临时关闭防火墙、永久关闭防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

2. 修改windows下ip映射

打开C:\Windows\System32\drivers\etc下的hosts文件,添加以下内容(注:如果没有notepad++这类软件,可以通过记事本保存在其他位置,然后拖动到该文件夹下)

192.168.121.134 hadoop01

192.168.121.135 hadoop02

192.168.121.136 hadoop03

在浏览器输入

http://hadoop01:9870

http://hadoop01:8088

即可访问HDFS和Yarn

 

 

==========================   快照    ==================================

第十一步:hadoop集群初体验

统计word.txt中各单词出现的次数

在Hadoop01创建如下目录,并添加测试文件

mkdir -p /export/data

cd /export/data

vi word.txt

写入下列内容

hello world

hello hadoop

hello students

在HDFS上创建 /wordcount/input目录

hadoop fs -mkdir -p /wordcount/input

创建完成后可以在HDFS的网站上看到

 

将word.txt上传到该目录下

hadoop fs -put /export/data/word.txt /wordcount/input

 

执行该程序(参考下文中可能遇到的问题,问题1、2为必现问题,建议直接修改)

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

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

 

查看结果如下:

 

 

注意:

可能遇到的问题1:

找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster

解决方法:

输入 hadoop classpath

复制返回的信息

修改yarn-site.xml

cd /export/servers/hadoop-3.1.3/etc/hadoop

vim yarn-site.xml

新增以下内容

<property>

        <name>yarn.application.classpath</name>

        <value>输入刚才返回的Hadoop classpath路径</value>

  </property>

 

可能遇到的问题2:

Container killed on request. Exit code is 143

解决方法:

cd /export/servers/hadoop-3.1.3/etc/hadoop

vim mapred-site.xml

<property>

    <name>mapreduce.map.memory.mb</name>

    <value>2048</value>

    <description>maps的资源限制</description>

</property>

<property>

    <name>mapreduce.reduce.memory.mb</name>

    <value>2048</value>

    <description>reduces的资源限制</description>

</property>

 

可能遇到的问题3:

无法找到路由

解决方法:

关闭hadoop02和hadoop03的防火墙

可能遇到的问题4

A JNI error has occured,please check your installation and try again

解决方法

Hadoop的JAVA_HOME版本设置未更改,例如未去掉注释等,三台虚拟机全都改好后重启hdfs和yarn

cd /export/servers/hadoop-3.1.3/etc/hadoop

vim hadoop-env.sh

可能遇到的问题5

part-r-00000 下载不成功

解决方法:

windows下ip映射有问题

可能遇到的问题6

ERROR: Cannot set priority of namenode process XXXXXX

解决方法:

仔细检查xml文件,一般是前边第七步的xml文件写错了,或者修改了hadoop01没有同时修改hadoop02/03导致的

  • 107
    点赞
  • 530
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
Hadoop服务器集群的搭建旨在实现分布式存储和计算,以满足大数据处理的需求。以下是Hadoop服务器集群搭建的主要目的: 1. 大数据存储:Hadoop提供了分布式文件系统HDFS,它能够将大规模数据分散存储在集群中的多个节点上。通过搭建Hadoop集群,可以获得高容量和可靠的存储系统,能够处理大量数据的存储需求。 2. 数据处理:Hadoop通过MapReduce框架,将数据分成小块进行并行计算,并在集群中的多个节点上同时执行计算任务。通过搭建Hadoop集群,可以实现高性能的并行计算,加快大数据处理的速度。 3. 高可用性:Hadoop集群支持故障转移和冗余备份,可以确保在节点故障时不丢失数据和服务中断。通过搭建Hadoop集群并配置高可用性特性,可以提高系统的可靠性和稳定性。 4. 水平扩展:Hadoop集群可以方便地进行水平扩展,即通过添加更多的节点来增加集群的处理能力和存储容量。通过搭建Hadoop集群,可以应对不断增长的数据量和计算需求,实现系统的可扩展性。 5. 数据共享和协作:Hadoop集群中的数据可以被多个用户和应用程序共享和访问。通过搭建Hadoop集群,可以提供一个统一的数据平台,方便不同团队或部门之间的数据共享和协作。 总而言之,Hadoop服务器集群的搭建旨在提供一个高可用、可扩展和高性能的大数据处理平台,能够存储和处理海量数据,并支持并行计算和分布式存储,以满足大数据应用的需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值