Windows 10构建基于Linux环境的Hadoop集群
软件版本
安装VMware
----安装虚机
----配置网络
----配置主机与IP地址映射
----关闭防火墙
-----配置SSH免密登录
安装JDK
----解压JDK
----设置环境变量
安装Hadoop
----安装
----配置Hadoop
----启动Hadoop
访问Hadoop集群信息
测实验证
----上传测试文件
-----运转hadoop示例程序
Windows 10构建基于Linux环境的Hadoop集群
软件版本
VMvare运用收费的开发版本Download VMware Workstation Player | VMware | CN
Centos-7和JDK镜像可以从华为云下载,速度快点https://repo.huaweicloud.com/
Hadoop直接从官网下载即可。
MobaXterm是一款比较好用的终端工具,可以方便地经过ssh访问虚机和资源拷贝,直接从官网下载收费版。
- 操作系统 Windows10
- VMware WorkStation Pro12
- CentOS-7-x86_64-DVD-2009.iso
- openjdk-15.0.2_linux-x64_bin.tar.gz
- hadoop-3.3.0.tar.gz
- MobaXterm_Personal_21.1
安装VMware
安装虚机
安装过程,直接选用典型安装即可,按导游一步一步执行,需求提早下载好CentOS的镜像,并指定镜像的目录。
配置网络
刚装完的虚机无法衔接网络,无法停止yum安装,所以需求先配置网络。
配置要求:
- 虚机之间互相ping通
- 虚机和宿主机之前互通ping通,经过宿主机ssh可以访问虚机
- 虚机可以访问公网
设置wlan网络共享
设置wlan网络共享
配置虚拟网络,设置nat形式,子网和网关设置成与宿主机上设置的分歧。比如子网都是192.168.137.0,
网关都是192.168.137.2。
查看宿主机设置的虚机子网和网关
设置虚机的子网和网关
配置每个虚机的静态地址,由于不希望地址每次变来变去,这里设置成静态地址
配置vi /etc/sysconfig/network-srcipts/ifcfg-ens33修正配置后执行service network restart重启网络服务即可。
配置虚机的静态地址
虚机可以ping通公网
虚机访问公网
虚机之间互通ping通,虚机可以ping通宿主机
虚机互访
宿主机可以ping通讯机
宿主机访问虚机
由于在VMware上访问虚机很不方便,需求和宿主机之间不断切换,可以安装MobaXterm访问虚机,如下:
经过终端工具MobaXterm访问虚机
至此,虚机1可以访问公网,虚机之间互通,虚机和宿主机之间可以互通。
配置主机与IP地址映射
配置主机和IP地址的映射可以经过主机名访问主机
配置/etc/hosts如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.137.10 master192.168.137.11 slave1192.168.137.12 slave2设置后,可以经过主机名互通
经过主机名访问主机
其他节点也一样设置即可。
关闭防火墙
firewall-cmd --statesystemctl stop firewalld.servicesystemctl disable firewalld.service配置SSH免密登录
在NameNode节点上生成密钥
生成ssh密钥
分别拷贝到三台机器上
验证免密登录
验证ssh免密登录
至此安装hadoop的后期三台虚机的安装,网络配置,ssh配置,防火墙配置等都曾经完成,下面就末尾进入到安装环节。
安装JDK
解压JDK
把紧缩包拖到linux目录下:
拷贝JDK紧缩包
拷贝到/usr/local/目录下并解压:
cp openjdk-15.0.2_linux-x64_bin.tar.gz /usr/local/tar -zxvf openjdk-15.0.2_linux-x64_bin.tar.gz设置环境变量
在/etc/profile配置文件最后加上:
export JAVA_HOME=/usr/local/software/jdk-15.0.2export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$JAVA_HOME/bin:$PATH执行source /etc/profile即可。
经过java --version验证能否失效。
验证JDK
安装Hadoop
安装
将紧缩文件分别拷贝到/usr/local/software/目录下解压tar -zxvf hadoop-3.3.0.tar.gz即可。
设置环境变量后执行source /etc/profile
export JAVA_HOME=/usr/local/software/jdk-15.0.2export HADOOP_HOME=/usr/local/software/hadoop-3.3.0export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin配置Hadoop
配置hadoop-env.sh
配置jdk的途径:
export JAVA_HOME=/usr/local/software/jdk-15.0.2配置core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/software/hadoop-3.3.0/tmp</value> </property></configuration>配置hdfs-site.xml
<configuration> <!-- 设置namenode的http通讯地址 --> <property> <name>dfs.namenode.http-address</name> <value>master:50070</value> </property> <!-- 设置secondarynamenode的http通讯地址 --> <property> <name>dfs.namenode.secondary.http-address</name> <value>slave1:50090</value> </property> <!-- 设置namenode存放的途径 --> <property> <name>dfs.namenode.name.dir</name> <value>/usr/local/software/hadoop-3.3.0/name</value> </property> <!-- 设置hdfs副本数量 --> <property> <name>dfs.replication</name> <value>3</value> </property> <!-- 设置datanode存放的途径 --> <property> <name>dfs.datanode.data.dir</name> <value>/usr/local/software/hadoop-3.3.0/data</value> </property></configuration>配置mapred-site.xml
<configuration> <!-- 告诉框架MR运用YARN --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>yarn.application.classpath</name> <value> /usr/local/software/hadoop-3.3.0/etc/hadoop, /usr/local/software/hadoop-3.3.0/share/hadoop/common/lib/*, /usr/local/software/hadoop-3.3.0/share/hadoop/common/*, /usr/local/software/hadoop-3.3.0/share/hadoop/hdfs, /usr/local/software/hadoop-3.3.0/share/hadoop/hdfs/lib/*, /usr/local/software/hadoop-3.3.0/share/hadoop/hdfs/*, /usr/local/software/hadoop-3.3.0/share/hadoop/mapreduce/*, /usr/local/software/hadoop-3.3.0/share/hadoop/yarn, /usr/local/software/hadoop-3.3.0/share/hadoop/yarn/lib/*, </value> </property></configuration>配置yarn-site.xml
<configuration> <!-- 设置 resourcemanager 在哪个节点--> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <!-- reducer取数据的方式是mapreduce_shuffle --> <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> <property> <name>yarn.application.classpath</name> <value> /usr/local/software/hadoop-3.3.0/etc/hadoop, /usr/local/software/hadoop-3.3.0/share/hadoop/common/lib/*, /usr/local/software/hadoop-3.3.0/share/hadoop/common/*, /usr/local/software/hadoop-3.3.0/share/hadoop/hdfs, /usr/local/software/hadoop-3.3.0/share/hadoop/hdfs/lib/*, /usr/local/software/hadoop-3.3.0/share/hadoop/hdfs/*, /usr/local/software/hadoop-3.3.0/share/hadoop/mapreduce/*, /usr/local/software/hadoop-3.3.0/share/hadoop/yarn, /usr/local/software/hadoop-3.3.0/share/hadoop/yarn/lib/*, </value> </property></configuration>配置workers
指定工作节点
masterslave1slave2启动Hadoop
格式化namenode
[root@master bin]# ./hdfs namenode -format启动失败,缘由是经过root创建的时分,要配置hdfs和yarn的root账户:
在start-dfs.sh和stop-dfs.sh末尾添加如下配置
HDFS_DATANODE_USER=rootHADOOP_SECURE_DN_USER=hdfsHDFS_NAMENODE_USER=rootHDFS_SECONDARYNAMENODE_USER=root在start-yarn.sh和stop-yarn.sh末尾的地方添加如下配置
YARN_RESOURCEMANAGER_USER=rootHADOOP_SECURE_DN_USER=yarnYARN_NODEMANAGER_USER=root重新启动
[root@master sbin]# ./start-all.sh
一键启动集群
查看启动状况,三个虚机的hadoop各组件已正常启动
master
NameNode启动结果
slave1
Slave1启动结果
slave2
Slave2启动结果
访问Hadoop集群信息
可以看到一个NameNode和三个DataNode节点
经过网页访问集群信息
测实验证
上传测试文件
[root@master mapreduce]# hadoop fs -mkdir /input[root@master mapreduce]# hadoop fs -put /home/lulu/test.txt /input
上传测试文件.txt外面存储英文单词
运转hadoop示例程序
运转过程如下:
运转wordcount Hadoop程序
可以看到在hdfs上曾经生成了输入out文件
查看hdfs输入文件
查看运转的结果如下,可以看出来wordcount程序已正确运转并输入。
查看hdfs的文件输入结果
至此,一个残缺的linux环境下的Hadoop集群环境就搭建和运转完成了,后续可以在这个环境停止学习会更贴合实践的部署的环境,也可以基于这个环境去做一些demo验证或参数调测等。 |