记录下我在ubuntu20.04-用户hadoop环境下搭建jdk+hadoop+scala+spark环境的过程(不安装到root相关目录下)
注: 该配置实际为单机模式,若需要分布式要根据具体需要修改相关文件,不同版本的搭配请参考官方文档,本文记录的版本搭配为jdk1.8+hadoop3.2+scala2.12+spark3.1.2
我将按照JDK、Hadoop、Scala、Spark的顺序进行记录
JDK配置
官网下载jdk1.8即可,也可直接down我分享的链接
解压到相应目录
mkdir ~/java
tar -zxf jdk-8u301-linux-x64.tar.gz -C ~/java/
在.bashrc中追加jdk环境变量
vim ~/.bashrc
# jdk1.8
export JAVA_HOME=/home/hadoop/java/jdk1.8.0_301/
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
测试java安装完成
source ~/.bashrc
java -version
Hadoop配置
依旧是官网下载,不过这回不要登陆,直接给链接
解压到相应文件夹
mkdir ~/hadoop
tar -zxf hadoop-3.2.0.tar.gz -C ~/hadoop
然后.bashrc追加环境变量
# hadoop
export HADOOP_HOME=/home/hadoop/hadoop/hadoop-3.2.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
做一些前置工作,什么关闭防火墙(我没有防火墙就不做演示了),按需设置主机名(ThinkStation-P330)和ip之间的映射(修改/etc/hosts,可以有效解耦hadoop配置中的IP地址,只用改这个文件不用一个个改配置),新建一个存放hadoop运行时产生的文件的文件夹
mkdir ~/hadoop/hadoop-3.2.0/tmp
接着继续配置hadoop
先定位到配置文件夹
cd ~/hadoop/hadoop-3.2.0/etc/hadoop/
首先是hadoop-env.sh中追加JAVA_HOME信息,这里不添加java路径的话会导致启动时报错找不到JAVA_HOME
export JAVA_HOME=/home/hadoop/java/jdk1.8.0_301
接下来就是按需修改配置了,core-site.xml
<configuration>
<!-- HDFS的NameNode地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ThinkStation-P330:9000</value>
</property>
<!-- hadoop运行时产生文件的目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/tmp</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<!-- HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<!-- 设定mapreduce运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<!-- YARN的ResourceManager地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>ThinkStation-P330</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
首次启动需要格式化namenode
source ~/.bashrc
hdfs namenode -format
如果报错命令不存在,你就该好好看看自己的.bashrc中的环境变量是不是出什么问题了
执行结果中仔细找找,在最后几行里有successfully formatted字样就说明格式化成功
配置好免密登陆ssh
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
然后就可以启动hadoop(伪)集群了
./hadoop/hadoop-3.2.0/sbin/start-all.sh
目前就可以通过浏览器进入HDFS管理界面(http://ThinkStation-P330:9870)
也可以进入RM管理界面(http://ThinkStation-P330:8088)
就此一个单机式的hadoop部署完毕
Scala配置
spark的前置配置,下载链接
与jdk一样,依旧是解压,配置.bashrc追加环境变量
# scala2.12
export SCALA_HOME=/home/hadoop/scala/scala-2.12.15
export PATH=$SCALA_HOME/bin:$PATH
Spark配置
解压,定位到配置conf文件夹
cd ~/spark/spark-3.1.2-bin-hadoop3.2/conf
cp spark-env.sh.template spark-env.sh
cp workers.template workers
编辑spark-env.sh文件,按需追加配置
export JAVA_HOME=/home/hadoop/java/jdk1.8.0_301
export SCALA_HOME=/home/hadoop/scala/scala-2.12.15
export HADOOP_HOME=/home/hadoop/hadoop/hadoop-3.2.0
export SPARK_HOME=/home/hadoop/spark/spark-3.1.2-bin-hadoop3.2
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_MASTER_HOST=ThinkStation-P330
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
按需配置workers文件,单机的我就没配置,和hosts文件里差不多,目的是让不同服务器互相知道,我这就一台机子,workers不存在的~
localhost
#slave1
#slave2
启动spark,先定位到spark根目录中的sbin文件夹中
~/spark/spark-3.1.2-bin-hadoop3.2/sbin/start-all.sh
就此配置完成,关闭相关服务将命令中的“start”改成“stop”执行一次即可