3台机器配置spark-2.1.0集群

本文详细介绍了如何在三台Ubuntu主机上部署Spark集群的过程,并演示了如何运行一个简单的JavaWordCount程序。

一. 环境介绍

三台主机,主机名和ip分别为:
ubuntu1  10.3.19.171
ubuntu2  10.3.19.172
ubuntu3  10.3.19.173
三台主机的登录用户名是bigdata,home目录是/home/bigdata
现在三台主机上部署spark集群。ubuntu1作为master, ubuntu1 ubuntu2 ubuntu3均作为worker。

二.在一台主机上部署spark

bigdata@ubuntu1:~/download$ tar -zxvf spark-2.1.0-bin-hadoop2.7.tgz
bigdata@ubuntu1:~/download$ mv spark-2.1.0-bin-hadoop2.7 ../run/
bigdata@ubuntu1:~/download$ cd ../run/
bigdata@ubuntu1:~/run$ ln -s spark-2.1.0-bin-hadoop2.7 spark

创建spark日志目录:
bigdata@ubuntu1:~/run/spark$ mkdir logs

三. 在一台主机上配置spark

a. 创建脚本文件spark-env.sh,并增加如下配置
bigdata@ubuntu1:~/run/spark/conf$ cp spark-env.sh.template spark-env.sh
bigdata@ubuntu1:~/run/spark/conf$ cat spark-env.sh
......
export JAVA_HOME=/home/bigdata/usr/jdk1.8.0_25
export HADOOP_HOME=/home/bigdata/run/hadoop
export SPARK_MASTER_IP=ubuntu1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_MERMORY=1G
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_DAEMON_JAVA_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/home/bigdata/run/spark/logs -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+DisableExplicitGC -Xms128m -XX:PermSize=128m -XX:MaxPermSize=256m"
#export SPARK_DAEMON_JAVA_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/home/bigdata/run/spark/logs -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+DisableExplicitGC -Xms1024m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m"
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=7777 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://ubuntu1:9000/sparkHistoryLogs -Dspark.yarn.historyServer.address=ubuntu1:7788 -Dspark.history.fs.updateInterval=10"

b. 创建配置文件spark-defaults.conf,并增加如下配置
bigdata@ubuntu1:~/run/spark/conf$ cp spark-defaults.conf.template spark-defaults.conf
bigdata@ubuntu1:~/run/spark/conf$ cat spark-defaults.conf
......
spark.master                     spark://ubuntu1:7077
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://ubuntu1:9000/sparkHistoryLogs
spark.eventLog.compress          true
spark.history.updateInterval     5
spark.history.ui.port            7777
spark.history.fs.logDirectory    hdfs://ubuntu1:9000/sparkHistoryLogs

c. 创建slaves,并增加如下配置
bigdata@ubuntu1:~/run/spark/conf$ cp slaves.template slaves
bigdata@ubuntu3:~/run/spark/conf$ cat slaves
......
# A Spark Worker will be started on each of the machines listed below.
ubuntu1
ubuntu2
ubuntu3

至此,在一台主机上部署spark已完成。


四. 部署spark到主机ubuntu2 ubuntu3

为了部署方便,直接拷贝ubuntu1上的spark目录到ubuntu1 ubuntu2
bigdata@ubuntu1:~/run$ tar -zcvf spark-2.1.0-bin-hadoop2.7.tar.gz spark-2.1.0-bin-hadoop2.7/
bigdata@ubuntu1:~/run$ scp spark-2.1.0-bin-hadoop2.7.tar.gz ubuntu2:/home/bigdata/run
bigdata@ubuntu1:~/run$ scp spark-2.1.0-bin-hadoop2.7.tar.gz ubuntu3:/home/bigdata/run
至ubuntu2 ubuntu3解压

ubuntu2: 
bigdata@ubuntu2:~/run$ tar -zxvf spark-2.1.0-bin-hadoop2.7.tar.gz
bigdata@ubuntu2:~/run$ ln -s spark-2.1.0-bin-hadoop2.7 spark

ubuntu3: 
bigdata@ubuntu3:~/run$ tar -zxvf spark-2.1.0-bin-hadoop2.7.tar.gz
bigdata@ubuntu3:~/run$ ln -s spark-2.1.0-bin-hadoop2.7 spark

