一、硬件需求
三台虚拟机:ubuntu01 ubuntu02 ubuntu03
vmware workstation 15上创建上面三台ubuntu server 18.04虚拟机
二、配置Spark账户互信,免密登陆
1.rsa公钥加密密钥生成
ssh-keygen -t rsa
2.公钥分发到其他机器
ssh-copy-id liyuan@ubuntu02
ssh-copy-id liyuan@ubuntu03
3.在ubuntu02和03上分别执行1 - 2步骤,主机名要改成其他两台机器
4.配置完成后可免密ssh登陆其他机器
三、安装jdk 和scala
1.安装jdk
jdk1.8 解压包后,拷贝到/usr/java/ 目录需要自己创建
2.安装scala
scala2.11.8解压包后,拷贝到/usr/scala/ 目录自己创建
3.统一配置环境变量
sudo root用户执行
vim /etc/profile 编辑内容,在最后增加如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_162
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
export SCALA_HOME=/usr/scala/scala-2.11.8
export PATH=$PATH:$SCALA_HOME/bin
最后wq保存
source /etc/profile生效环境变量
4.执行java -version查看jdk环境配置是否成功,
5.执行scala 查看scala环境配置是否成功
6.在ubuntu02和03上安装jdk和scala,步骤同上
四、Hadoop 部署
1.加压包并拷贝到/opt/spark目录
2.配置HADOOP_HOME环境变量,HADOOP_CONF_DIR,vim /etc/profile,增加如下:
export HADOOP_HOME=/opt/spark/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin/
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
3. cd /opt/spark/hadoop-2.7.7/etc/hadoop/修改如下文件
hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_162
core-site.xml
fs.defaultFS
hdfs://ubuntu01
hadoop.tmp.dir
/home/tmp/hadoop
hdfs-site.xml
dfs.nameservices
hadoop-cluster
dfs.datanode.data.dir
file:///home/liyuan/hdfs/datanode
dfs.namenode.name.dir
file:///home/liyuan/hdfs/namenode
dfs.name.checkpoint.dir
file:///home/liyuan/hdfs/namesecondary
dfs.replication
2
yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
ubuntu01
mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.jobtracker.staging.root.dir
/home
mapreduce.jobhistory.webapp.address
ubuntu01:19888
master
ubuntu01
slaves
ubuntu01
ubuntu02
ubuntu03
4.格式化HDFS生成相应目录
master 节点上执行命令: hdfs namenode -format
5.分发拷贝到ubuntu02,ubuntu03相应目录/opt/spark/,同时要编辑/etc/profile配置HADOOP_HOME环境变量,类似第2步
6.启动集群:cd 到$HADOOP_HOME/sbin目录,./start-all.sh启动集群
7.在浏览器中输入url:http://192.168.0.110:50070,访问hadoop集群web页面,
端口要执行sudo ufw allow 50070/tcp 防火墙开启端口,或关闭防火墙,否则无法访问
五、Hive部署
1.下载解压Hive包到/opt/spark目录下
2.配置Hive环境变量
编辑/etc/profile,并且source /etc/profile生效,增加如下:
export HIVE_HOME=/opt/spark/apache-hive-2.3.3-bin
export PATH=$PATH:$HIVE_HOME/bin/
3.安装mysql
1)到官网下载deb包名称类似:mysql-apt-config_0.8.10-1_all.deb
2)sudo dpkg -i xxx.deb 会出现UI提示界面,一步步确定即可,mysql 8.0会有个新的密码加密算法,选择传统的加密类型
3) 执行sudo apt-get install mysql-server 开始安装,还有mysql-client ,安装完sudo apt-get update -y
4)service mysql start 启动服务
4.配置MySQL远程访问权限
mysql -uroot -pxxx ,xxx为安装时设置的密码
mysql> update user set host = '%' where user = 'root';
注意:如果遇到这个错误,ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'。
select host, user from user;查看一下数据库host信息是否已经有了%这个值,如果有,直接运行下面命令。
mysql> select host, user from user;
mysql> flush privileges;(使修改生效)
flush privileges;
5.拷贝mysql-connector-java.jar到hive目录下lib/中,需要自己下载
6.配置hive
修改hive目录中conf/hive-default.xml.template文件为conf/hive-site.xml
在conf目录中修改配置文件hive-site.xml
javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.0.110:3306/hive
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionPassword
spark
javax.jdo.option.ConnectionUserName
root
Username to use against metastore database
7.初始化HIVE
输入命令格式化数据库
默认数据库 schematool -initSchema -dbType derby
mysql数据库 schematool -initSchema -dbType mysql
8.终端执行命令:hive,进入数据hive数据仓库
六、Spark集群部署
1.官网下载tgz压缩包,解压到/opt/spark
2. 配置Spark,cp spark-env.sh.template spark-env.sh 编辑该文件增加:
export JAVA_HOME=/usr/java/jdk1.8.0_162
export SCALA_HOME=/usr/scala/scala-2.11.8
export HADOOP_HOME=/opt/spark/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop/
export SPARK_MASTER_IP=192.168.0.110
#worker内存配置
export SPARK_WORKER_MEMORY=1g
#配置Spark可以将数据写入HDFS
export SPARK_DIST_CLASSPATH=$(/opt/spark/hadoop-2.7.7/bin/hadoop classpath)
3.编辑/conf/slaves文件,增加:
ubuntu01
ubuntu02
ubuntu03
4.验证spark是否安装成功
./bin/run-example SparkPi 是否启动spark-shell并打印了Pi的值
Pi is roughly 3.1379156895784477
5.拷贝该spark目录到其他节点,ubuntu02、ubuntu03
6.启动spark集群
./sbin/start-all.sh
访问spark WebUI 页面
http://192.168.0.110:8080/
7.启动Job-History
./sbin/start-history-server.sh