基于docker搭建跨主机的spark集群并配置notebook(一)
来源:互联网 发布:淘宝访客平均价值 编辑:程序博客网 时间:2024/06/09 23:40
一、制作docker镜像
知识水平尚有欠缺,对于dockerfile那一套理论也不熟悉,所以采取的制作一个docker镜像作为启动集群的载体:
该集群有12个节点,即12个容器,平均分配在两个宿主机上,具体名字是master、node1、node2、......、node11
(一)在宿主机安装docker:
不同的系统安装docker的方法
(二)拉取一个docker镜像
我选择的ubuntu 16.04
#docker pull ubuntu:16.04
(三)启动一个容器
#docker run -v /home/docker/software/:/software -it ubuntu:16.04-v参数将宿主机的/home/docker/software目录映射到了容器的software目录下
(四)将需要安装的软件拷贝到宿主机/home/docker/software目录下
1、jdk(1.8)
2、Zookeeper(3.4.5)
3、Hadoop(2.7.3)
4、Spark(2.1.0)
5、scala(2.10.5)
6、Anaconda2(4.3.0)
在容器的/software目录下就可以看到这些安装包了
(五)在容器中安装ssh
#apt-get install ssh如果下载速度很慢,建议换下源
将ssh服务配置为开机启动
#vim ~/.bashrc加入/usr/sbin/sshd
#vim /etc/rc.local加入/usr/sbin/sshd
生成访问密钥
#cd ~/#ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa#cd .ssh#cat id_rsa.pub >> authorized_keys
(六)安装jdk
解压/software目录下的jdk安装包,将解压后的jdk文件夹移动到新建的/usr/java目录下,重命名为jdk
配置环境变量
#vim ~/.bashrc在末尾添加
export JAVA_HOME=/usr/java/jdk
export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:$JAVA_HOME/bin
检查是否安装成功
#java -version
(七)安装Zookeeper
将zookeeper安装包解压到/root目录下并重命名为zookeeper
#mv /software/zookeeper-3.4.5.tar.gz ~
#tar -zxvf software/zookeeper-3.4.5.tar.gz #mv ~/zookeeper-3.4.5 zookeeper配置zookeeper
#cd ~/zookeeper/conf/#cp zoo_sample.cfg zoo.cfg#vim zoo.cfg修改dataDir = /root/zookeeper/tmp
在最后添加
server.1=node3:2888:3888
server.2=node4:2888:3888
server.3=node5:2888:3888
保存退出,新建一个tmp文件夹
保存退出,新建一个tmp文件夹
#mkdir ~/zookeeper/tmp在创建一个空文件
#touch ~/zookeeper/tmp/myid向该文件写入ID
#echo 1 > ~/zookeeper/tmp/myid
(七)安装Hadoop
将/sofware目录下的hadoop安装包解压到root目录下并重命名为hadoop
#mv /software/hadoop-2.7.3-64bit.tar.gz ~#tar -zxvf hadoop-2.7.3-64bit.tar.gz#mv hadoop-2.7.3 hadoop配置hadoop
#cd ~/hadoop/etc/hadoop#vim hadoop-env.sh加入java环境变量
export JAVA_HOME=/usr/java/jdk
#vim core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://ns1</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/root/hadoop/tmp</value> </property> <property> <name>ha.zookeeper.quorum</name> <value>node3:2181,node4:2181,node5:2181</value> </property></configuration>
#vim hdfs-site.xml
<configuration><property><name>dfs.nameservices</name><value>ns1</value></property><property><name>dfs.ha.namenodes.ns1</name><value>nn1,nn2</value></property><property><name>dfs.namenode.rpc-address.ns1.nn1</name><value>master:9000</value></property><property><name>dfs.namenode.http-address.ns1.nn1</name><value>master:50070</value></property><property><name>dfs.namenode.rpc-address.ns1.nn2</name><value>node1:9000</value></property><property><name>dfs.namenode.http-address.ns1.nn2</name><value>node1:50070</value></property><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://node3:8485;node4:8485;node5:8485/ns1</value></property><property><name>dfs.journalnode.edits.dir</name><value>/root/hadoop/journal</value></property><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property><property><name>dfs.client.failover.proxy.provider.ns1</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><property><name>dfs.ha.fencing.methods</name><value>sshfenceshell(/bin/true)</value></property><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/root/.ssh/id_rsa</value></property><property><name>dfs.ha.fencing.ssh.connect-timeout</name><value>30000</value></property></configuration>
#mv mapred-site.xml.template mapred-site.xml#vim mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>
#vim yarn-site.xml
<configuration><!-- Site specific YARN configuration properties --><property><name>yarn.resourcemanager.hostname</name><value>node2</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>
#vim slaves
masternode1node2node3node4node5node6node7node8node9node10node11
(八)安装Spark
将/sofware目录下的scala安装包解压到root目录下并重命名为scala
export HADOOP_HOME=/root/hadoop
export SCALA_HOME=/root/scala
export SPARK_HOME=/root/spark
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin
#mv /software/scala-2.10.5.tgz ~ #tar -zxvf scala-2.10.5.tgz#mv scala-2.10.5 scala#vim ~/.bashrcexport JAVA_HOME=/usr/java/jdk
export HADOOP_HOME=/root/hadoop
export SCALA_HOME=/root/scala
export SPARK_HOME=/root/spark
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin
#mv /software/spark-2.1.0-bin-hadoop2.7tgz ~#tar -zxvf spark-2.1.0-bin-hadoop2.7.tgz #mv spark-2.1.0-bin-hadoop2.3 spark修改spark文件slaves
#vim ~/spark/conf/slaves
masternode1node2node3node4node5node6node7node8node9node10node11
#mv spark-env.sh.template spark-env.sh#vim ~/spark/conf/spark-env.shexport SPARK_MASTER_IP=master
export SPARK_WORKER_MEMORY=1024m
export JAVA_HOME=/usr/java/jdk
export SCALA_HOME=/root/scala
export SPARK_HOME=/root/spark
export HADOOP_CONF_DIR=/root/hadoop/etc/hadoop
export SPARK_LIBRARY_PATH=$$SPARK_HOME/lib
export SCALA_LIBRARY_PATH=$SPARK_LIBRARY_PATH
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_MASTER_PORT=7077
(九)安装Anaconda2
#bash /software/Anaconda2-4.3.0-Linux-x86_64.sh可能需要先安装bizp2(#apt-get install bzip2)
(十)编写修改hosts的脚本:
由于需要对每个容器的地址进行规划,避免启动后再进行修改,所以先写一个脚本,启动容器后再执行该脚本即可规划好所有容器的地址
#vim ~/change_hosts.sh
#!/bin/bash ssh root@172.16.0.2 "exec /root/run.sh" ssh root@172.16.0.3 "exec /root/run.sh" ssh root@172.16.0.4 "exec /root/run.sh" ssh root@172.16.0.5 "exec /root/run.sh" ssh root@172.16.0.6 "exec /root/run.sh" ssh root@172.16.0.7 "exec /root/run.sh" ssh root@172.16.0.8 "exec /root/run.sh" ssh root@172.16.0.9 "exec /root/run.sh" ssh root@172.16.0.10 "exec /root/run.sh" ssh root@172.16.0.11 "exec /root/run.sh" ssh root@172.16.0.12 "exec /root/run.sh" ssh root@172.16.0.13 "exec /root/run.sh"/etc/init.d/ssh start -D
#vim run.sh
#!/bin/bash echo "127.0.0.1 localhost" > /etc/hosts echo "172.16.0.2 master" >> /etc/hosts echo "172.16.0.3 node1" >> /etc/hosts echo "172.16.0.4 node2" >> /etc/hosts echo "172.16.0.5 node3" >> /etc/hosts echo "172.16.0.6 node4" >> /etc/hosts echo "172.16.0.7 node5" >> /etc/hosts echo "172.16.0.8 node6" >> /etc/hosts echo "172.16.0.9 node7" >> /etc/hosts echo "172.16.0.10 node8" >> /etc/hosts echo "172.16.0.11 node9" >> /etc/hosts echo "172.16.0.12 node10" >> /etc/hosts echo "172.16.0.13 node11" >> /etc/hosts/etc/init.d/ssh start -D
(十一)提交该镜像为一个新的镜像
在容器中#docker ps -a查看容器的containerID
在宿主机中
#docker commit {containerId}会返回一个ID
#docker tag {ID} orientsoft/spark:1.0至此镜像制作完毕,下一篇基于该镜像进行部署spark集群
0 0
- 基于docker搭建跨主机的spark集群并配置notebook(一)
- 基于docker搭建跨主机的spark集群并配置notebook(二)
- 在基于docker的Hadoop集群上搭建Spark
- 求解:基于docker搭建跨主机hadoop集群遇到的问题
- 在Docker上使用Weave搭建Hadoop和Spark跨主机容器集群
- 基于docker的hadoop HA 集群搭建
- 基于Docker的Hadoop集群快速搭建
- 用docker搭建spark集群
- 用 Docker 搭建 Spark 集群
- 基于树莓派的Spark集群搭建
- 搭建基于mesos的spark集群
- 基于docker搭建hadoop分布式集群(一)
- 基于Docker搭建Hadoop集群
- 基于Vmware Workstation上的hadoop集群搭建Spark集群
- 多主机搭建基于 Docker 运行的 Hadoop Cluster 总结
- Spark学习(一):Spark集群的搭建
- 在Docker下搭建Spark+HDFS集群
- 利用Docker Compose 搭建Spark 集群
- serialVersionUID作用 http://swiftlet.net/archives/1268
- 计算两经纬度之间的距离
- 网站如何评估SEO效果
- 利用Java实现SMS平台发送手机短信
- DataTables 使用杂谈
- 基于docker搭建跨主机的spark集群并配置notebook(一)
- 如何使用纯js实现一个带有灰色半透明背景的弹出框
- HugeGraph ID System
- HDU1213 How Many Tables(并查集)
- 枚举类随记
- 转:SSD论文阅读(Wei Liu——【ECCV2016】SSD Single Shot MultiBox Detector)
- Cent OS系统导入导出数据库和数据表
- 探索Rx的主要接口
- udhcp源码剖析(五)——DHCP客户端重要的数据结构和初始化配置
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
邦乐
凌野沙希
桑吉悦希
摩洛希亚
希亚拉博夫
阿克希亚
纽迪希亚
可丽希亚
希亚
澳希亚
奥妮克希亚掉落
奥妮克希亚攻略
香港洁希亚干洗
奥妮克希亚门任务
奥妮克希亚任务
洁希亚干洗店
洁希亚洗衣好不好
洁希亚公司怎么样
希冀
希冀的读音
希冀的拼音
希冀是什么意思
希翼与希冀的区别
我所希冀的未来
希冀和希望的区别
希力
希勒
希塔
希声
希夷作品
希夷
希夷之大理
故人心尚尔 希夷
不一样的我们希夷
希娜
灵公主希娜照片全身照
花仙子希娜全身图片
希尔
女排希尔
希尔排序
希尔冒险