首页 文章 精选 留言 我的

精选列表

搜索[搭建],共10000篇文章
优秀的个人博客,低调大师

Hadoop和Spark集群搭建的大致流程

【Hadoop】 1.首先,准备好Hadoop安装包和JDK的安装与配置2.建立各个机器之间的ssh信任关系,即互信3.修改hadoop配置文件【core、hdfs、yarn、mapred】默认配置文件:core-default.xml、hdfs-default.xml、mapred-default.xml、yarn-default.xml特定配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml特定配置文件会覆盖默认的配置项【core-site.xml】是整个Hadoop通用的配置,集群的每个主机都存在。分布式文件系统名字、临时目录以及其他与网络配置相关的参数【hdfs-site.xml】配置HDFS系统的运行时属性和各个数据节点上文件的物理存储相关的属性主-辅节点存放元数据文件表(fsimage文件)的目录主-辅节点存储元数据事务处理文件(edits文件)的目录默认数据块大小数据块备份数量名称节点和数据节点通信的服务器线程数,默认为10【mapred-site.xml】保护了与CPU、内存、磁盘I/O和网络相关的参数任务是本地作业执行器还是提交到yarn集群运行Map或Reduce任务的JVM堆大小运行Map和Reduce任务的容器的内存大小存储中间数据文件的本地目录作业跟踪器(YARN)的服务器进程数量任务重试的最大次数【yarn-site.xml】配置由YARN框架提供的通用服务守护进程的属性,比如资源管理器和节点管理器运行资源管理器的主机名以及端口号启动容器的最大最小内存量和虚拟CPU内核数 【Spark】 在有JDK和Hadoop的基础上,安装Scala修改配置文件【spark属性、环境变量、日志配置】属性可以直接在sparkconf上配置给sparkcontextspark shell和spark-submit工具支持两种方式动态加载配置,第一种是命令行选项,第二种运行./bin/spark-submit实现当然spark-submit也会在conf/spark-defaults.conf中读取配置选项driver程序运行时需要的cpu内核数和内存数每个executor进程使用的内存数

优秀的个人博客,低调大师

Django 搭建CMDB系统完整[3](主页面)

