从零开始搭建个人大数据集群——环境准备篇
从零开始搭建个人大数据集群(1)——zookeeper
从零开始搭建个人大数据集群(2)——HDFS
从零开始搭建个人大数据集群(3)——YARN
从零开始搭建个人大数据集群(4)——HIVE
从零开始搭建个人大数据集群(5)——HBASE
安装前的准备
1.安装好zookeeper和hadoop
2.准备好spark-2.4.8-bin-hadoop2.7.tgz
解压安装包
cd /opt/packages
tar -zxf spark-2.4.8-bin-hadoop2.7.tgz ../apps
ln -s spark-2.4.8-bin-hadoop2.7 spark
配置spark
spark有spark standalone 和spark on yarn两种模式,这里我直接装standalone模式,在能体验spark集群的情况下也同时能用spark on yarn模式
文件重命名
mv spark-defaults.conf.template spark-defaults.conf
mv spark-env.sh.template spark-env.sh
mv slaves.template slaves
mv log4j.properties.template log4j.properties
spark-env.sh
此文件需要配置jdk路径、hadoop配置文件路径、zookeeper地址
export JAVA_HOME=/usr/local/jdk
export HADOOP_CONF_DIR=/opt/apps/hadoop/etc/hadoop
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hd1:2181,hd2:2181,hd3:2181 -Dspark.deploy.zookeeper.dir=/spark2"
slaves
在这里添加slave节点
hd3
hd4
hd5
spark-defaults.conf
这一项配置非必要,主要是在通过spark执行一些jar包的时候要先把jar包提交到hdfs上,可以先把jar包上传到hdfs上来节省时间,这里配置的就是hdfs上存放spark jars的目录
spark.yarn.jars=hdfs://ns1/home/hadoop/spark_jars/*
log4j.properties
修改日志打印级别
log4j.rootCategory=WARN, console
修改环境变量
vim /etc/profile :
JAVA_HOME=/usr/local/jdk
ZOOKEEPER_HOME=/opt/apps/zookeeper
HADOOP_HOME=/opt/apps/hadoop
HADOOP_COMMON_HOME=${HADOOP_HOME}
HADOOP_HDFS_HOME=${HADOOP_HOME}
HADOOP_MAPRED_HOME=${HADOOP_HOME}
HADOOP_YARN_HOME=${HADOOP_HOME}
HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:/usr/lib64
HBASE_HOME=/opt/apps/hbase
HBASE_LIBRARY_PATH=${HBASE_HOME}/lib/native/Linux-amd64-64
HIVE_HOME=/opt/apps/hive
HIVE_CONF_DIR=${HIVE_HOME}/conf
SPARK_HOME=/opt/apps/spark
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$SPARK_HOME/bin
source /etc/profile
启动
这里需要注意一下spark集群的启动脚本也和hadoop的一样叫start-all.sh,所以需要直接指定绝对路径或者起别名,我选择起别名,比较方便
vim ~/.bashrc
# 这些是我用的别名
alias zkcli='zkCli.sh -server hd1:2181,hd2:2181,hd3:2181'
alias zkman='~/zk/ssh_all.sh zkServer.sh'
alias sshall='~/op/ssh_all.sh'
alias sshzk='~/zk/ssh_all.sh'
alias mrhista='mr-jobhistory-daemon.sh start historyserver'
alias mrhisto='mr-jobhistory-daemon.sh stop historyserver'
alias spark-start='/opt/apps/spark/sbin/start-all.sh'
alias spark-stop='/opt/apps/spark/sbin/stop-all.sh'
依次启动zookeeper,hdfs,yarn,spark
zkman start
start-all.sh
spark-start
spark MasterUI默认会占用8080端口,如果8080被其他进程占用的话就会自动找其他端口,我这里就是使用了8081端口,具体用了哪个端口可以在日志里看到
vim /opt/apps/spark/logs/spark-hadoop-org.apache.spark.deploy.master.Master-1-hd1.out
21/06/06 20:22:20 WARN Utils: Service 'MasterUI' could not bind on port 8080. Attempting port 8081.
如果想体验spark ha的话可以在其他节点上启动spark master,比如我的master现在是在hd1上,再在hd2上通过/opt/apps/spark/sbin/start-master.sh启动master的话就同时存在了两个master,一个alive状态,一个standby状态
而如果这时kill掉hd1的master进程的话过一会儿之后hd2就会变成alive状态
安装中出现什么问题欢迎发邮件联系我
Q.E.D.