至此,spark已部署到三机主机上。


五. 运行spark

bigdata@ubuntu1:~/run/spark/sbin$ ./start-all.sh 
在ubuntu1上查看spark进程,包含worker和master
bigdata@ubuntu1:~/run/spark/sbin$ jps -l
1520 org.apache.spark.deploy.worker.Worker
1433 org.apache.spark.deploy.master.Master
1627 sun.tools.jps.Jps

在ubuntu2 ubuntu3上查看spark进程,只有worker
bigdata@ubuntu2:~/run$ jps -l
1057 sun.tools.jps.Jps
961 org.apache.spark.deploy.worker.Worker

查看页面:
访问:http://10.3.19.171:8080/

查看job历史记录, 先启动hadoop:
bigdata@ubuntu1:~/run/hadoop/sbin$ ./start-all.sh
bigdata@ubuntu1:~/run/spark/sbin$ ./start-history-server.sh 
访问:http://10.3.19.171:7777/


六. 运行自己的JavaWordCount程序


获取程序源码通过:
使用mvn package命令编译得到jar包:mysparkdemo-0.0.1.jar
将mysparkdemo-0.0.1.jar包上传到目录 /home/bigdata/run/spark
至此执行程序已准备好。

创建一文本文件,程序会统计此文本中各单词出现的次数。
bigdata@ubuntu1:~/run/spark$ touch hello.txt
bigdata@ubuntu1:~/run/spark$ cat LICENSE > hello.txt
将hello.txt文件拷贝到hdfs上
bigdata@ubuntu1:~/run/spark$ hdfs dfs -mkdir -p /user/bigdata
bigdata@ubuntu1:~/run/spark$ hdfs dfs -copyFromLocal hello.txt /user/bigdata/hello.txt
bigdata@ubuntu1:~/run/spark$ hdfs dfs -cat /user/bigdata/hello.txt

执各程序命令:
bigdata@ubuntu1:~/run/spark/bin$ ./spark-submit --class com.ai.apark.demo.JavaWordCount --master spark://ubuntu1:7077 ../mysparkdemo-0.0.1.jar hello.txt









虽然所给引用未直接提及在Ubuntu系统上配置Spark 2.1.0的详细步骤,但可以给出通用的配置步骤: ### 环境准备 确保Ubuntu系统已安装Java(建议Java 8)和Scala。可以使用以下命令安装OpenJDK 8: ```bash sudo apt-get update sudo apt-get install openjdk-8-jdk ``` 检查Java是否安装成功: ```bash java -version ``` 安装Scala: ```bash sudo apt-get install scala ``` 检查Scala是否安装成功: ```bash scala -version ``` ### 下载Spark 2.1.0Spark官方网站下载Spark 2.1.0预编译版本: ```bash wget https://archive.apache.org/dist/spark/spark-2.1.0/spark-2.1.0-bin-hadoop2.7.tgz ``` 解压下载的文件: ```bash tar -zxvf spark-2.1.0-bin-hadoop2.7.tgz mv spark-2.1.0-bin-hadoop2.7 /opt/spark-2.1.0 ``` ### 配置Spark 进入Spark配置目录: ```bash cd /opt/spark-2.1.0/conf ``` 复制配置模板文件: ```bash cp spark-env.sh.template spark-env.sh ``` 编辑`spark-env.sh`文件,设置Java和Spark的环境变量: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export SPARK_MASTER_HOST=<your_ip_address> ``` 其中`<your_ip_address>`是你的主机IP地址。 ### 启动Spark 启动Spark Master节点: ```bash /opt/spark-2.1.0/sbin/start-master.sh ``` 启动Worker节点: ```bash /opt/spark-2.1.0/sbin/start-slave.sh spark://<your_ip_address>:7077 ``` 其中`<your_ip_address>`是你的主机IP地址。 ### 验证配置 打开浏览器,访问`http://<your_ip_address>:8080`,可以看到Spark集群的管理界面,说明配置成功。 ### 运行示例程序 可以运行Spark自带的示例程序来验证配置: ```bash /opt/spark-2.1.0/bin/run-example SparkPi ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值