VMware-14.1.2 +CentOS7 + Hadoop-2.8.4 搭建集群环境,Windows下使用IDEA开发

前言

如果你的电脑内存为8G,建议每台虚拟机给1G内存。
推荐至少内存大于等于12G,每台虚拟机2G。

1. 下载

在这里插入图片描述

链接:https://pan.baidu.com/s/1zxiR3xbZ73AEOxI5Kl2_ZQ
提取码:ifob


2. 安装软件(已安装可跳过直接看第3点,需要注意关闭防火墙)

  • VMware(许可证中含有密钥)、XShell、IDEA的安装省略。

  • 安装CentOS-7

在这里插入图片描述
2.
在这里插入图片描述
3.
在这里插入图片描述
4.
在这里插入图片描述
5. 注意修改位置,默认是C盘
在这里插入图片描述
6.
在这里插入图片描述
7.
在这里插入图片描述
8.
在这里插入图片描述
9.
在这里插入图片描述
10.
在这里插入图片描述
11.
在这里插入图片描述
12. 博主这是给20G,如果你后期会安装HBase、Hive、Kafka、Spark等,建议40G左右
在这里插入图片描述

后面默认即可。。。

  • 网络设置
    安装完成VMware后,查看适配器可以看到多出了VMnet1和VMnet8,需要使用VMnet8。
    在这里插入图片描述
    在这里插入图片描述
    右键VMnet8 -> 属性 -> Internet 协议版本4:
    在这里插入图片描述
    设置如下IP和子网掩码:
    在这里插入图片描述
    VMware中设置虚拟网络:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在VMware中选中data1右键设置:
在这里插入图片描述
添加网络适配器:
在这里插入图片描述
NAT用于虚拟机与windows的通信,桥接用于连接外网:

注意:如果设置好后,发现只能联网,但不能主机和linux不能通信,建议两个网卡都设置为NAT。

在这里插入图片描述
设置镜像:
在这里插入图片描述

确认后,启动虚拟机:

选择安装(箭头上下移动),ctrl + alt 跳出虚拟机,等待安装:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最小化安装:
在这里插入图片描述
分盘默认即可,点击安装(如果无法点击安装,先点击有黄色警告的地方-> Done):
在这里插入图片描述
设置密码,建议两个都设置,左边是root用户密码,右边添加新的普通用户,等待安装:
在这里插入图片描述
安装成功,重启:
在这里插入图片描述
登录root:
在这里插入图片描述
设置NAT网卡IP:
在这里插入图片描述
注意:BOOTPROTO=dhcp,这里没有截到图。
在这里插入图片描述

设置桥接网卡:
在这里插入图片描述
注意:这里第一个虚拟机设置为192.168.1.126,后面第二、三个虚拟机依次为127、128。
在这里插入图片描述
保存后重启网卡:

注:如果重启网卡,没有出现IP,建议重新启动Linux。

在这里插入图片描述

还有一个/etc/selinux/config,中有一行SELINUX设置为disabled

在这里插入图片描述
建议重启Linux。

测试:
与windows通信,如果无法通信尝试关闭Windows的防火墙。
在这里插入图片描述
外网通信:
在这里插入图片描述
使用XShell 连接:
点击连接,输入用户名、密码
在这里插入图片描述
下面的两个设置是为了避免输入数字小键盘键和方向键乱码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
关闭防火墙:
在这里插入图片描述

修改主机名:
在这里插入图片描述
设置IP映射:
在这里插入图片描述
在这里插入图片描述

上传压缩包

下载WinSCP软件:
https://winscp.net/eng/docs/lang:chs
在这里插入图片描述
连接data1:
在这里插入图片描述

在Linux中创建目录:
在这里插入图片描述
拖拽上传到 /opt/soft:
在这里插入图片描述

3. Hadoop集群安装

这里跳过单机、伪分布的安装。。。

经过第2步,你已经有了一个可以正常运行的CentOS,并且上传有Haodop、JDK安装包。

  • JDK安装
    解压JDK:
tar -zxvf /opt/soft/jdk-8u144-linux-x64.tar.gz -C /opt/module/

配置环境变量:
在这里插入图片描述
末尾添加:

# JDK
export JAVA_HOME=/opt/module/jdk1.8.0_144/
export PATH=$PATH:$JAVA_HOME/bin

测试,出现如下则安装成功:
在这里插入图片描述

  • Hadoop安装配置
    解压Hadoop:
tar -zxvf /opt/soft/hadoop-2.8.4.tar.gz -C /opt/module/

以下所有修改都在/opt/module/hadoop-2.8.4/etc/hadoop 目录下:
hadoop-env.sh
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
core-site.xml

<configuration>
	<!-- namenode地址 -->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://data1:9000</value>
	</property>
	<!-- 指定hadoop运行时产生文件的存储目录 -->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/module/hadoop-2.8.4/data/tmp</value>
	</property>
</configuration>

hdfs-site.xml

<configuration>
	<!-- 数据冗余 -->
	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>
	<!-- secondary地址 -->
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>data1:50090</value>
	</property>
	<!-- 关闭权限 -->
	<property>
		<name>dfs.permissions</name>
		<value>false</value>
	</property>
</configuration>

yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
	<!-- reduce获取数据的方式 -->
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<!-- 指定YARN的ResourceManager的地址 -->
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>data1</value>
	</property>

	<!-- 日志聚集功能使用 -->
	<property>
		<name>yarn.log-aggregation-enable</name>
		<value>true</value>
	</property>
	<!-- 日志保留时间设置7天 -->
	<property>
		<name>yarn.log-aggregation-seconds</name>
		<value>604800</value>
	</property>

