基于Yarn的Spark环境,统计哈姆雷特词频(1)
一、最流行的大数据框架Spark
- Yarn 环境搭建
- Spark History Server 以及 Yarn MapReduce History Servcer
- Spark-submit 提交到Yarn 运行
二、Docker部署Hadoop Yarn
部署结果:
- 一台namenode节点,运行
namenode
resourcemanager
JobHistoryServer
HistoryServer
- 2台datanode节点,运行
datanode
nodemanager
- 主机Mac
docker宿主机(virtualbox)
Intellij idea
spark client
hdfs client
三、网络结构
- mac 192.168.99.1
- namenode 172.18.0.11
- datanode1,datanode2 172.18.0.13 172.18.0.14
- virtualbox 网桥 192.168.99.100
建立192.168.99.1 ~ 172.18.0.0 路由
sudo route -n add 172.18.0.0/24 192.168.99.100
docker 创建 172.18 网段,命名hadoopnet,docker设置ip必须先创建网络
docker network create --subnet=172.18.0.0/16 hadoopnet
四、启动docker
本地文件夹,整理好的工作空间
说明:每个文件夹包含一个启动脚本和一个hdfs挂载的共享卷data
说明:本地的hadoop目录会挂载到docker中hadoop/etc/hadoop配置文件目录。
1. NameNode
docker run --name namenode \ --hostname namenode \ --network hadoopnet \ --ip 172.18.0.11 \ -d \ -v $PWD/data:/opt/tmp \ -v /Users/wangsen/hadoop/datanode/hadoop:/opt/hadoop-2.7.3/etc/hadoop \ -v $PWD/spark-2.1.1-bin-hadoop2.7:/opt/spark \ --rm dbp/hadoop
dbp/hadoop是docker镜像的名字,共加载了3个共享卷(文件夹)
- /opt/tmp hdfs 存储路径
- etc/hadoop hadpoop配置路径
- 主节点挂载spark
在创建镜像的时候没有装载spark,hadoop是通过Dockerfile创建dbp/hadoop时,装载到镜像中的;设置spark采用装载模式,也可以重新commit或build dockerfile生成包含spark的镜像。
2. DataNode(datanode1、datanode2)
docker run --name datanode1 --hostname datanode1 --network hadoopnet --ip 172.18.0.13 -d -v $PWD/data:/opt/tmp -v /Users/wangsen/hadoop/datanode/hadoop:/opt/hadoop-2.7.3/etc/hadoop --rm dbp/hadoop
docker run --name datanode2 --hostname datanode2 --network hadoopnet --ip 172.18.0.14 -d -v $PWD/data:/opt/tmp -v /Users/wangsen/hadoop/datanode/hadoop:/opt/hadoop-2.7.3/etc/hadoop --rm dbp/hadoop
五、启动HDFS、YARN
-
etc/hadoop/core-site.xml
## 配置HDFS路径 <property> <name>fs.defaultFS</name> <value>hdfs://namenode:9000</value> </property>
-
etc/hadoop/hdfs-site.xml
<property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/tmp</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/tmp</value> </property>
-
etc/hadoop/yarn-site.xml
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>namenode:18040</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>namenode:18030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>namenode:18025</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>namenode:18141</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>namenode:18088</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log.server.url</name> <value>http://namenode:19888/jobhistory/logs</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property>
-
spark/conf/spark-env
export HADOOP_CONF_DIR=/opt/hadoop-2.7.3/etc/hadoop
-
spark/conf/spark-defaults.conf
## 配置spark ui 页面,通过yarn history服务查看spark任务运行结果 ## hdfs:///tmp/spark/events是hdfs上的路径,保存spark运行信息 spark.master=local spark.yarn.historyServer.address=namenode:18080 spark.history.ui.port=18080 spark.eventLog.enabled=true spark.eventLog.dir=hdfs:///tmp/spark/events spark.history.fs.logDirectory=hdfs:///tmp/spark/events
-
hadoop/etc/hadoop-env.sh
修改JAVA_HOME,填写java_home的绝对路径
启动顺序
- HDFS
namenode -->sbin/hadoop-daemon.sh start namenode
datanode -->sbin/hadoop-daemon.sh start datanode
(已经设置好ssh免密码登录,docker共享了public_key文件。) - Yarn
namenode --> sbin/yarn-daemon.sh start resourcemanager
datanode -->sbin/yarn-daemon.sh start nodemanager - Spark jobserver
namenode--> sbin/mr-jobhistory-daemon.sh start historyserver
namenode--> spart/sbin/start-history-server.sh
六、浏览spark histroy页面
http://namenode:18080
附录 Dockerfile
如果你希望按作者的思路,搭建自己的spark docker集群,那么你可以从Dockerfile 创建image开始。
FROM ubuntu:16.04 MAINTAINER wsn RUN apt-get update RUN apt-get install -y openjdk-8-jdk RUN apt-get install -y vim RUN apt install -y net-tools RUN apt install -y iputils-ping RUN apt-get install -y openssh-server RUN mkdir /var/run/sshd RUN echo 'root:root' |chpasswd RUN sed -ri 's/^PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config RUN sed -ri 's/# StrictHostKeyChecking ask/StrictHostKeyChecking no/' /etc/ssh/ssh_config RUN mkdir /root/.ssh RUN ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa RUN cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64 ENV JRE_HOME /usr/lib/jvm/java-8-openjdk-amd64/jre ENV PATH /opt/hadoop-2.7.3/bin:/opt/hadoop-2.7.3/sbin:/usr/lib/jvm/java-8-openjdk-amd64/bin:$PATH ENV CLASSPATH ./:/usr/lib/jvm/java-8-openjdk-amd64/lib:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib ADD hadoop-2.7.3.tar.gz /opt/ EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
第11,12章节-Python3.5-DjangoORM基本创建基本类型以及生成数据库结构
接着上一课 修改app01\views.py: from django.shortcuts import render,HttpResponse,redirect USER_DICT = { '1': {'name': 'root1', 'email': 'root@live.com'}, '2': {'name': 'root2', 'email': 'root@live.com'}, '3': {'name': 'root3', 'email': 'root@live.com'}, '4': {'name': 'root4', 'email': 'root@live.com'}, '5': {'name': 'root5', 'email': 'root@live.com'}, } def index(request,nid,uid): # indexx print(request.path_info) # /asdfasdfasdf/13/ # reverse 能反转 from django.urls import reverse # v = reverse('indexx', ...
- 下一篇
PHP执行慢分析工具xdebug + webgrind
经常碰到用户PHP网站打开速度慢,运维环境配置的锅?PHP代码的锅?当你发现程序变慢,但有时我们不知道具体是哪块代码执行慢(排除环境问题),或者哪个方法占用了太长的执行时间,这时我们就需要一个调试工具,来帮我们记录程序执行过程中的一些具体信息,包括类、方法名、执行时间、次数等信息,今天介绍的工具是xdebug以及他的结果分析展示工具webgrind。 xdebug安装cd /root/oneinstack/srcwget https://xdebug.org/files/xdebug-2.5.5.tgztar xzf xdebug-2.5.5.tgzcd xdebug-2.5.5/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmake && make installphp加载xdebug模块 cat > /usr/local/php/etc/php.d/ext-xdebug.ini << EOF[xdebug]zend_extensi...
相关文章
文章评论
共有0条评论来说两句吧...