main_page.html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>CMDB-后台系统</title> <link href="/static/style/authority/main_css.css" rel="stylesheet" type="text/css" /> <link href="/static/style/authority/zTreeStyle.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="/static/scripts/jquery/jquery-1.7.1.js"></script> <script type="text/javascript" src="/static/scripts/zTree/jquery.ztree.core-3.2.js"></script> <script type="text/javascript" src="/static/scripts/authority/commonAll.js"></script> <script type="text/javascript"> /退出系统/ function logout(){ if(confirm("您确定要退出本系统吗?")){ window.location.href = "/login/"; } } /**获得当前日期**/ function getDate01(){ var time = new Date(); var myYear = time.getFullYear(); var myMonth = time.getMonth()+1; var myDay = time.getDate(); if(myMonth < 10){ myMonth = "0" + myMonth; } document.getElementById("yue_fen").innerHTML = myYear + "." + myMonth; document.getElementById("day_day").innerHTML = myYear + "." + myMonth + "." + myDay; } /**加入收藏夹**/ function addfavorite(){ var ua = navigator.userAgent.toLowerCase(); if (ua.indexOf("360se") > -1){ art.dialog({icon:'error', title:'友情提示', drag:false, resize:false, content:'由于360浏览器功能限制,加入收藏夹功能失效', ok:true,}); }else if (ua.indexOf("msie 8") > -1){ window.external.AddToFavoritesBar('${dynamicURL}/authority/loginInit.action','xmrbi-cmdb');//IE8 }else if (document.all){ window.external.addFavorite('${dynamicURL}/authority/loginInit.action','xmrbi-cmdb'); }else{ art.dialog({icon:'error', title:'友情提示', drag:false, resize:false, content:'添加失败,请用ctrl+D进行添加', ok:true,}); } } </script> <script type="text/javascript"> /* zTree插件加载目录的处理 */ var zTree; var setting = { view: { dblClickExpand: false, showLine: false, expandSpeed: ($.browser.msie && parseInt($.browser.version)<=6)?"":"fast" }, data: { key: { name: "resourceName" }, simpleData: { enable:true, idKey: "resourceID", pIdKey: "parentID", rootPId: "" } }, callback: { // beforeExpand: beforeExpand, // onExpand: onExpand, onClick: zTreeOnClick } }; var curExpandNode = null; function beforeExpand(treeId, treeNode) { var pNode = curExpandNode ? curExpandNode.getParentNode():null; var treeNodeP = treeNode.parentTId ? treeNode.getParentNode():null; for(var i=0, l=!treeNodeP ? 0:treeNodeP.children.length; i<l; i++ ) { if (treeNode !== treeNodeP.children[i]) { zTree.expandNode(treeNodeP.children[i], false); } } while (pNode) { if (pNode === treeNode) { break; } pNode = pNode.getParentNode(); } if (!pNode) { singlePath(treeNode); } } function singlePath(newNode) { if (newNode === curExpandNode) return; if (curExpandNode && curExpandNode.open==true) { if (newNode.parentTId === curExpandNode.parentTId) { zTree.expandNode(curExpandNode, false); } else { var newParents = []; while (newNode) { newNode = newNode.getParentNode(); if (newNode === curExpandNode) { newParents = null; break; } else if (newNode) { newParents.push(newNode); } } if (newParents!=null) { var oldNode = curExpandNode; var oldParents = []; while (oldNode) { oldNode = oldNode.getParentNode(); if (oldNode) { oldParents.push(oldNode); } } if (newParents.length>0) { for (var i = Math.min(newParents.length, oldParents.length)-1; i>=0; i--) { if (newParents[i] !== oldParents[i]) { zTree.expandNode(oldParents[i], false); break; } } }else { zTree.expandNode(oldParents[oldParents.length-1], false); } } } } curExpandNode = newNode; } function onExpand(event, treeId, treeNode) { curExpandNode = treeNode; } /** 用于捕获节点被点击的事件回调函数 **/ function zTreeOnClick(event, treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj("dleft_tab1"); zTree.expandNode(treeNode, null, null, null, true); // zTree.expandNode(treeNode); // 规定:如果是父类节点,不允许单击操作 if(treeNode.isParent){ // alert("父类节点无法点击哦..."); return false; } // 如果节点路径为空或者为"#",不允许单击操作 if(treeNode.accessPath=="" || treeNode.accessPath=="#"){ //alert("节点路径为空或者为'#'哦..."); return false; } // 跳到该节点下对应的路径, 把当前资源ID(resourceID)传到后台,写进Session rightMain(treeNode.accessPath); if( treeNode.isParent ){ $('#here_area').html('当前位置:'+treeNode.getParentNode().resourceName+'&nbsp;>&nbsp;<span style="color:#1A5CC6">'+treeNode.resourceName+'</span>'); }else{ $('#here_area').html('当前位置:系统&nbsp;>&nbsp;<span style="color:#1A5CC6">'+treeNode.resourceName+'</span>'); } }; /* 上方菜单 */ function switchTab(tabpage,tabid){ var oItem = document.getElementById(tabpage).getElementsByTagName("li"); for(var i=0; i<oItem.length; i++){ var x = oItem[i]; x.className = ""; } if('left_tab1' == tabid){ $(document).ajaxStart(onStart).ajaxSuccess(onStop); // 异步加载"业务模块"下的菜单 loadMenu('YEWUMOKUAI', 'dleft_tab1'); }else if('left_tab2' == tabid){ $(document).ajaxStart(onStart).ajaxSuccess(onStop); // 异步加载"系统管理"下的菜单 loadMenu('XITONGMOKUAI', 'dleft_tab1'); }else if('left_tab3' == tabid){ $(document).ajaxStart(onStart).ajaxSuccess(onStop); // 异步加载"其他"下的菜单 loadMenu('QITAMOKUAI', 'dleft_tab1'); } } $(document).ready(function(){ $(document).ajaxStart(onStart).ajaxSuccess(onStop); /** 默认异步加载"业务模块"目录 **/ loadMenu('YEWUMOKUAI', "dleft_tab1"); // 默认展开所有节点 if( zTree ){ // 默认展开所有节点 zTree.expandAll(true); } }); function loadMenu(resourceType, treeObj){ /*$.ajax({ type:"POST", url:"${dynamicURL}/authority/modelPart.action?resourceType=" + resourceType, dataType : "json", success:function(data){ // 如果返回数据不为空,加载"业务模块"目录 if(data != null){ // 将返回的数据赋给zTree $.fn.zTree.init($("#"+treeObj), setting, data); alert(treeObj); zTree = $.fn.zTree.getZTreeObj(treeObj); if( zTree ){ // 默认展开所有节点 zTree.expandAll(true); } } } });*/ data = [{"accessPath":"","checked":false,"delFlag":0,"parentID":1,"resourceCode":"","resourceDesc":"","resourceGrade":2,"resourceID":3,"resourceName":"菜单一","resourceOrder":0,"resourceType":""}, {"accessPath":"house_list.html","checked":false,"delFlag":0,"parentID":3,"resourceCode":"","resourceDesc":"","resourceGrade":2,"resourceID":31,"resourceName":"菜单1","resourceOrder":0,"resourceType":""}, {"accessPath":"","checked":false,"delFlag":0,"parentID":3,"resourceCode":"","resourceDesc":"","resourceGrade":2,"resourceID":32,"resourceName":"菜单2","resourceOrder":0,"resourceType":""}, {"accessPath":"","checked":false,"delFlag":0,"parentID":1,"resourceCode":"","resourceDesc":"","resourceGrade":2,"resourceID":4,"resourceName":"菜单二","resourceOrder":0,"resourceType":""}, {"accessPath":"","checked":false,"delFlag":0,"parentID":4,"resourceCode":"","resourceDesc":"","resourceGrade":2,"resourceID":41,"resourceName":"菜单3","resourceOrder":0,"resourceType":""}, {"accessPath":"","checked":false,"delFlag":0,"parentID":4,"resourceCode":"","resourceDesc":"","resourceGrade":2,"resourceID":42,"resourceName":"菜单4","resourceOrder":0,"resourceType":""}]; // 如果返回数据不为空,加载"业务模块"目录 if(data != null){ // 将返回的数据赋给zTree("#"+treeObj), setting, data); // alert(treeObj); zTree = $.fn.zTree.getZTreeObj(treeObj); if( zTree ){ // 默认展开所有节点 zTree.expandAll(true); } } } //ajax start function function onStart(){ $("#ajaxDialog").show(); } //ajax stop function function onStop(){ // $("#ajaxDialog").dialog("close"); $("#ajaxDialog").hide(); } </script> </head> <body onload="getDate01()"> <div id="top"> <div id="top_logo"> <img alt="logo" src="/static/images/common/logo.jpg" width="274" height="49" style="vertical-align:middle;"> </div> <div id="top_links"> <div id="top_op"> <ul> <li> <img alt="当前用户" src="/static/images/common/user.jpg">: <span>{% if user.username %}{{ user.username }}{% else %}anonymous user!You need to <a href="/login/">login</a>{% endif %}</span> </li> <li> <img alt="事务月份" src="/static/images/common/month.jpg">: <span id="yue_fen"></span> </li> <li> <img alt="今天是" src="/static/images/common/date.jpg">: <span id="day_day"></span> </li> </ul> </div> <div id="top_close"> <a href="javascript:void(0);" onclick="logout();" target="_parent"> <img alt="退出系统" title="退出系统" src="/static/images/common/close.jpg" style="position: relative; top: 10px; left: 25px;"> </a> </div> </div> </div> <div id="side"> <div id="left_menu"> <ul id="TabPage2" style="height:200px; margin-top:50px;"> <li id="left_tab1" class="selected" onClick="javascript:switchTab('TabPage2','left_tab1');" title="服务器资产管理"> <img alt="服务器资产管理" title="服务器资产管理" src="/static/images/common/1_hover.jpg" width="33" height="31"> </li> <li id="left_tab2" onClick="javascript:switchTab('TabPage2','left_tab2');" title="监控管理系统"> <img alt=" 监控管理系统" title=" 监控管理系统" src="/static/images/common/2.jpg" width="33" height="31"> </li> <li id="left_tab3" onClick="javascript:switchTab('TabPage2','left_tab3');" title="系统管理"> <img alt=" 系统管理" title="系统管理" src="/static/images/common/3.jpg" width="33" height="31"> </li> </ul> <div id="nav_show" style="position:absolute; bottom:0px; padding:10px;"> <a href="javascript:;" id="show_hide_btn"> <img alt="显示/隐藏" title="显示/隐藏" src="/static/images/common/nav_hide.png" width="35" height="35"> </a> </div> </div> <div id="left_menu_cnt"> <div id="nav_module"> <img src="/static/images/common/module_1.png" width="210" height="58"/> </div> <div id="nav_resource"> <ul id="dleft_tab1" class="ztree"></ul> </div> </div> </div> <script type="text/javascript"> $(function(){ $('#TabPage2 li').click(function(){ var index = $(this).index(); $(this).find('img').attr('src', '/static/images/common/'+ (index+1) +'_hover.jpg'); $(this).css({background:'#fff'}); $('#nav_module').find('img').attr('src', '/static/images/common/module_'+ (index+1) +'.png'); $('#TabPage2 li').each(function(i, ele){ if( i!=index ){ $(ele).find('img').attr('src', '/static/images/common/'+ (i+1) +'.jpg'); $(ele).css({background:'#044599'}); } }); // 显示侧边栏 switchSysBar(true); }); // 显示隐藏侧边栏 $("#show_hide_btn").click(function() { switchSysBar(); }); }); /**隐藏或者显示侧边栏**/ function switchSysBar(flag){ var side = $('#side'); var left_menu_cnt = $('#left_menu_cnt'); if( flag==true ){ // flag==true left_menu_cnt.show(500, 'linear'); side.css({width:'280px'}); $('#top_nav').css({width:'77%', left:'304px'}); $('#main').css({left:'280px'}); }else{ if ( left_menu_cnt.is(":visible") ) { left_menu_cnt.hide(10, 'linear'); side.css({width:'60px'}); $('#top_nav').css({width:'100%', left:'60px', 'padding-left':'28px'}); $('#main').css({left:'60px'}); $("#show_hide_btn").find('img').attr('src', '/static/images/common/nav_show.png'); } else { left_menu_cnt.show(500, 'linear'); side.css({width:'280px'}); $('#top_nav').css({width:'77%', left:'304px', 'padding-left':'0px'}); $('#main').css({left:'280px'}); $("#show_hide_btn").find('img').attr('src', '/static/images/common/nav_hide.png'); } } } </script> <!-- side menu start --> <div id="top_nav"> <span id="here_area">当前位置:系统&nbsp;>&nbsp;系统介绍</span> </div> <div id="main"> <iframe name="right" id="rightMain" src="" frameborder="no" scrolling="auto" width="100%" height="100%" allowtransparency="true"/> </div> </body> </html>