</configuration>

mapred-site.xml (原文件为mapred-site.xml.template,修改名称即可)

<configuration>
	<!-- 指定mr运行在yarn上 -->
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	
	<!-- 历史服务器的地址 -->
	<property>
		<name>mapreduce.jobhistory.address</name>
		<value>data1:10020</value>
	</property>
	<!-- 历史服务器页面的地址 -->
	<property>
		<name>mapreduce.jobhistory.webapp.address</name>
		<value>data1:19888</value>
	</property>
</configuration>

slaves

data1
data2
data3

设置环境变量,添加到/etc/profile 末尾:

# HADOOP
export HADOOP_HOME=/opt/module/hadoop-2.8.4/
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

测试:
在这里插入图片描述

克隆data2、data3

关机data1:
shutdown -h now

克隆出data2和data3:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意修改位置

在这里插入图片描述
克隆完成:
在这里插入图片描述
启动三台虚拟机:
修改第二台主机名为data2、修改IP为192.168.1.127
修改第二台主机名为data3、修改IP为192.168.1.128(不清楚如何修改可以看第2步)

重启后,使用Xshell连接,得到如下三台机器:
在这里插入图片描述
在data1中测试是否能够与data2、data3通信:
在这里插入图片描述

免密设置:

在XShell中设置一键操作三台虚拟机(如果没有安装XShell的推荐安装):
作用是在一台虚拟机中发送命令在其他两台中将执行同样的命令。。。。
在这里插入图片描述
开启后的效果:
在这里插入图片描述
生成密钥(一直回车即可):
在这里插入图片描述
添加本机的密钥到指定的主机:
连续执行了三条命令,这样每台虚拟机都会有包括自己在内的另外两台虚拟机的密钥:
在这里插入图片描述
关闭一键执行到所有会话:
在这里插入图片描述
测试免密登录:
在这里插入图片描述

格式化Hadoop:

在data1中执行:

hadoop namenode -format

出现0则成功:
在这里插入图片描述
启动 hdfs:
在这里插入图片描述
启动 yarn:
在这里插入图片描述
页面访问:
因为在windows可以与虚拟机的通信,所以可以在windows下访问集群的hadoop页面:
192.168.1.126:50070
在这里插入图片描述
可以在命令中查看data2和data3的启动情况:
在这里插入图片描述
也可以在页面中查看是否启动成功:
在这里插入图片描述
至此,Hadoop集群搭建成功。。。

4. Windows下使用IDEA连接集群

前提:已安装IDEA

  • Windows下安装Maven
    解压Maven,设置环境变量:
    在这里插入图片描述
    测试:
    在这里插入图片描述
    配置Maven仓库地址,使用阿里仓库:
    在这里插入图片描述
    本地仓库地址(默认为C盘):
    在这里插入图片描述

阿里仓库(默认国外):
在这里插入图片描述

  <mirrors>
    <!-- 阿里云仓库 -->
    <mirror>
        <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>


    <!-- 中央仓库1 -->
    <mirror>
        <id>repo1</id>
        <mirrorOf>central</mirrorOf>
        <name>Human Readable Name for this Mirror.</name>
        <url>http://repo1.maven.org/maven2/</url>
    </mirror>


    <!-- 中央仓库2 -->
    <mirror>
        <id>repo2</id>
        <mirrorOf>central</mirrorOf>
        <name>Human Readable Name for this Mirror.</name>
        <url>http://repo2.maven.org/maven2/</url>
    </mirror>
  </mirrors>
  • Windows下配置Hadoop
    解压Ha的oop安装包(与Linux上的为同一解压包)到安装JDK的目录(windows确保你安装了jdk)
    在这里插入图片描述
    并将hadoop.dll 和 winutils.exe 复制到 hadoop-2.8.4/bin 目录下:
    在这里插入图片描述
    设置环境变量:
    在这里插入图片描述
    在这里插入图片描述
    测试:
    在这里插入图片描述

  • IDEA中设置Maven
    在这里插入图片描述
    在这里插入图片描述

  • 新建Maven项目
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在pom.xml (该文件在新建的Maven项目路径下)中导入Hadoop相关依赖,等待下载完成:
在这里插入图片描述

    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.8.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.8.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.8.4</version>
        </dependency>

<!--        <dependency>-->
<!--            <groupId>org.projectlombok</groupId>-->
<!--            <artifactId>lombok</artifactId>-->
<!--            <version>1.16.10</version>-->
<!--        </dependency>-->

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.7</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

Maven依赖下载的jar在设置Maven的本地仓库地址:
在这里插入图片描述

  • 编写上传文件代码,右键Run
    在这里插入图片描述
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;

public class HadoopTest {
    public static void main(String[] args) throws IOException {
        // 1. 创建配置信息对象
        Configuration configuration = new Configuration();
        configuration.set("fs.defaultFS", "hdfs://192.168.1.126:9000");
        // 2. 获取文件系统
        FileSystem fileSystem = FileSystem.get(configuration);
        // 3. 上传文件
        Path source = new Path("D:\\Test\\Test.txt");
        Path out = new Path("/");
        fileSystem.copyFromLocalFile(source, out);
        // 4. 关闭文件系统
        fileSystem.close();
    }
}

HDFS中查看上传的文件:
在这里插入图片描述

完!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值