Hadoop与spark集群安装
一,环境准备
版本信息
jdk:jdk1.8.0
hadoop:hadoop-2.10.1
spark:spark-3.0.1
首先配置java环境和Hadoop环境变量
将jdk解压缩
之后在/etc/profile里面添加环境变量
注意每次都要source /etc/profile
解压Hadoop
并配置环境变量,将Hadoop的路径写入~/.bashrc
需要source ~/.bashrc
配置免密登录
修改hostname,
sudo vim /etc/hostname
修改hosts的名字
sudo vim /etc/hosts
以下是master的hostname和hosts
slave1和slave2的hostname也需要改。
配置免密登录
ssh-keygen -t rsa # 一直按回车就可以
cat ./id_rsa.pub >> ./authorized_keys
Hadoop配置文件修改
需要修改Hadoop安装目录下/etc/hadoop中的5个配置文件。slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
slaves内容
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/zkx/hadoop-2.10.1/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
hdfs-site.xml
这文件记录备份相关。我们有2个 slave 节点,因此可以将 dfs.replication 的值设为 2
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/zkx/hadoop-2.10.1/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/zkx/hadoop-2.10.1/tmp/dfs/data</value>
</property>
</configuration>
mapred-site.xml
如果是mapred-site.xml.template ,此时需要重命名
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
将Hadoop文件打包发送到slave节点上解压
先删除logs和tmp里的文件
之后压缩
tar -zcf ~/hadoop.master.tar.gz ./hadoop-2.10.1
使用scp命令发送到slave1和slave2
scp ./hadoop.master.tar.gz zkx@slave1:/home/zkx
之后解压
启动
master节点格式化
hdfs namenode -format # 首次运行需要执行初始化,之后不需要
启动和结束脚本在sbin目录下
start-all.sh
mr-jobhistory-daemon.sh start historyserver #启动历史服务器
jps 查看master和slave
worker是spark的,不用参考
实例:求PI
hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.1.jar pi 100 1000
结果如下
二、spark的安装
使用教程
http://spark.apache.org/docs/latest/index.html
解压压缩包
目录如下
修改conf下的spark-env.sh
export SPARK_DIST_CLASSPATH=$(/home/zkx/hadoop-2.10.1/bin/hadoop classpath)
export JAVA_HOME=/home/zkx/jdk1.8.0_241
SPARK_MASTER_HOST=master
SPARK_MASTER_PORT=7077
修改slaves
之后将整个目录压缩,scp发送到slave上,解压
测试
启动spark
./sbin/start-all.sh
之后打开浏览器输入maste的spark的URL,节点的端口是8080。
可以看到有三个worker