记录一下配置多节点Hadoop和Spark的过程。
建立三个节点node,分别是node0,node1,node2.其中node0作为master节点。三台云虚拟机均为Ubuntu 16版本,Hadoop为3.1.4版本,Spark为2.4.7版本。
Hadoop
首先是下载和配置Hadoop.
第一步,更新软件包,安装Java
sudo apt-get update --fix-missing
sudo apt-get install openjdk-8-jdk
第二步,生成master节点ssh的公有key,并分别拷贝到所有节点的~/.ssh/authorized_keys,从而允许master和slave nodes之间通讯。特别注意,在master节点生成公有key的时候,不需要设置任何密码。
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
vim ~/.ssh/authorized_keys
第三步,在三个节点下分别下载Hadoop 3.1.4并解压缩
wget http://apache.mirrors.hoobly.com/hadoop/common/hadoop-3.1.4/hadoop-3.1.4.tar.gz
tar zvxf hadoop-3.1.4.tar.gz
第四步,修改三个节点的配置文件hadoop-3.1.4/etc/hadoop/core-site.xml,设置value为master节点的ip,这里设置为10.10.1.1.注意,三个节点均需要设置为master节点的ip.
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://10.10.1.1:9000</value>
</property>
</configuration>
第五步,分别在三个节点新建namenode和datanode文件
mkdir /mnt/data/hadoop/hadoop-3.1.4/data/namenode
mkdir /mnt/data/hadoop/hadoop-3.1.4/data/datanode
修改hadoop-3.1.4/etc/hadoop/hdfs-site.xml,并设置为刚才新建文件夹的路径
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/mnt/data/hadoop/hadoop-3.1.4/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/mnt/data/hadoop/hadoop-3.1.4/data/datanode</value>
</property>
</configuration>
第六步,hadoop-3.1.4/etc/hadoop/hadoop-env.sh,添加JAVA_HOME,可以使用如下命令查看JAVA_HOME:
update-alternatives --display java
JAVA_HOME案例路径如下:/usr/lib/jvm/java-8-openjdk-amd64/jre
接下来,分别在三个节点修改hadoop-3.1.4/etc/hadoop/workers,移除localhost并添加所有节点的ip
10.10.1.1
10.10.1.2
10.10.1.3
之后,修改环境变量
export PATH=$PATH:/mnt/data/hadoop/hadoop-3.1.4/bin
export PATH=$PATH:/mnt/data/hadoop/hadoop-3.1.4/sbin
运行Hadoop,查看是否成功
hdfs namenode -format
start-dfs.sh
Spark
下面介绍如何配置Spark,首先下载Spark
wget http://mirror.metrocast.net/apache/spark/spark-2.4.7/spark-2.4.7-bin-hadoop2.7.tgz
tar zvxf spark-2.4.7-bin-hadoop2.7.tgz
接下来,修改网络配置文件,修改各个template的文件名,包括conf/slaves和conf/spark-env.sh. 在conf/slaves下移除localhost并添加所有节点的ip
mv spark-2.4.7-bin-hadoop2.7/conf/slaves.template spark-2.4.7-bin-hadoop2.7/conf/slaves
10.10.1.1
10.10.1.2
10.10.1.3
修改conf/spark-env.sh并分别设置master和slave的ip:
SPARK_MASTER_HOST=10.10.1.1
SPARK_LOCAL_IP=10.10.1.1
设置完毕后,运行Spark
spark-2.4.7-bin-hadoop2.7/sbin/start-all.sh