优秀的个人博客,低调大师

Django 搭建CMDB系统完整[1](用户登录)

***使用的mysql数据库,所以系统中要先安装mysql数据库 1、安装环境: pip install django python -m pip install --upgrade pip setuptools python -m pip install django pip install --upgrade pyls https://pypi.python.org/simple pip install MySQL-python pip install mysqlclient mkdir /dj cd /dj django-admin startproject cmdb cd cmdb python manage.py migrate cd cmdb vi settings.py 做如下更改 ALLOWED_HOSTS = ['*'] TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'cmdb', 'USER': 'root', 'PASSWORD': 'xxxxxxx', 'HOST': '127.0.0.1', 'PORT': '3306', } } vi urls.py 做如下更改 from django.conf.urls import url from django.contrib import admin from cmdb import views from django.contrib.auth.views import * urlpatterns = [ url(r'^', login), ] vi views.py 做如下更改 from django.shortcuts import render_to_response def main_page(request): return render_to_response('main_page.html', {'user':request.user }) cd /dj/cmdb mkdir -p templates/registration cd templates vi main_page.html 做如下更改 <html> <head> <title>Django Bookmarks</title> </head> <body> <h1>Welcome to Django Bookmarks</h1> {% if user.username %} <p>Welcome {{ user.username }}! Here you can store and share bookmarks!</p> {% else %} <p>Welcome anonymous user! You need to <a href="/login/">login</a> before you can store and share bookmarks.</p> {% endif %} </body> </html> cd registration vi login.html 做如下更改 <html> <head> <title>Django Bookmarks - User Login</title> </head> <body> <h1>User Login</h1> {% if form.has_errors %} <p>Your username and password didn't match. Please try again.</p> {% endif %} <form method="post" action="."> <p><label for="id_username">Username:</label> {{ form.username }}</p> <p><label for="id_password">Password:</label> {{ form.password }}</p> <input type="hidden" name="next" value="/" /> {% csrf_token %} <input type="submit" value="login" /> </form> </body> </html>

