1、安装环境
vmware、centos 7、jdk 1.8、scala 2.12.11、hadoop 3.1.3、spark 3.0.0(spark 版本对 jdk、scala 版本有要求,详见官方文档)
2、运行环境搭建
该部分主要是 vmware的安装、centos 7 的安装和配置、 jdk、sdk 的安装以及系统变量的配置。
对于centos 7的配置主要是设置静态 IP 地址。在虚拟机设置->网络适配器->自定义:特定虚拟网络(VMnet8:nat模式)。
然后,在编辑->虚拟网络编辑器中查看 VMnet 8 的子网,选中 NAT 设置查看网关。(后续需要用到)
接着,打开网络中心->更改适配器选项->VMnet 8->属性->IPv4->属性->使用下列 IP 地址。输入和刚才查看到的子网号一个网段的 IP 地址,最后一位可以在1~254间随意输入。例如:子网号为 192.168.8.0,则IP地址输入 192.168.8.***。(最后一位随意)
现在就可以进入虚拟机内,设置网卡配置信息了。
vim /etc/sysconfig/network-scripts/ifcfg-ens33
注:网卡名称可能不一致,ifcfg-ens**(*为数字)即是配置文件。可以使用在进入该文件夹后查看所有文件,符合名称的即为网卡配置文件或使用 ip addr查看。
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static //将原文件里的改为此处,使用静态ip
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
DEVICE=ens33
ONBOOT=yes //将原文件里的改为此处,默认打开网卡
NETMASK=255.255.255.0 //新增:此处为子网掩码
GATEWAY=192.168.**.* //新增:此处为网关
IPADDR=192.168.**.* //新增:此处为ip地址,需与子网保持在一个网段内,最后一位随意(1~254)
DNS1=114.114.114.114 //新增:域名解析服务器
DNS2=119.29.29.29 //新增:域名解析服务器
保存后,重启网卡服务即可(systemctl restart network)。测试主机与虚拟机互 ping 以及虚拟机 ping 百度。 三台虚拟机还需要进行ssh免密登录,便于后续启动集群。(参考配置 SSH 免密登录)最后,虚拟机之间还需要同步时间。
jdk、sdk将下载好的压缩包在指定目录解压。
tar -xvf file.**
配置环境变量 vim /etc/profile
export JAVA_HOME=*** //解压的路径
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
export SCALA_HOME=*** //解压的路径
export PATH=$PATH:${SCALA_HOME}/bin
使配置文件生效 source /etc/profile ,可以使用 java -version 以及 scala -version 验证是否配置成功。
3、系统集群规划
centos01:master、NameNode、DataNode、ResourceManager、NodeManager
centos02:worker、DataNode、NodeManager
centos03:worker、DataNode、NodeManager、SecondaryNameNode
4、hadoop配置
将下载好的压缩包在指定目录解压。解压后进入Hadoop解压文件夹内,在 etc/hadoop 内修改几个配置文件。
hadoop-env.sh
export JAVA_HOME=** //java解压目录
export HADOOP_HOME=** //hadoop解压目录
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
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://centos01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name> //自定义临时文件存放区域
<value>**/data/tmp</value> //**是hadoop解压安装目录
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>centos03:50090</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name> //以下**皆为hadoop解压安装路径
<value>HADOOP_MAPRED_HOME=**</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=**</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=**</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>centos01</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
</configuration>
workers
centos01
centos02
centos03
配置结束后,格式化名称节点。
hdfs namenode -format
启动 hadoop 集群,进入 {Hadoop}/sbin 文件夹。
./start-all.sh
5、hadoop 测试
启动集群后,可以在每台虚拟机上 jps 查看进程,若每台虚拟机显示进行如部署规划一致(除 master、worker,这个是 spark 的),则配置无误。
同时,也可以访问网页 hdfs 管理端,访问地址:虚拟机ip地址+端口号:9870。
后续可以进行 wordcount 测试。(配置过程出现的问题参考Hadoop 避坑指南)
6、spark配置
将下载好的压缩包在指定目录解压。进入解压目录,在 {spark}/conf 内修改配置文件。
修改模板文件
cp spark-env.sh.template spark-env.sh
cp slaves.template slaves
修改spark-env.sh
export JAVA_HOME={JAVA} //{**}为对应的解压目录
export SCALA_HOME={SCALA}
export HADOOP_HOME={HADOOP}
export SPARK_HOME={SPARK}
export HADOOP_CONF_DIR={hadoop}/etc/hadoop
export SPARK_MASTER_HOST=centos01
export SPARK_EXECUTOR_MEMORY=1G
export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_PORT=7078
export SPARK_MASTER_PORT=7077
修改slaves
centos02
centos03
进入{spark}/sbin ,启动 spark 集群。
./start-all.sh
7、spark 测试
启动集群后,可以在每台虚拟机上 jps 查看进程,若每台虚拟机显示进行如部署规划一致,则配置无误。
同时,也可以访问网页 spark节点 管理端,访问地址:master 虚拟机ip地址+端口号:7077。
后续可以进行 wordcount 测试。