<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>默认分类 on F嘉阳</title><link>https://blog.fjy8018.top/categories/%E9%BB%98%E8%AE%A4%E5%88%86%E7%B1%BB/</link><description>Recent content in 默认分类 on F嘉阳</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Thu, 07 Sep 2023 15:04:03 +0800</lastBuildDate><atom:link href="https://blog.fjy8018.top/categories/%E9%BB%98%E8%AE%A4%E5%88%86%E7%B1%BB/index.xml" rel="self" type="application/rss+xml"/><item><title>maven构建多模块SpringBoot项目遇到的坑</title><link>https://blog.fjy8018.top/archives/173/</link><pubDate>Tue, 07 Aug 2018 21:22:00 +0800</pubDate><guid>https://blog.fjy8018.top/archives/173/</guid><description>&lt;h2 id="依赖模块报错程序包不存在"&gt;&lt;a href="#%e4%be%9d%e8%b5%96%e6%a8%a1%e5%9d%97%e6%8a%a5%e9%94%99%e7%a8%8b%e5%ba%8f%e5%8c%85%e4%b8%8d%e5%ad%98%e5%9c%a8" class="header-anchor"&gt;&lt;/a&gt;依赖模块报错：程序包不存在&#10;&lt;/h2&gt;&lt;h3 id="问题描述"&gt;&lt;a href="#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0" class="header-anchor"&gt;&lt;/a&gt;问题描述&#10;&lt;/h3&gt;&lt;p&gt;使用SprinCloud构建的多模块项目，各应用使用Springboot构建，工程编写完毕，在模块中添加构建配置&#10;&lt;build&gt;&#10;&lt;plugins&gt;&#10;&lt;plugin&gt;&#10;&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;&#10;&lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;&#10;&lt;/plugin&gt;&#10;&lt;/plugins&gt;&#10;&lt;/build&gt;&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="581px" data-flex-grow="242" height="518" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/JlspqK.png" width="1256"&gt;&lt;/p&gt;&#10;&lt;p&gt;使用maven命令构建应用&lt;code&gt;mvn install package -DskipTests&lt;/code&gt;&#10;maven报错如下&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="3842px" data-flex-grow="1600" height="114" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/Jlsjnc.png" width="1825"&gt;&lt;/p&gt;&#10;&lt;h3 id="问题分析"&gt;&lt;a href="#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90" class="header-anchor"&gt;&lt;/a&gt;问题分析&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;通过报错看出，只要有依赖外部模块的均报“程序包不存在”或者“找不到符号”的错误，而通过IDEA运行工程均正常，故排除代码错误，猜测为构建错误&lt;/li&gt;&#10;&lt;li&gt;查询到公共模块要先打包，故对公共包执行了一次install，再打包子模块，失败&lt;/li&gt;&#10;&lt;li&gt;百度查找问题解决办法，做了如下尝试&#10;（1）配置maven中的jdk版本，确保小版本号也是一致的，无果&#10;（2）更换构建配置如下，无效&#10;&lt;build&gt;&#10;&lt;plugins&gt;&#10;&lt;plugin&gt;&#10;&lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;&#10;&lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;&#10;&lt;/plugin&gt;&#10;&lt;plugin&gt;&#10;&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;&#10;&lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;&#10;&lt;/plugin&gt;&#10;&lt;/plugins&gt;&#10;&lt;/build&gt;&#10;（3）使用不同的maven命令构建，包括clean、package、install等，报错信息相同&lt;/li&gt;&#10;&lt;li&gt;突然发现有人的博客说明了公共包不应该加入构建配置，否则会二次构建，导致找不到包&#10;&lt;a class="link" href="https://blog.csdn.net/liqi_q/article/details/80557157" target="_blank" rel="noopener"&#10; &gt;来源&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;注意！注意！这里有一个巨坑，我已经义无反顾的跳进去一次了，大家一定不要再往里面跳了：Common打包出来的应该是不可执行的jar包，所以不要在Common的pom中定义spring-boot-maven-plugin插件，因为这个SpringBoot插件会在Maven的package后进行二次打包，目的为了生成可执行jar包，如果C中定义了这个插件，会报错提示没有找到main函数。这时你就可以去打包front项目了，当然打包的时候可能还是不行，这里还有一个小坑，如果还是不能进行打包的话，那么就install一下root项目，也就是总目录下的pom文件对应的install操作，这样再打包front项目基本上就没有问题了，老铁，都是经验呀，希望对你们有帮助&#10;根据博客说法去除了公共包的构建配置，依然报错&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h2 id="解决方法"&gt;&lt;a href="#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95" class="header-anchor"&gt;&lt;/a&gt;解决方法&#10;&lt;/h2&gt;&lt;p&gt;根据博客说法思考了一下，考虑到父工程也没有主类，无需运行，故去除父工程的构建配置，最后添加了构建模块只有带启动类的模块，再次对整个父工程执行clean-&amp;gt;install，构建成功&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="511px" data-flex-grow="213" height="414" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/Jls0TN.png" width="882"&gt;&lt;/p&gt;&#10;</description></item><item><title>Excel字符串根据指定内容进行变化的嵌套函数</title><link>https://blog.fjy8018.top/archives/153/</link><pubDate>Sat, 12 May 2018 13:10:00 +0800</pubDate><guid>https://blog.fjy8018.top/archives/153/</guid><description>&lt;h2 id="目标"&gt;&lt;a href="#%e7%9b%ae%e6%a0%87" class="header-anchor"&gt;&lt;/a&gt;目标&#10;&lt;/h2&gt;&lt;p&gt;当前工作簿内容，其标题为&lt;code&gt;万科A(000002)近一个月历史交易(1525501238 符嘉阳)&lt;/code&gt;&#10;现希望其根据当前证券名称结合下方的日期自动变更标题为&lt;code&gt;万科A(000002)从20180309至20180410近一个月历史交易(15251101238 符嘉阳)&lt;/code&gt;&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="569px" data-flex-grow="237" height="809" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2vOyVF.png" width="1920"&gt;&lt;/p&gt;&#10;&lt;h2 id="分析"&gt;&lt;a href="#%e5%88%86%e6%9e%90" class="header-anchor"&gt;&lt;/a&gt;分析&#10;&lt;/h2&gt;&lt;p&gt;其中应该涉及一下几点&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;保留当前的标题，并对证券名称和证券代码进行截取&lt;/li&gt;&#10;&lt;li&gt;将开始日期和结束日期获取并转为目标格式的字符串&lt;/li&gt;&#10;&lt;li&gt;字符串拼接&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="所用函数"&gt;&lt;a href="#%e6%89%80%e7%94%a8%e5%87%bd%e6%95%b0" class="header-anchor"&gt;&lt;/a&gt;所用函数&#10;&lt;/h2&gt;&lt;p&gt;函数名称：MID&#10;主要功能：从一个文本字符串的指定位置开始，截取指定数目的字符。&#10;使用格式：MID(text,start_num,num_chars)&#10;参数说明：text代表一个文本字符串；start_num表示指定的起始位置；num_chars表示要截取的数目。&lt;/p&gt;&#10;&lt;p&gt;函数名称：TEXT&#10;主要功能：将数值转换为按指定数字格式表示的文本。&#10;使用格式：TEXT(value,format_text)&#10;参数说明：Value为数值、计算结果为数字值的公式，或对包含数字值的单元格的引用。&lt;/p&gt;&#10;&lt;p&gt;函数名称：CONCATENATE&#10;主要功能：将两个或多个文本字符串联接为一个字符串。&#10;使用格式：CONCATENATE(text1, [text2], &amp;hellip;)&#10;参数说明：text1 （必需）要联接的第一个项目。项目可以是文本值、数字或单元格引用。Text2, &amp;hellip; （可选）要联接的其他文本项目。最多可以有 255 个项目，总共最多支持 8,192 个字符。&lt;/p&gt;&#10;&lt;h2 id="设计结果"&gt;&lt;a href="#%e8%ae%be%e8%ae%a1%e7%bb%93%e6%9e%9c" class="header-anchor"&gt;&lt;/a&gt;设计结果&#10;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;=CONCATENATE(MID(A89,1,FIND(&amp;quot;)&amp;quot;,A89)),&amp;quot;从&amp;quot;,TEXT(A25,&amp;quot;yyyymmdd&amp;quot;),&amp;quot;至&amp;quot;,TEXT(A5,&amp;quot;yyyymmdd&amp;quot;),&amp;quot;近一个月历史交易(15251101238 符嘉阳)&amp;quot;)&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;效果如图&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="496px" data-flex-grow="206" height="562" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2vOku1.png" width="1162"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="383px" data-flex-grow="159" height="561" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2vOZUa.png" width="897"&gt;&lt;/p&gt;&#10;&lt;p&gt;通用性测试成功&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="480px" data-flex-grow="200" height="581" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2vOtvd.png" width="1163"&gt;&lt;/p&gt;&#10;&lt;p&gt;时间也会自动随内容变化&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="456px" data-flex-grow="190" height="613" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2vOf6u.png" width="1166"&gt;&lt;/p&gt;&#10;</description></item><item><title>Excel使用宏将复杂操作自动化</title><link>https://blog.fjy8018.top/archives/152/</link><pubDate>Sat, 12 May 2018 12:42:00 +0800</pubDate><guid>https://blog.fjy8018.top/archives/152/</guid><description>&lt;h2 id="简单宏操作"&gt;&lt;a href="#%e7%ae%80%e5%8d%95%e5%ae%8f%e6%93%8d%e4%bd%9c" class="header-anchor"&gt;&lt;/a&gt;简单宏操作&#10;&lt;/h2&gt;&lt;p&gt;Excel的宏实质是VB语句，现考虑制作一个宏用于将当前表中的数据复制成4个工作簿&lt;/p&gt;&#10;&lt;h3 id="录制"&gt;&lt;a href="#%e5%bd%95%e5%88%b6" class="header-anchor"&gt;&lt;/a&gt;录制&#10;&lt;/h3&gt;&lt;p&gt;打开目标工作簿，当前只有&lt;code&gt;Sheet1&lt;/code&gt;中有数据，预期结果是将当期数据复制到&lt;code&gt;Sheet2&lt;/code&gt;、&lt;code&gt;Sheet3&lt;/code&gt;、&lt;code&gt;Sheet4&lt;/code&gt;中&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="569px" data-flex-grow="237" height="809" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2vOyVF.png" width="1920"&gt;&lt;/p&gt;&#10;&lt;p&gt;点击视图-&amp;gt;录制宏&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="923px" data-flex-grow="384" height="299" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2vMdPt.png" width="1151"&gt;&lt;/p&gt;&#10;&lt;p&gt;指定名称和快捷键即可开始录制操作&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="234px" data-flex-grow="97" height="373" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2vMKfT.png" width="364"&gt;&lt;/p&gt;&#10;&lt;h3 id="查看代码"&gt;&lt;a href="#%e6%9f%a5%e7%9c%8b%e4%bb%a3%e7%a0%81" class="header-anchor"&gt;&lt;/a&gt;查看代码&#10;&lt;/h3&gt;&lt;p&gt;录制完成后店家查看宏，选择编辑即可查看VB代码&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="231px" data-flex-grow="96" height="470" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2vMYMM.png" width="454"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="493px" data-flex-grow="205" height="929" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2vO2Gr.png" width="1912"&gt;&lt;/p&gt;&#10;&lt;p&gt;在此提供代码，注意，该代码起点是&lt;code&gt;Sheet2&lt;/code&gt;,即切换到&lt;code&gt;Sheet2&lt;/code&gt;中才能开始执行，否则会报错&#10;Sub 复制()&#10;'&#10;&amp;rsquo; 复制 宏&#10;'&#10;&amp;rsquo; 快捷键: Ctrl+o&#10;'&#10;Cells.Select&#10;Selection.Copy&#10;Sheets(&amp;ldquo;Sheet2&amp;rdquo;).Select&#10;ActiveSheet.Paste&#10;Sheets(&amp;ldquo;Sheet3&amp;rdquo;).Select&#10;ActiveSheet.Paste&#10;Sheets.Add After:=ActiveSheet&#10;ActiveSheet.Paste&#10;Range(&amp;ldquo;E29&amp;rdquo;).Select&#10;Application.CutCopyMode = False&#10;ActiveWorkbook.Save&#10;End Sub&lt;/p&gt;&#10;&lt;h2 id="复杂宏"&gt;&lt;a href="#%e5%a4%8d%e6%9d%82%e5%ae%8f" class="header-anchor"&gt;&lt;/a&gt;复杂宏&#10;&lt;/h2&gt;&lt;p&gt;VB自然支持函数（宏）调用，例如以下代码，先录制了三个预测函数操作，通过一个&lt;code&gt;预测()&lt;/code&gt;宏对三个函数操作进行调用&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;Sub 预测线性()&#10;'&#10;' 预测线性 宏&#10;'&#10;' 快捷键: Ctrl+a&#10;'&#10; Range(&amp;quot;A31&amp;quot;).Select&#10; ActiveCell.FormulaR1C1 = &amp;quot;=R[-26]C+1&amp;quot;&#10; Range(&amp;quot;A32&amp;quot;).Select&#10; ActiveWorkbook.Save&#10; Range(&amp;quot;B31&amp;quot;).Select&#10; Application.CutCopyMode = False&#10; ActiveCell.FormulaR1C1 = _&#10; &amp;quot;=FORECAST(RC[-1],R[-26]C:R[-1]C,R[-26]C[-1]:R[-1]C[-1])&amp;quot;&#10; Range(&amp;quot;A31:B31&amp;quot;).Select&#10; Selection.Font.Bold = True&#10; ActiveWorkbook.Save&#10;End Sub&#10;Sub 指数预测()&#10;'&#10;' 指数预测 宏&#10;'&#10;' 快捷键: Ctrl+e&#10;'&#10; Range(&amp;quot;A31&amp;quot;).Select&#10; ActiveCell.FormulaR1C1 = &amp;quot;=R[-26]C+1&amp;quot;&#10; Range(&amp;quot;B31&amp;quot;).Select&#10; Application.CutCopyMode = False&#10; Application.CutCopyMode = False&#10; Application.CutCopyMode = False&#10; ActiveCell.FormulaR1C1 = _&#10; &amp;quot;=GROWTH(R[-26]C:R[-8]C,R[-26]C[-1]:R[-8]C[-1],RC[-1])&amp;quot;&#10; Range(&amp;quot;A31:B31&amp;quot;).Select&#10; Selection.Font.Bold = True&#10; ActiveWorkbook.Save&#10;End Sub&#10;Sub 对数预测()&#10;'&#10;' 对数预测 宏&#10;'&#10;' 快捷键: Ctrl+w&#10;'&#10; Application.Run &amp;quot;PERSONAL.XLSB!预测线性&amp;quot;&#10; Range(&amp;quot;B31&amp;quot;).Select&#10; Selection.ClearContents&#10; Range(&amp;quot;B31&amp;quot;).Select&#10; ActiveCell.FormulaR1C1 = &amp;quot;=(Sheet1!RC+Sheet3!RC)/2&amp;quot;&#10; Range(&amp;quot;B31&amp;quot;).Select&#10; ActiveWorkbook.Save&#10;End Sub&#10;Sub 预测()&#10;'&#10;' 预测 宏&#10;'&#10;' 快捷键: Ctrl+q&#10;'&#10; Application.Run &amp;quot;PERSONAL.XLSB!预测线性&amp;quot;&#10; Sheets(&amp;quot;Sheet3&amp;quot;).Select&#10; Application.Run &amp;quot;PERSONAL.XLSB!指数预测&amp;quot;&#10; Sheets(&amp;quot;Sheet2&amp;quot;).Select&#10; Application.Run &amp;quot;PERSONAL.XLSB!对数预测&amp;quot;&#10; ActiveWorkbook.Save&#10;End Sub&#10;&lt;/code&gt;&lt;/pre&gt;&#10;</description></item><item><title>YARN单节点伪分布式搭建</title><link>https://blog.fjy8018.top/archives/144/</link><pubDate>Mon, 09 Apr 2018 20:14:00 +0800</pubDate><guid>https://blog.fjy8018.top/archives/144/</guid><description>&lt;h2 id="配置yarn"&gt;&lt;a href="#%e9%85%8d%e7%bd%aeyarn" class="header-anchor"&gt;&lt;/a&gt;配置YARN&#10;&lt;/h2&gt;&lt;p&gt;首先启动之前配置好的HDFS服务，然后进入&lt;code&gt;/www/hadoop/hadoop-2.6.0-cdh5.7.0/etc/hadoop&lt;/code&gt;目录，按照官方指导配置YARN单节点环境&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="400px" data-flex-grow="166" height="598" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2mE8vN.png" width="997"&gt;&lt;/p&gt;&#10;&lt;p&gt;使用&lt;code&gt;cp mapred-site.xml.template mapred-site.xml&lt;/code&gt;命令把&lt;code&gt;mapred-site.xml.template&lt;/code&gt;复制一份，加入官方的配置&#10;&lt;property&gt;&#10;&lt;name&gt;mapreduce.framework.name&lt;/name&gt;&#10;&lt;value&gt;yarn&lt;/value&gt;&#10;&lt;/property&gt;&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="306px" data-flex-grow="127" height="514" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2mEHYc.png" width="657"&gt;&lt;/p&gt;&#10;&lt;p&gt;同时对&lt;code&gt;yarn-site.xml&lt;/code&gt;也进行配置&#10;&lt;property&gt;&#10;&lt;name&gt;yarn.nodemanager.aux-services&lt;/name&gt;&#10;&lt;value&gt;mapreduce_shuffle&lt;/value&gt;&#10;&lt;/property&gt;&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="299px" data-flex-grow="124" height="485" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2mE5lK.png" width="605"&gt;&lt;/p&gt;&#10;&lt;h2 id="启动yarn"&gt;&lt;a href="#%e5%90%af%e5%8a%a8yarn" class="header-anchor"&gt;&lt;/a&gt;启动YARN&#10;&lt;/h2&gt;&lt;p&gt;进入&lt;code&gt;/www/hadoop/hadoop-2.6.0-cdh5.7.0/sbin&lt;/code&gt;目录，使用&lt;code&gt;./start-yarn.sh&lt;/code&gt;命令启动YARN服务&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;[hadoop@localhost sbin]$ ./start-yarn.sh&#10;starting yarn daemons&#10;starting resourcemanager, logging to /www/hadoop/hadoop-2.6.0-cdh5.7.0/logs/yarn-hadoop-resourcemanager-localhost.localdomain.out&#10;localhost: starting nodemanager, logging to /www/hadoop/hadoop-2.6.0-cdh5.7.0/logs/yarn-hadoop-nodemanager-localhost.localdomain.out&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;用&lt;code&gt;jps&lt;/code&gt;命令查看是否启动成功，看到如下显示即为启动成功，主要是&lt;strong&gt;NodeManager&lt;/strong&gt;和&lt;strong&gt;ResourceManager&lt;/strong&gt;两个服务&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;[hadoop@localhost sbin]$ jps&#10;7056 SecondaryNameNode&#10;7475 NodeManager&#10;6775 NameNode&#10;6872 DataNode&#10;7374 ResourceManager&#10;7679 Jps&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h2 id="开放端口"&gt;&lt;a href="#%e5%bc%80%e6%94%be%e7%ab%af%e5%8f%a3" class="header-anchor"&gt;&lt;/a&gt;开放端口&#10;&lt;/h2&gt;&lt;p&gt;YARN的浏览器客户端占用8088端口，故使用宝塔面板开放8088端口&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="3825px" data-flex-grow="1593" height="48" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2mEqP6.png" width="765"&gt;&lt;/p&gt;&#10;&lt;h2 id="访问yarn图形化界面"&gt;&lt;a href="#%e8%ae%bf%e9%97%aeyarn%e5%9b%be%e5%bd%a2%e5%8c%96%e7%95%8c%e9%9d%a2" class="header-anchor"&gt;&lt;/a&gt;访问YARN图形化界面&#10;&lt;/h2&gt;&lt;p&gt;使用浏览器打开&lt;code&gt;http://ip:8088/&lt;/code&gt;可见如下界面，则YARN启动成功&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="686px" data-flex-grow="286" height="423" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2mEhVT.png" width="1210"&gt;&lt;/p&gt;&#10;&lt;h2 id="测试"&gt;&lt;a href="#%e6%b5%8b%e8%af%95" class="header-anchor"&gt;&lt;/a&gt;测试&#10;&lt;/h2&gt;&lt;p&gt;YARN官方提供了示例java程序来测试资源调度，进入&lt;code&gt;/www/hadoop/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce&lt;/code&gt;目录，可见&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;[hadoop@localhost mapreduce]$ ls&#10;hadoop-mapreduce-client-app-2.6.0-cdh5.7.0.jar hadoop-mapreduce-client-nativetask-2.6.0-cdh5.7.0.jar&#10;hadoop-mapreduce-client-common-2.6.0-cdh5.7.0.jar hadoop-mapreduce-client-shuffle-2.6.0-cdh5.7.0.jar&#10;hadoop-mapreduce-client-core-2.6.0-cdh5.7.0.jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar&#10;hadoop-mapreduce-client-hs-2.6.0-cdh5.7.0.jar lib&#10;hadoop-mapreduce-client-hs-plugins-2.6.0-cdh5.7.0.jar lib-examples&#10;hadoop-mapreduce-client-jobclient-2.6.0-cdh5.7.0.jar sources&#10;hadoop-mapreduce-client-jobclient-2.6.0-cdh5.7.0-tests.jar&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;其中&lt;code&gt;hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar&lt;/code&gt;就是MapReduce的测试程序，通过&lt;code&gt;hadoop jar&lt;/code&gt;的方式来运行&#10;用命令查看可配置的参数&lt;code&gt;hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar&lt;/code&gt;&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;[hadoop@localhost mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar&#10;An example program must be given as the first argument.&#10;Valid program names are:&#10; aggregatewordcount: An Aggregate based map/reduce program that counts the words in the input files.&#10; aggregatewordhist: An Aggregate based map/reduce program that computes the histogram of the words in the input files.&#10; bbp: A map/reduce program that uses Bailey-Borwein-Plouffe to compute exact digits of Pi.&#10; dbcount: An example job that count the pageview counts from a database.&#10; distbbp: A map/reduce program that uses a BBP-type formula to compute exact bits of Pi.&#10; grep: A map/reduce program that counts the matches of a regex in the input.&#10; join: A job that effects a join over sorted, equally partitioned datasets&#10; multifilewc: A job that counts words from several files.&#10; pentomino: A map/reduce tile laying program to find solutions to pentomino problems.&#10; pi: A map/reduce program that estimates Pi using a quasi-Monte Carlo method.&#10; randomtextwriter: A map/reduce program that writes 10GB of random textual data per node.&#10; randomwriter: A map/reduce program that writes 10GB of random data per node.&#10; secondarysort: An example defining a secondary sort to the reduce.&#10; sort: A map/reduce program that sorts the data written by the random writer.&#10; sudoku: A sudoku solver.&#10; teragen: Generate data for the terasort&#10; terasort: Run the terasort&#10; teravalidate: Checking results of terasort&#10; wordcount: A map/reduce program that counts the words in the input files.&#10; wordmean: A map/reduce program that counts the average length of the words in the input files.&#10; wordmedian: A map/reduce program that counts the median length of the words in the input files.&#10; wordstandarddeviation: A map/reduce program that counts the standard deviation of the length of the words in the input files.&#10;[hadoop@localhost mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar pi&#10;Usage: org.apache.hadoop.examples.QuasiMonteCarlo &amp;lt;nMaps&amp;gt; &amp;lt;nSamples&amp;gt;&#10;Generic options supported are&#10;-conf &amp;lt;configuration file&amp;gt; specify an application configuration file&#10;-D &amp;lt;property=value&amp;gt; use value for given property&#10;-fs &amp;lt;local|namenode:port&amp;gt; specify a namenode&#10;-jt &amp;lt;local|resourcemanager:port&amp;gt; specify a ResourceManager&#10;-files &amp;lt;comma separated list of files&amp;gt; specify comma separated files to be copied to the map reduce cluster&#10;-libjars &amp;lt;comma separated list of jars&amp;gt; specify comma separated jar files to include in the classpath.&#10;-archives &amp;lt;comma separated list of archives&amp;gt; specify comma separated archives to be unarchived on the compute machines.&#10;&#10;The general command line syntax is&#10;bin/hadoop command [genericOptions] [commandOptions]&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;从上可知测试程序可以做诸如数学π、随机文件写入等操作，这里做数学π的运算&#10;使用命令&lt;code&gt;hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar pi 2 3&lt;/code&gt;做两个map计算精度为3的数学π运算,运算结束后会显示结果如下&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;Job Finished in 26.996 seconds&#10;Estimated value of Pi is 4.00000000000000000000&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;同时浏览器也可看到作业情况&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="983px" data-flex-grow="409" height="464" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2mE3pt.png" width="1901"&gt;&lt;/p&gt;&#10;</description></item><item><title>Hadoop伪分布式的一些坑</title><link>https://blog.fjy8018.top/archives/143/</link><pubDate>Sun, 08 Apr 2018 11:10:00 +0800</pubDate><guid>https://blog.fjy8018.top/archives/143/</guid><description>&lt;h2 id="无法创建上传文件"&gt;&lt;a href="#%e6%97%a0%e6%b3%95%e5%88%9b%e5%bb%ba%e4%b8%8a%e4%bc%a0%e6%96%87%e4%bb%b6" class="header-anchor"&gt;&lt;/a&gt;无法创建、上传文件&#10;&lt;/h2&gt;&lt;h3 id="问题描述"&gt;&lt;a href="#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0" class="header-anchor"&gt;&lt;/a&gt;问题描述&#10;&lt;/h3&gt;&lt;p&gt;当前hdfs文件结构如下，现通过JavaAPI远程创建目录和文件&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="1542px" data-flex-grow="642" height="145" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cSnyX.png" width="932"&gt;&lt;/p&gt;&#10;&lt;p&gt;创建目录&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="478px" data-flex-grow="199" height="359" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cSemG.png" width="716"&gt;&lt;/p&gt;&#10;&lt;p&gt;执行单元测试成功&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="1190px" data-flex-grow="496" height="254" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cSIXg.png" width="1260"&gt;&lt;/p&gt;&#10;&lt;p&gt;通过API写文件&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="1495px" data-flex-grow="623" height="164" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cS658.png" width="1022"&gt;&lt;/p&gt;&#10;&lt;p&gt;发现迟迟没有完成（可能有问题了，因为是虚拟机，延迟不应这么大）&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="356px" data-flex-grow="148" height="235" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cSVDi.png" width="349"&gt;&lt;/p&gt;&#10;&lt;p&gt;测试不通过&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="1569px" data-flex-grow="654" height="283" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cSZTw.png" width="1851"&gt;&lt;/p&gt;&#10;&lt;p&gt;报错为&#10;org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /hdfsapi/test/api.txt could only be replicated to 0 nodes instead of minReplication (=1). There are 1 datanode(s) running and 1 node(s) are excluded in this operation.&#10;at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:1595)&#10;at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:3287)&#10;at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:677)&#10;at org.apache.hadoop.hdfs.server.namenode.AuthorizationProviderProxyClientProtocol.addBlock(AuthorizationProviderProxyClientProtocol.java:213)&#10;at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:485)&#10;at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)&#10;at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:617)&#10;at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1073)&#10;at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2086)&#10;at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2082)&#10;at java.security.AccessController.doPrivileged(Native Method)&#10;at javax.security.auth.Subject.doAs(Subject.java:422)&#10;at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1693)&#10;at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2080)&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;&#9;at org.apache.hadoop.ipc.Client.call(Client.java:1471)&#10;&#9;at org.apache.hadoop.ipc.Client.call(Client.java:1408)&#10;&#9;at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:230)&#10;&#9;at com.sun.proxy.$Proxy12.addBlock(Unknown Source)&#10;&#9;at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:404)&#10;&#9;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&#10;&#9;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&#10;&#9;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&#10;&#9;at java.lang.reflect.Method.invoke(Method.java:498)&#10;&#9;at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:256)&#10;&#9;at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:104)&#10;&#9;at com.sun.proxy.$Proxy13.addBlock(Unknown Source)&#10;&#9;at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:1704)&#10;&#9;at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1500)&#10;&#9;at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:668)&#10;&#10;&#10;Process finished with exit code -1&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;查看文件目录，发现有该文件，但大小为0，显然是文件流无法写入&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="1134px" data-flex-grow="472" height="198" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cSkiL.png" width="936"&gt;&lt;/p&gt;&#10;&lt;h3 id="解决方法"&gt;&lt;a href="#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95" class="header-anchor"&gt;&lt;/a&gt;解决方法&#10;&lt;/h3&gt;&lt;p&gt;经过爬贴寻找，发现是因为没有开放端口导致文件流无法写入，经过查找，发现Hadoop相关的端口很多，为了便于学习，直接关闭虚拟机防火墙即可，CentOS7 的命令为&lt;code&gt;sudo systemctl stop firewalld.service&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;关闭防火墙后重新测试，测试通过&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="1168px" data-flex-grow="486" height="280" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cStqW.png" width="1363"&gt;&lt;/p&gt;&#10;&lt;p&gt;再次查看文件系统，发现文件大小已经不为0，说明文件内容已写入，用&lt;code&gt;hadoop fs -cat /hdfsapi/test/api.txt&lt;/code&gt;查看文件内容，发现内容一致，问题解决&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="813px" data-flex-grow="338" height="276" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cSftR.png" width="935"&gt;&lt;/p&gt;&#10;</description></item><item><title>typecho添加文章计数和评论微信提醒</title><link>https://blog.fjy8018.top/archives/142/</link><pubDate>Sat, 07 Apr 2018 23:04:00 +0800</pubDate><guid>https://blog.fjy8018.top/archives/142/</guid><description>&lt;h2 id="下载相关插件"&gt;&lt;a href="#%e4%b8%8b%e8%bd%bd%e7%9b%b8%e5%85%b3%e6%8f%92%e4%bb%b6" class="header-anchor"&gt;&lt;/a&gt;下载相关插件&#10;&lt;/h2&gt;&lt;p&gt;文章计数：&lt;a class="link" href="https://www.boke8.net/typecho-views-plugin.html/comment-page-1/" target="_blank" rel="noopener"&#10; &gt;下载地址&lt;/a&gt;&#10;评论微信提醒：&lt;a class="link" href="https://github.com/YianAndCode/Comment2Wechat" target="_blank" rel="noopener"&#10; &gt;下载地址&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="上传插件到服务器"&gt;&lt;a href="#%e4%b8%8a%e4%bc%a0%e6%8f%92%e4%bb%b6%e5%88%b0%e6%9c%8d%e5%8a%a1%e5%99%a8" class="header-anchor"&gt;&lt;/a&gt;上传插件到服务器&#10;&lt;/h2&gt;&lt;p&gt;将下载好的插件上传到&lt;code&gt;typecho&lt;/code&gt;下的&lt;code&gt;usr/plugins&lt;/code&gt;目录并解压，将解压后的评论微信提醒文件夹目录名改为&lt;code&gt;Comment2Wechat&lt;/code&gt;&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="905px" data-flex-grow="377" height="339" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2crlfW.png" width="1279"&gt;&lt;/p&gt;&#10;&lt;p&gt;使用admin账号登录typecho控制台，启用刚刚添加的插件&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="187px" data-flex-grow="78" height="228" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2crwju.png" width="178"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="879px" data-flex-grow="366" height="320" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2crfKD.png" width="1173"&gt;&lt;/p&gt;&#10;&lt;h2 id="文章计数"&gt;&lt;a href="#%e6%96%87%e7%ab%a0%e8%ae%a1%e6%95%b0" class="header-anchor"&gt;&lt;/a&gt;文章计数&#10;&lt;/h2&gt;&lt;h3 id="设置需要显示计数的地方"&gt;&lt;a href="#%e8%ae%be%e7%bd%ae%e9%9c%80%e8%a6%81%e6%98%be%e7%a4%ba%e8%ae%a1%e6%95%b0%e7%9a%84%e5%9c%b0%e6%96%b9" class="header-anchor"&gt;&lt;/a&gt;设置需要显示计数的地方&#10;&lt;/h3&gt;&lt;p&gt;进入外观设置，配置当前外观代码&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="224px" data-flex-grow="93" height="217" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2crZ4a.png" width="203"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="841px" data-flex-grow="350" height="122" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2crtJd.png" width="428"&gt;&lt;/p&gt;&#10;&lt;p&gt;根据官方文档说明，&lt;code&gt;post.php&lt;/code&gt;&#9;为日志页面文件，故配置&lt;code&gt;post.php&lt;/code&gt;&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="185px" data-flex-grow="77" height="416" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2crVA0.png" width="321"&gt;&lt;/p&gt;&#10;&lt;p&gt;在文件中搜索&lt;code&gt;Published on &lt;/code&gt;，找到该行代码，在&lt;code&gt;&amp;lt;/div&amp;gt;&lt;/code&gt;前加入&lt;code&gt;&amp;amp;nbsp;&amp;lt;?php Views_Plugin::theViews(); ?&amp;gt;&lt;/code&gt;用于显示浏览计数，该文件共用4处地方需要增加代码，自行搜索即可&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="1281px" data-flex-grow="534" height="147" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cryLr.png" width="785"&gt;&lt;/p&gt;&#10;&lt;h3 id="查看效果"&gt;&lt;a href="#%e6%9f%a5%e7%9c%8b%e6%95%88%e6%9e%9c" class="header-anchor"&gt;&lt;/a&gt;查看效果&#10;&lt;/h3&gt;&lt;p&gt;进入文章页面，可见在日志末尾已加入浏览计数&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="2840px" data-flex-grow="1183" height="43" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cHohF.png" width="509"&gt;&lt;/p&gt;&#10;&lt;h2 id="评论微信提示"&gt;&lt;a href="#%e8%af%84%e8%ae%ba%e5%be%ae%e4%bf%a1%e6%8f%90%e7%a4%ba" class="header-anchor"&gt;&lt;/a&gt;评论微信提示&#10;&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="http://sc.ftqq.com/3.version" target="_blank" rel="noopener"&#10; &gt;官方指引地址&lt;/a&gt;&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="409px" data-flex-grow="170" height="462" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2crgF1.png" width="788"&gt;&lt;/p&gt;&#10;&lt;p&gt;根据提示登录GitHub账号即可得到一个KEY，此时还不能接收消息&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="289px" data-flex-grow="120" height="754" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cHzJ7.png" width="908"&gt;&lt;/p&gt;&#10;&lt;p&gt;继续按指引绑定微信账号，此时在KEY页面发送消息微信已经可以接收了&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="429px" data-flex-grow="178" height="269" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2crJfJ.png" width="481"&gt;&lt;/p&gt;&#10;&lt;p&gt;进入typecho插件设置，将获得的KEY绑定到插件&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="997px" data-flex-grow="415" height="249" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cHdlt.png" width="1035"&gt;&lt;/p&gt;&#10;&lt;p&gt;此时评论后马上就可以收到消息&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="434px" data-flex-grow="180" height="225" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cHKKM.png" width="407"&gt;&lt;/p&gt;&#10;</description></item><item><title>HDFS伪分布式单节点搭建</title><link>https://blog.fjy8018.top/archives/141/</link><pubDate>Sat, 07 Apr 2018 13:01:00 +0800</pubDate><guid>https://blog.fjy8018.top/archives/141/</guid><description>&lt;h2 id="环境"&gt;&lt;a href="#%e7%8e%af%e5%a2%83" class="header-anchor"&gt;&lt;/a&gt;环境&#10;&lt;/h2&gt;&lt;p&gt;系统：CentOS Linux 7.4.1708 (Core)&#10;客户端：putty&#10;服务器：虚拟机1core、2G RAM&#10;同时搭建了宝塔面板（自动配置了java8）&lt;/p&gt;&#10;&lt;h2 id="hadoop下载"&gt;&lt;a href="#hadoop%e4%b8%8b%e8%bd%bd" class="header-anchor"&gt;&lt;/a&gt;Hadoop下载&#10;&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="http://archive.cloudera.com/cdh5/cdh/5/" target="_blank" rel="noopener"&#10; &gt;CDH版本Hadoop下载&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;为了统一版本，全部使用&lt;code&gt;hadoop-2.6.0-cdh5.7.0&lt;/code&gt;&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="305px" data-flex-grow="127" height="713" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cfh4e.png" width="908"&gt;&lt;/p&gt;&#10;&lt;p&gt;点击可进入官方推荐配置页&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="411px" data-flex-grow="171" height="564" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cfvbs.png" width="966"&gt;&lt;/p&gt;&#10;&lt;h2 id="解压并配置"&gt;&lt;a href="#%e8%a7%a3%e5%8e%8b%e5%b9%b6%e9%85%8d%e7%bd%ae" class="header-anchor"&gt;&lt;/a&gt;解压并配置&#10;&lt;/h2&gt;&lt;p&gt;将下载好的文件通过宝塔上传到服务器，这里选择上传到&lt;code&gt;/www/hadoop&lt;/code&gt;目录&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="656px" data-flex-grow="273" height="368" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cfPj1.png" width="1007"&gt;&lt;/p&gt;&#10;&lt;p&gt;解压tar包&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="3965px" data-flex-grow="1652" height="61" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cfF40.png" width="1008"&gt;&lt;/p&gt;&#10;&lt;h3 id="配置"&gt;&lt;a href="#%e9%85%8d%e7%bd%ae" class="header-anchor"&gt;&lt;/a&gt;配置&#10;&lt;/h3&gt;&lt;h4 id="新建用户"&gt;&lt;a href="#%e6%96%b0%e5%bb%ba%e7%94%a8%e6%88%b7" class="header-anchor"&gt;&lt;/a&gt;新建用户&#10;&lt;/h4&gt;&lt;p&gt;新建hadoop用户，忽略密码强度提示&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; adduser hadoop&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; passwd hadoop&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="715px" data-flex-grow="298" height="152" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cu6Ht.png" width="453"&gt;&lt;/p&gt;&#10;&lt;p&gt;为方便远程连接和学习，同时授予root权限，输入&lt;code&gt;whereis sudoers&lt;/code&gt;查看权限控制文件位置&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;[&lt;/span&gt;root@fjy ~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# whereis sudoers&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; sudoers: /etc/sudoers /etc/sudoers.d /usr/libexec/sudoers.so /usr/share/man/man5/sudoers.5.gz&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;使用宝塔找到并修改/etc/sudoers文件&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="1212px" data-flex-grow="505" height="338" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cuIpF.png" width="1707"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="289px" data-flex-grow="120" height="487" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cuidr.png" width="587"&gt;&lt;/p&gt;&#10;&lt;h4 id="配置新用户免密码远程登录"&gt;&lt;a href="#%e9%85%8d%e7%bd%ae%e6%96%b0%e7%94%a8%e6%88%b7%e5%85%8d%e5%af%86%e7%a0%81%e8%bf%9c%e7%a8%8b%e7%99%bb%e5%bd%95" class="header-anchor"&gt;&lt;/a&gt;配置新用户免密码远程登录&#10;&lt;/h4&gt;&lt;p&gt;切换至&lt;code&gt;hadoop&lt;/code&gt;用户，使用 &lt;code&gt;ssh-keygen -t rsa&lt;/code&gt;生成私钥信息，位置在&lt;code&gt;/home/hadoop/&lt;/code&gt;，并且忽略所有提示输入的信息&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="355px" data-flex-grow="148" height="352" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cul30.png" width="522"&gt;&lt;/p&gt;&#10;&lt;p&gt;查看生成的文件，该SSH文件夹为隐藏文件夹，故用&lt;code&gt;ls -a&lt;/code&gt;查看，可见自动生成了&lt;code&gt;.ssh&lt;/code&gt;目录和&lt;code&gt;id_rsa&lt;/code&gt;,&lt;code&gt;id_rsa.pub&lt;/code&gt;两个文件&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="1346px" data-flex-grow="560" height="166" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cuus1.png" width="931"&gt;&lt;/p&gt;&#10;&lt;p&gt;复制公钥到.ssh目录&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="2788px" data-flex-grow="1161" height="47" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cueCJ.png" width="546"&gt;&lt;/p&gt;&#10;&lt;h4 id="查看java目录"&gt;&lt;a href="#%e6%9f%a5%e7%9c%8bjava%e7%9b%ae%e5%bd%95" class="header-anchor"&gt;&lt;/a&gt;查看JAVA目录&#10;&lt;/h4&gt;&lt;p&gt;因为是宝塔自动配置的java8，所以要首先查看当前java环境变量位置，使用如下命令&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; update-alternatives --config java&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="837px" data-flex-grow="348" height="147" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cfTla.png" width="513"&gt;&lt;/p&gt;&#10;&lt;p&gt;此时宝塔自动将java配置到&lt;code&gt;/usr/java/jdk1.8.0_121/jre/bin/java&lt;/code&gt;目录&#10;即&lt;code&gt;/usr/java/jdk1.8.0_121&lt;/code&gt;为java环境变量的目录&lt;/p&gt;&#10;&lt;h4 id="配置hadoop的java目录"&gt;&lt;a href="#%e9%85%8d%e7%bd%aehadoop%e7%9a%84java%e7%9b%ae%e5%bd%95" class="header-anchor"&gt;&lt;/a&gt;配置hadoop的java目录&#10;&lt;/h4&gt;&lt;p&gt;使用宝塔进入hadoop目录下的&lt;code&gt;etc/hadoop/hadoop-env.sh&lt;/code&gt;，对应此处的绝对路径应为&lt;code&gt;/www/hadoop/hadoop-2.6.0-cdh5.7.0/etc/hadoop&lt;/code&gt;&#10;使用宝塔编辑文件，加入java环境变量位置&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="3168px" data-flex-grow="1320" height="74" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2c6JvX.png" width="977"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="278px" data-flex-grow="115" height="520" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2c6tMj.png" width="603"&gt;&lt;/p&gt;&#10;&lt;h4 id="配置分布式文件参数"&gt;&lt;a href="#%e9%85%8d%e7%bd%ae%e5%88%86%e5%b8%83%e5%bc%8f%e6%96%87%e4%bb%b6%e5%8f%82%e6%95%b0" class="header-anchor"&gt;&lt;/a&gt;配置分布式文件参数&#10;&lt;/h4&gt;&lt;p&gt;打开&lt;code&gt;core-site.xml&lt;/code&gt;，配置如下&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;property&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;fs.defaultFS&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c"&gt;&amp;lt;!-- 配置主机IP--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;hdfs://192.168.79.129:8020&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c"&gt;&amp;lt;!-- 配置临时文件位置--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;property&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;hadoop.tmp.dir&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;/www/hadoop/tmp&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="276px" data-flex-grow="115" height="575" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2c6k6y.png" width="662"&gt;&lt;/p&gt;&#10;&lt;p&gt;打开&lt;code&gt;hdfs-site.xml&lt;/code&gt;，配置如下&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;property&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;dfs.replication&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c"&gt;&amp;lt;!-- 配置副本数量--&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;1&lt;span class="nt"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="267px" data-flex-grow="111" height="489" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cldpc.png" width="545"&gt;&lt;/p&gt;&#10;&lt;h2 id="启动"&gt;&lt;a href="#%e5%90%af%e5%8a%a8" class="header-anchor"&gt;&lt;/a&gt;启动&#10;&lt;/h2&gt;&lt;h3 id="初始化"&gt;&lt;a href="#%e5%88%9d%e5%a7%8b%e5%8c%96" class="header-anchor"&gt;&lt;/a&gt;初始化&#10;&lt;/h3&gt;&lt;p&gt;进入&lt;code&gt;/www/hadoop/hadoop-2.6.0-cdh5.7.0/bin&lt;/code&gt;目录，使用如下语句初始化Hadoop，该操作仅执行一次即可，以后使用无需重复执行，否则执行后会删除当前hadoop上的所有文件&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; hadoop namenode -format&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="480px" data-flex-grow="200" height="465" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cufgM.png" width="931"&gt;&lt;/p&gt;&#10;&lt;p&gt;滚动均为&lt;code&gt;info&lt;/code&gt;级别的日志&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="454px" data-flex-grow="189" height="466" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cuZPT.png" width="882"&gt;&lt;/p&gt;&#10;&lt;p&gt;可看到已初始化成功&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="1457px" data-flex-grow="607" height="153" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cutO6.png" width="929"&gt;&lt;/p&gt;&#10;&lt;h3 id="启动hdfs"&gt;&lt;a href="#%e5%90%af%e5%8a%a8hdfs" class="header-anchor"&gt;&lt;/a&gt;启动HDFS&#10;&lt;/h3&gt;&lt;p&gt;切换到hadoop用户，进入&lt;code&gt;/www/hadoop/hadoop-2.6.0-cdh5.7.0/sbin&lt;/code&gt;目录&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="1554px" data-flex-grow="647" height="132" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cuJ3e.png" width="855"&gt;&lt;/p&gt;&#10;&lt;p&gt;输入&lt;code&gt;./start-dfs.sh&lt;/code&gt;启动HDFS服务&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="1055px" data-flex-grow="439" height="212" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cuVUs.png" width="932"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;【注意】，要提前在root用户下对&lt;code&gt;/www/hadoop&lt;/code&gt;授予hadoop用户读写权限，否则无法启动&lt;/strong&gt;&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="696px" data-flex-grow="290" height="321" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cuk67.png" width="931"&gt;&lt;/p&gt;&#10;&lt;p&gt;使用&lt;code&gt;jps&lt;/code&gt;查看当前的java进程，若出现如下四个进程表示HDFS服务启动成功&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="798px" data-flex-grow="332" height="79" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cu2uN.png" width="263"&gt;&lt;/p&gt;&#10;&lt;h3 id="外部访问浏览器客户端"&gt;&lt;a href="#%e5%a4%96%e9%83%a8%e8%ae%bf%e9%97%ae%e6%b5%8f%e8%a7%88%e5%99%a8%e5%ae%a2%e6%88%b7%e7%ab%af" class="header-anchor"&gt;&lt;/a&gt;外部访问浏览器客户端&#10;&lt;/h3&gt;&lt;p&gt;首先使用宝塔开放50070端口&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="6699px" data-flex-grow="2791" height="35" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cu1Ru.png" width="977"&gt;&lt;/p&gt;&#10;&lt;p&gt;使用外部浏览器访问ip:50070可查看如下页面，则表示HDFS已成功启动&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="315px" data-flex-grow="131" height="679" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cuGgD.png" width="892"&gt;&lt;/p&gt;&#10;&lt;h2 id="hdfs命令"&gt;&lt;a href="#hdfs%e5%91%bd%e4%bb%a4" class="header-anchor"&gt;&lt;/a&gt;hdfs命令&#10;&lt;/h2&gt;&lt;h3 id="配置hdfs命令"&gt;&lt;a href="#%e9%85%8d%e7%bd%aehdfs%e5%91%bd%e4%bb%a4" class="header-anchor"&gt;&lt;/a&gt;配置hdfs命令&#10;&lt;/h3&gt;&lt;p&gt;使用&lt;code&gt;vi ~/.bash_profile&lt;/code&gt;进入配置文件，按如下配置&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;HADOOP_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/www/hadoop/hadoop-2.6.0-cdh5.7.0&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HADOOP_HOME&lt;/span&gt;/bin:&lt;span class="nv"&gt;$PATH&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;使配置文件生效&lt;code&gt;source ~/.bash_profile&lt;/code&gt;&#10;输入&lt;code&gt;hdfs&lt;/code&gt;回车测试命令是否生效，若出现如下画面则表示命令已经生效&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="414px" data-flex-grow="172" height="465" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cumOa.png" width="803"&gt;&lt;/p&gt;&#10;&lt;h3 id="命令测试"&gt;&lt;a href="#%e5%91%bd%e4%bb%a4%e6%b5%8b%e8%af%95" class="header-anchor"&gt;&lt;/a&gt;命令测试&#10;&lt;/h3&gt;&lt;p&gt;先在本地创建&lt;code&gt;hello.txt&lt;/code&gt;文件，使用&lt;code&gt; hadoop fs -put hello.txt /&lt;/code&gt;命令将文件推送到hdfs根目录下&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="2287px" data-flex-grow="953" height="98" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cur0i.png" width="934"&gt;&lt;/p&gt;&#10;&lt;p&gt;查看服务器根目录&lt;code&gt;hadoop fs -ls /&lt;/code&gt;，已经有该文件，hadoop伪分布式配置完成&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="2271px" data-flex-grow="946" height="99" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2cuHHv.png" width="937"&gt;&lt;/p&gt;&#10;</description></item><item><title>我们一直过得更好，却不知珍惜</title><link>https://blog.fjy8018.top/archives/134/</link><pubDate>Sun, 11 Mar 2018 13:00:00 +0800</pubDate><guid>https://blog.fjy8018.top/archives/134/</guid><description>&lt;h2 id="起因"&gt;&lt;a href="#%e8%b5%b7%e5%9b%a0" class="header-anchor"&gt;&lt;/a&gt;起因&#10;&lt;/h2&gt;&lt;p&gt;恰逢学校组织了一次志愿者活动，刚好周末没什么事，便带着出去活动下的目的报了名&#10;&lt;img alt="1" class="gallery-image" data-flex-basis="252px" data-flex-grow="105" height="294" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2JycgD.png" width="309"&gt;&lt;/p&gt;&#10;&lt;h2 id="过程"&gt;&lt;a href="#%e8%bf%87%e7%a8%8b" class="header-anchor"&gt;&lt;/a&gt;过程&#10;&lt;/h2&gt;&lt;h3 id="活动"&gt;&lt;a href="#%e6%b4%bb%e5%8a%a8" class="header-anchor"&gt;&lt;/a&gt;活动&#10;&lt;/h3&gt;&lt;p&gt;3月10日上午7点集合，于8点准时到达目标学校，到达后主要是陪跑和陪伴各种不同性格的特殊儿童进行玩耍，许多特殊儿童的年龄其实都不小，基本上都在15-20岁左右，从外表上看他们与普通儿童并无显著差异，但由于天生缺陷，运动能力和特别是语言能力都比常人差了很多，因此极大限制了他们的沟通交流和思想的表达&#10;&lt;img alt="2" class="gallery-image" data-flex-basis="320px" data-flex-grow="133" height="374" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2Jy10i.md.jpg" width="500"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;时间短暂，但却能由此发现他们的内心世界并不消极，他们在天生不足的条件下依然努力生活，尽量学习自理能力，以及还要面对以后的融入社会和找工作的问题。&lt;/strong&gt;&#10;&lt;img alt="3" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.fjy8018.top/images/recovered/d988710b0cba1688d53b.jpg"&gt;&lt;/p&gt;&#10;&lt;h3 id="告别"&gt;&lt;a href="#%e5%91%8a%e5%88%ab" class="header-anchor"&gt;&lt;/a&gt;告别&#10;&lt;/h3&gt;&lt;p&gt;在最后离去的时候，依然有些许不舍&#10;&lt;img alt="4" class="gallery-image" data-flex-basis="320px" data-flex-grow="133" height="375" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2Jy4dL.md.jpg" width="500"&gt;&lt;/p&gt;&#10;&lt;p&gt;再次回到题目，我们生来便比他们的条件更好，却不懂得珍惜&lt;/p&gt;&#10;</description></item><item><title>欢迎使用 Typecho</title><link>https://blog.fjy8018.top/archives/1/</link><pubDate>Mon, 22 Jan 2018 11:06:00 +0800</pubDate><guid>https://blog.fjy8018.top/archives/1/</guid><description>&lt;p&gt;如果您看到这篇文章,表示您的 blog 已经安装成功.&lt;/p&gt;&#10;</description></item></channel></rss>