优秀的个人博客,低调大师

Spark2.2.0 分布式离线搭建

1、Spark简介 Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。 Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。 Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。 尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。 2、部署准备 2.1、安装包准备 spark-2.2.0-bin-hadoop2.6.tgz jdk-8u161-linux-x64.tar.gz scala-2.11.0.tgz 2.2、节点配置信息2.3、节点资源配置信息3、集群配置与启动 3.1、安装包上传与解压 操作节点:risen01 操作用户:root 上传安装包spark-2.2.0-bin-hadoop2.6.tgz,scala-2.11.0.tgz,jdk-8u161-linux-x64.tar.gz(如果已经存在则不需要此步骤)到 risen01节点下的~/packages目录下,结果如图所示: 2、解压JDK安装包,Spark安装包Scala安装包和到/usr/local下 操作节点:risen01 操作用户:root 解压JDK命令: tar -zxvf ~/packeages/jdk-8u161-linux-x64.tar.gz -C /usr/local 解压spark命令: tar -zxvf ~/packages/spark-2.2.0-bin-hadoop2.6.tgz -C /usr/local 解压Scala命令: tar -zxvf ~/packages/scala-2.11.0.tgz -C /usr/local 3.2、启动前准备 操作节点:risen01,risen02,risen03 操作用户:root 在/data目录下新建立spark/work目录用来存放spark的任务处理日志 在/log目录下新建立spark目录用来存放spark的启动日志等 3.3、修改配置文件 3.3.1、编辑spark-env.sh文件 操作节点:risen01 操作用户:root 说明:请根据实际集群的规模和硬件条件来配置每一项参数 进入到/usr/local/spark-2.2.0-bin-hadoop2.6/conf目录下执行命令: cp spark-env.sh.template spark-env.sh 编辑spark-env.sh文件,添加以下内容: #设置spark的web访问端口 SPARK_MASTER_WEBUI_PORT=18080 #设置spark的任务处理日志存放目录 SPARK_WORKER_DIR=/data/spark/work #设置spark每个worker上面的核数 SPARK_WORKER_CORES=2 #设置spark每个worker的内存 SPARK_WORKER_MEMORY=1g #设置spark的启动日志等目录 SPARK_LOG_DIR=/log/spark #指定spark需要的JDK目录 export JAVA_HOME=/usr/local/jdk1.8.0_161 #指定spark需要的Scala目录 export SCALA_HOME=/usr/local/scala-2.11.0 #指定Hadoop的安装目录 export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop #指定Hadoop的配置目录 export HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop/ #实现spark-standlone HA(因为我们HA实现的是risen01和risen02之间的切换不涉及risen03,所以这段配置risen03可有可无) export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=risen01:2181,risen02:2181,risen03:2181 -Dspark.deploy.zookeeper.dir=/data/spark" 3.3.2、 编辑spark-defaults.conf文件 操作节点:risen01 操作用户:root 说明:请根据实际集群的规模和硬件条件来配置每一项参数 进入到/usr/local/spark-2.2.0-bin-hadoop2.6/conf目录下执行命令: cp spark-defaults.conf.template spark-defaults.conf 编辑spark-defaults.conf文件,添加以下内容: #设置spark的主节点 spark.master spark://risen01:7077 #开启eventLog spark.eventLog.enabled true #设置eventLog存储目录 spark.eventLog.dir /log/spark/eventLog #设置spark序列化方式 spark.serializer org.apache.spark.serializer.KryoSerializer #设置spark的driver内存 spark.driver.memory 1g #设置spark的心跳检测时间间隔 spark.executor.heartbeatInterval 20s #默认并行数 spark.default.parallelism 20 #最大网络延时 spark.network.timeout 3000s 3.3.3、 编辑slaves文件 操作节点:risen01 操作用户:root 说明:请根据实际集群的规模和硬件条件来配置每一项参数 进入到/usr/local/spark-2.2.0-bin-hadoop2.6/conf目录下执行命令: cp slaves.templete slaves 编辑slaves文件,修改localhost为: risen01 risen02 risen03 3.4、分发其他节点 执行scp命令: 操作节点:risen01 操作用户:root scp -r /usr/local/spark-2.2.0-bin-hadoop2.6 root@risen02:/usr/local scp -r /usr/local/scala-2.11.0 root@risen02:/usr/local scp -r /usr/local/jdk1.8.0_161 root@risen02:/usr/local scp -r /usr/local/spark-2.2.0-bin-hadoop2.6 root@risen03:/usr/local scp -r /usr/local/scala-2.11.0 root@risen03:/usr/local scp -r /usr/local/jdk1.8.0_161 root@risen03:/usr/local 需要提前创建好bigdata用户并实现免密(这里不再赘述,此步骤如果做过可不做) 权限修改 操作节点:risen01,risen02,risen03 操作用户:root 修改/log/spark权限命令: chown -R bigdata.bigdata /log/spark 修改/data/spark权限命令: chown -R bigdata.bigdata /data/spark 修改spark的安装目录命令: chown -R bigdata.bigdata /usr/local/spark-2.2.0-bin-hadoop2.6 修改Scala的安装目录命令: chown -R bigdata.bigdata /usr/local/scala-2.11.0 修改JDK1.8的安装目录命令:(此步骤如果做过可不做) chown -R bigdata.bigdata /usr/local/jdk1.8.0_161 结果如图下所示:3.5、启动集群 操作节点:risen01,risen02 操作用户:bigdata (1) 进入到/usr/local/spark-2.2.0-bin-hadoop2.6/sbin目录下执行./start-all.sh,查看web界面如下图所示: 然后在进入到risen02机器的spark安装目录下/usr/local/spark-2.2.0-bin-hadoop2.6/sbin执行命令./start-master.sh启动spark集群的备用主节点。(记得一定要启动备用主节点的进程,这里我们只用risen02做备用主节点,risen03虽然也配置了有资格,但是暂时我们不需要) (2) 进入到/usr/local/spark-2.2.0-bin-hadoop2.6/bin目录下执行spark-shell,并测试统计词频的测试,结果如下图所示: 截止到此,spark-standlone模式便安装成功了! 推荐阅读:https://www.roncoo.com/course/view/c4e0130ea2354c71a2cb9ba24348746c 文章来源:https://my.oschina.net/blogByRzc/blog/1800450

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Apache Tomcat

Apache Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse

Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。