自己使用的环境版本:
Windows10+
Ubuntu18.04 LTS +
VMware14 Pro+
Hadoop2.6.5+
Spark-2.3.0+
JAVA1.8+
scala2.11+
MobaXterm(远程连接工具)
包含,Ubuntu服务器创建、远程工具连接配置、Ubuntu服务器配置、Java环境配置、scala环境配置
Hadoop文件配置、Hadoop格式化、启动。
Spark安装文件配置,启动等。
建立好的虚拟机如下
通过ifconfig命令查看服务器ip地址
IP 192.168.5.130 默认主机名ubuntu
IP 192.168.5.132 默认主机名ubuntu
IP 192.168.5.133 默认主机名ubuntu
下一步会修改主机名hostname
如何查看每一个系统的ip地址具体请点击看:Ubuntu18.04查看本机IP (查看)
在点击ok连接上之后后续就可以直接在MobaXterm上操作
同样三个虚拟机建立连接
④安装vim编辑器,默认自带vi编辑器
sudo apt install vim
#在192.168.5.130 zhangsf@ubuntu:~$ sudo vim /etc/hostname
进入编辑模式 写入
hadoop1
然后重启就会发现成为:
同样对第二个和第二个做同样的操作,不过一个对应为
192.168.5.132 hadoop2,
一个对应192.168.5.133 hadoop3
在Hadoop1,2,3中
zhangsf@hadoop1:~$ sudo vim /etc/hosts
192.168.5.130 hadoop1
192.168.5.132 hadoop2
192.168.5.133 hadoop3
zhangsf@hadoop1:~$ date
Wed Oct 26 02:42:08 PDT 2016
zhangsf@hadoop1:~$ sudo tzselect
根据提示选择选择不同的数字Asia
China
Beijing Time
yes
最后将Asia/Shanghai shell scripts 复制到/etc/localtime
zhangsf@hadoop1:~$ sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
zhangsf@hadoop1:~$ date
Mon Jun 11 16:36:53 CST 2018
将所需安装的安装文件拖拽至MobaXterm中对应的系统下面的文件下就可以如图左下侧
zhangsf@hadoop1:~$ tar -zxf jdk-8u111-linux-x64.tar.gz
zhangsf@hadoop1:~$ sudo mv jdk1.8.0_111 /opt/
[sudo] password for hadoop1:
zhangsf@hadoop1:~$
编写环境变量脚本并使其生效
zhangsf@hadoop1:~$ sudo vim /etc/profile.d/jdk1.8.sh
输入内容:
export JAVA_HOME=/opt/jdk1.8.0_111
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
zhangsf@hadoop1:~$ java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
对其他机器同样操作
也可通过scp命令
#注意后面带 : 默认是/home/zhangsf路径下
zhangsf@hadoop1:~$ scp jdk-8u111-linux-x64.tar.gz hadoop2:
sudo apt install sshsudo apt install rsynczhangsf@hadoop1:~$ ssh-keygen -t rsa //一路回车就好
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop2
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop32
#不需要输入密码
ssh hadoop2
在hadoop1上配置完成后将Hadoop包直接远程复制scp
到其他Linux主机即可。
Linux主机Hadoop集群完全分布式分配
zhangsf@hadoop1:~$ sudo vim /etc/profile.d/hadoop2.6.5.sh
export HADOOP_HOME="/opt/hadoop-2.7.3"
export PATH="$HADOOP_HOME/bin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export JAVA_HOME=/opt/jdk1.8.0_111
hadoop2
hadoop3
fs.defaultFS
hdfs://hadoop1:9000
io.file.buffer.size
131072
hadoop.tmp.dir
/home/zhangsf/hadoop/tmp
配置 hdfs-site.xml
dfs.namenode.secondary.http-address
hadoop1:50090
dfs.replication
2
dfs.namenode.name.dir
file:/home/zhangsf/hadoop/hdfs/name
dfs.datanode.data.dir
file:/home/zhangsf/hadoop/hdfs/data
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.address
hadoop1:8032
yarn.resourcemanager.scheduler.address
hadoop1:8030
yarn.resourcemanager.resource-tracker.address
hadoop1:8031
yarn.resourcemanager.admin.address
hadoop1:8033
yarn.resourcemanager.webapp.address
hadoop1:8088
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
hadoop1:10020
mapreduce.jobhistory.address
hadoop1:19888
zhangsf@hadoop1:~$ scp -r hadoop-2.6.5 hadoop2:
zhangsf@hadoop1:/opt/hadoop-2.6.5$ hdfs namenode -format
在Hadoop1上执行
zhangsf@hadoop1:/opt/hadoop-2.6.5/sbin$ ./start-all.sh
为了方便,在hadoop1
主机上先安装,把目录打开到/opt
目录下,与我的Java
目录相一致。
wget https://downloads.lightbend.com/scala/2.11.7/scala-2.11.7.tgz
tar -zxvf scala-2.11.7.tgz
rm -rf scala-2.11.7.tgz
在此需要打开/etc/profile
文件进行配置
在文件的最后插入
export SCALA_HOME=/usr/scala-2.11.7
export PATH=$PATH:$SCALA_HOME/bin
插入了之后要使得命令生效,需要的是:
source /etc/profile
检测安装是否成功scala -version
同样通过scp将文件拷贝到其他主机上
文件的解压与改名
tar -zxvf spark-2.3.0-bin-hadoop2.6.tgz
rm -rf spark-2.3.0-bin-hadoop2.6.tgz
为了我后面方便配置spark
,在这里我把文件夹的名字给改了
mv spark-2.3.0-bin-hadoop2.7 spark-2.3.0
vi /etc/profile.d/spark-2.3.0.sh
写入
export SPARK_HOME=/opt/spark-2.3.0
export PATH=$PATH:$SPARK_HOME/bin
打开spark-2.3.0
文件夹
cd spark-2.3.0
此处需要配置的文件为两个 spark-env.sh
和slaves
spark-env.sh
文件vi conf/spark-env.sh
在最尾巴加入
export JAVA_HOME=/usr/java/jdk1.8.0_141
export SCALA_HOME=/usr/scala-2.11.7
export HADOOP_HOME=/opt/hadoop-2.6.5
export HADOOP_CONF_DIR=/opt/hadoop-2.6.5/etc/hadoop
export SPARK_MASTER_IP=hadoop1
export SPARK_WORKER_MEMORY=2g
export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=1
或者直接
export SCALA_HOME=${SCALA_HOME}
export JAVA_HOME=${JAVA_HOME}
export SPARK_MASTER_IP=master
export SPARK_WORKER_MEMORY=500m
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
变量说明
- JAVA_HOME:Java安装目录
- SCALA_HOME:Scala安装目录
- HADOOP_HOME:hadoop安装目录
- HADOOP_CONF_DIR:hadoop集群的配置文件的目录
- SPARK_MASTER_IP:spark集群的Master节点的ip地址
- SPARK_WORKER_MEMORY:每个worker节点能够最大分配给exectors的内存大小
- SPARK_WORKER_CORES:每个worker节点所占有的CPU核数目
- SPARK_WORKER_INSTANCES:每台机器上开启的worker节点的数目
slaves
文件vi conf/slaves
在最后面修成为
hadoop2
hadoop3
hadoop2
和hadoop3
的配置Spark
集群因为我们只需要使用
hadoop
的HDFS
文件系统,所以我们并不用把hadoop
全部功能都启动。只需要启动hadoop的hdfs
Spark
因为
hadoop/sbin
以及spark/sbin
均配置到了系统的环境中,它们同一个文件夹下存在同样的start-all.sh
文件。最好是打开spark-2.3.0
,在文件夹下面打开该文件。
./sbin/start-all.sh
查看hadoop的jps,和hadoop2的jps、hadoop3的jps
成功打开Spark
集群之后可以进入Spark
的WebUI
界面,可以通过
hadoop1:8080
Spark-shell
使用
spark-shell
同时,因为shell
在运行,我们也可以通过
hadoop1:4040
访问WebUI
查看当前执行的任务