add logistic regression details

This commit is contained in:
2025-01-20 16:06:02 +08:00
parent 5ea5e3cba1
commit dc75bd64f1
49 changed files with 824 additions and 225 deletions

View File

@@ -18,26 +18,6 @@
<p>More info: <a href="https://hexo.io/docs/one-command-deployment.html">Deployment</a></p>
]]></content>
</entry>
<entry>
<title>C lang</title>
<url>/posts/12462.html</url>
<content><![CDATA[<h3 id="c-lang在windows下的开发VS-code"><a href="#c-lang在windows下的开发VS-code" class="headerlink" title="c lang在windows下的开发VS code"></a>c lang在windows下的开发VS code</h3><p><a href="https://winlibs.com/#download-release">WinLibs - GCC+MinGW-w64 compiler for Windows</a>下载你需要的版本<br>解压到<code>D:\ProgramModule</code>,并将 <code>bin\</code>加入环境变量<code>PATH</code><br>打开新的<code>Terminal</code>输入<code>gcc -v</code>,查看<code>gcc</code>是否安装成功<br>在<code>VS code</code> 的插件管理下载<code>Code Runner</code>、<code>C\C++</code>这两个插件<br>在<code>*.c</code>源文件的内容区,右键点击<code>Run Code</code> ,即可运行成功<br><img src="/img/language/c-env-conf.png"></p>
<h3 id="数据类型"><a href="#数据类型" class="headerlink" title="数据类型"></a>数据类型</h3><ul>
<li>整数类型<figure class="highlight c"><table><tr><td class="code"><pre><span class="line">    <span class="type">short</span> a = <span class="number">12</span>;</span><br><span class="line">    <span class="type">int</span> b = <span class="number">100</span>;</span><br><span class="line">    <span class="type">long</span> c = <span class="number">1000L</span>;</span><br><span class="line">    <span class="type">long</span> <span class="type">long</span> d = <span class="number">1000000LL</span>;</span><br><span class="line">    <span class="type">unsigned</span> <span class="type">int</span> e = <span class="number">10</span>;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;a: %hd\n&quot;</span>,a);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;b: %d\n&quot;</span>,b);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;c: %ld\n&quot;</span>,c);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;d: %lld\n&quot;</span>,d);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;e: %u\n&quot;</span>,e);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;f: %.3f\n&quot;</span>,f);</span><br></pre></td></tr></table></figure></li>
<li>小数类型<figure class="highlight c"><table><tr><td class="code"><pre><span class="line"><span class="type">float</span> f = <span class="number">3.14F</span>;</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;f: %.3f\n&quot;</span>,f);</span><br><span class="line"><span class="type">double</span> g = <span class="number">5.65</span>;</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;g: %.2lf\n&quot;</span>,g);</span><br></pre></td></tr></table></figure></li>
<li>字符类型<figure class="highlight c"><table><tr><td class="code"><pre><span class="line"><span class="type">char</span> h = <span class="string">&#x27;x&#x27;</span>;</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;x: %c\n&quot;</span>,x);</span><br></pre></td></tr></table></figure></li>
</ul>
<h3 id="类型转换"><a href="#类型转换" class="headerlink" title="类型转换"></a>类型转换</h3><ul>
<li>隐式转换</li>
<li>强制转换<figure class="highlight c"><table><tr><td class="code"><pre><span class="line"><span class="type">int</span> b = <span class="number">23</span>;</span><br><span class="line"><span class="type">short</span> c = (<span class="type">short</span>) b;</span><br></pre></td></tr></table></figure></li>
</ul>
<h3 id="数组"><a href="#数组" class="headerlink" title="数组"></a>数组</h3><figure class="highlight c"><table><tr><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span>&#123;</span><br><span class="line">    <span class="type">int</span> arr [<span class="number">10</span>] = &#123;<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">5</span>,<span class="number">6</span>,<span class="number">7</span>,<span class="number">8</span>,<span class="number">9</span>,<span class="number">10</span>,<span class="number">11</span>&#125;;</span><br><span class="line">    arr[<span class="number">0</span>] = <span class="number">1525</span>;</span><br><span class="line">    *(arr+<span class="number">1</span>) = <span class="number">25</span>;</span><br><span class="line">    <span class="type">int</span> len = <span class="keyword">sizeof</span>(arr)/<span class="keyword">sizeof</span>(arr[<span class="number">0</span>]);</span><br><span class="line">    <span class="type">void</span> <span class="title function_">printArr</span><span class="params">(<span class="type">int</span> arr[], <span class="type">int</span> len)</span>&#123;</span><br><span class="line">        <span class="keyword">for</span> (<span class="type">int</span> i = <span class="number">0</span>; i &lt; len;i++)&#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>,arr[i]);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    printArr(arr,len);</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<h3 id="指针"><a href="#指针" class="headerlink" title="指针"></a>指针</h3><figure class="highlight c"><table><tr><td class="code"><pre><span class="line"><span class="comment">// swap the value of a and b</span></span><br><span class="line">    <span class="type">void</span> <span class="title function_">swap</span><span class="params">(<span class="type">int</span>* x, <span class="type">int</span>* y)</span>&#123;</span><br><span class="line">        <span class="type">int</span> temp = *x;</span><br><span class="line">        *x = *y;</span><br><span class="line">        *y = temp;</span><br><span class="line"></span><br><span class="line">    &#125;</span><br><span class="line">    <span class="type">int</span> a = <span class="number">5</span>;</span><br><span class="line">    <span class="type">int</span> b = <span class="number">10</span>;</span><br><span class="line">    swap(&amp;a, &amp;b);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;a = %d b = %d\n&quot;</span>, a, b);</span><br></pre></td></tr></table></figure>
]]></content>
<tags>
<tag>C C++</tag>
</tags>
</entry>
<entry>
<title>page</title>
<url>/posts/1441.html</url>
@@ -46,15 +26,6 @@
<li></li>
</ul>
]]></content>
</entry>
<entry>
<title>script</title>
<url>/posts/34849.html</url>
<content><![CDATA[<h3 id="查看CPU、内存使用率"><a href="#查看CPU、内存使用率" class="headerlink" title="查看CPU、内存使用率"></a>查看CPU、内存使用率</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 定义颜色</span></span><br><span class="line">RED=<span class="string">&#x27;\033[0;31m&#x27;</span></span><br><span class="line">GREEN=<span class="string">&#x27;\033[0;32m&#x27;</span></span><br><span class="line">YELLOW=<span class="string">&#x27;\033[0;33m&#x27;</span></span><br><span class="line">BLUE=<span class="string">&#x27;\033[0;34m&#x27;</span></span><br><span class="line">NC=<span class="string">&#x27;\033[0m&#x27;</span> <span class="comment"># 无颜色</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">while</span> <span class="literal">true</span>; <span class="keyword">do</span></span><br><span class="line"> <span class="comment"># 获取所有进程的CPU使用率和内存使用率</span></span><br><span class="line"> cpu_usage=$(ps aux | awk <span class="string">&#x27;&#123;sum_cpu += $3&#125; END &#123;print sum_cpu&#125;&#x27;</span>)</span><br><span class="line"> mem_usage=$(ps aux | awk <span class="string">&#x27;&#123;sum_mem += $4&#125; END &#123;print sum_mem&#125;&#x27;</span>)</span><br><span class="line"> </span><br><span class="line"> <span class="comment"># 打印结果,带有时间戳、分隔线和颜色高亮</span></span><br><span class="line"> <span class="built_in">echo</span> -e <span class="string">&quot;<span class="variable">$&#123;BLUE&#125;</span>==============================<span class="variable">$&#123;NC&#125;</span>&quot;</span></span><br><span class="line"> <span class="built_in">echo</span> -e <span class="string">&quot;<span class="variable">$&#123;YELLOW&#125;</span>Timestamp: <span class="subst">$(date)</span><span class="variable">$&#123;NC&#125;</span>&quot;</span></span><br><span class="line"> <span class="built_in">echo</span> -e <span class="string">&quot;<span class="variable">$&#123;BLUE&#125;</span>==============================<span class="variable">$&#123;NC&#125;</span>&quot;</span></span><br><span class="line"> <span class="built_in">echo</span> -e <span class="string">&quot;<span class="variable">$&#123;GREEN&#125;</span>Total CPU usage: <span class="variable">$&#123;RED&#125;</span><span class="variable">$cpu_usage</span>%<span class="variable">$&#123;NC&#125;</span>&quot;</span></span><br><span class="line"> <span class="built_in">echo</span> -e <span class="string">&quot;<span class="variable">$&#123;GREEN&#125;</span>Total Memory usage: <span class="variable">$&#123;RED&#125;</span><span class="variable">$mem_usage</span>%<span class="variable">$&#123;NC&#125;</span>&quot;</span></span><br><span class="line"> <span class="built_in">echo</span> -e <span class="string">&quot;<span class="variable">$&#123;BLUE&#125;</span>==============================<span class="variable">$&#123;NC&#125;</span>&quot;</span></span><br><span class="line"> </span><br><span class="line"> <span class="comment"># 等待5秒后再次执行</span></span><br><span class="line"> <span class="built_in">sleep</span> 5</span><br><span class="line"><span class="keyword">done</span></span><br><span class="line"></span><br></pre></td></tr></table></figure>
<p><strong>保存脚本到&#x2F;usr&#x2F;local&#x2F;bin目录下</strong></p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">mv</span> usage.sh /usr/local/bin/usage</span><br></pre></td></tr></table></figure>
<h3 id="Shell脚本编写的基本信息"><a href="#Shell脚本编写的基本信息" class="headerlink" title="Shell脚本编写的基本信息"></a>Shell脚本编写的基本信息</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="meta">#! /bin/bash</span></span><br><span class="line"><span class="comment"># -------------------------------------------------</span></span><br><span class="line"><span class="comment"># Filename: test.sh</span></span><br><span class="line"><span class="comment"># Version: 1.0</span></span><br><span class="line"><span class="comment"># Date: 2024/05/02</span></span><br><span class="line"><span class="comment"># Author: shenjianZ</span></span><br><span class="line"><span class="comment"># Email: shenjianZLT@gmail.com</span></span><br><span class="line"><span class="comment"># Website: https://blog.shenjianl.cn</span></span><br><span class="line"><span class="comment"># Description: this is a test shell</span></span><br><span class="line"><span class="comment"># CopyRight: 2024 All rights reserved shenjianZ</span></span><br><span class="line"><span class="comment"># License GPL</span></span><br><span class="line"><span class="comment"># ------------------------------------------------</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment"># Your script logic goes here</span></span><br></pre></td></tr></table></figure>]]></content>
</entry>
<entry>
<title>k近邻算法K-Nearest NeighborsKNN</title>
@@ -118,6 +89,47 @@
<tag>machinelearning</tag>
</tags>
</entry>
<entry>
<title>逻辑回归</title>
<url>/posts/60504.html</url>
<content><![CDATA[<h3 id="logistic-regression-code"><a href="#logistic-regression-code" class="headerlink" title="logistic regression code"></a>logistic regression code</h3><figure class="highlight python"><table><tr><td class="code"><pre><span class="line"><span class="keyword">import</span> pandas <span class="keyword">as</span> pd</span><br><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"><span class="keyword">from</span> sklearn.datasets <span class="keyword">import</span> load_breast_cancer</span><br><span class="line"><span class="keyword">from</span> sklearn.model_selection <span class="keyword">import</span> train_test_split</span><br><span class="line"><span class="keyword">from</span> sklearn.preprocessing <span class="keyword">import</span> StandardScaler</span><br><span class="line"><span class="keyword">from</span> sklearn.linear_model <span class="keyword">import</span> LogisticRegression</span><br><span class="line"><span class="comment"># 1. 加载乳腺癌数据集</span></span><br><span class="line">data = load_breast_cancer()</span><br><span class="line"><span class="comment"># 2.1 数据集基本处理</span></span><br><span class="line">df = pd.DataFrame(data.data, columns=data.feature_names)</span><br><span class="line">df[<span class="string">&#x27;target&#x27;</span>] = data.target</span><br><span class="line"><span class="keyword">for</span> i <span class="keyword">in</span> df.columns:</span><br><span class="line"> <span class="comment"># 检查列是否有缺失值</span></span><br><span class="line"> <span class="keyword">if</span> np.<span class="built_in">any</span>(pd.isnull(df[i])):</span><br><span class="line"> <span class="built_in">print</span>(<span class="string">f&quot;Filling missing values in column: <span class="subst">&#123;i&#125;</span>&quot;</span>)</span><br><span class="line"><span class="comment">#2.2 确认特征值、目标值</span></span><br><span class="line">X = df.iloc[:,<span class="number">0</span>:df.shape[<span class="number">1</span>] - <span class="number">1</span>]</span><br><span class="line">y = df.loc[:,<span class="string">&quot;target&quot;</span>]</span><br><span class="line"><span class="comment"># 2.3 分割数据</span></span><br><span class="line">X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=<span class="number">0.3</span>)</span><br><span class="line"><span class="comment"># 显示前几行数据</span></span><br><span class="line">df.head(<span class="number">1</span>)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 3. 特征工程 标准化</span></span><br><span class="line">transfer = StandardScaler()</span><br><span class="line">X_train = transfer.fit_transform(X_train)</span><br><span class="line">X_test = transfer.transform(X_test)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 4 机器学习 逻辑回归</span></span><br><span class="line">estimator = LogisticRegression()</span><br><span class="line">estimator.fit(X_train,y_train)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 5. 模型评估</span></span><br><span class="line"><span class="built_in">print</span>(<span class="string">f&quot;模型准确率:<span class="subst">&#123;estimator.score(X_test,y_test)&#125;</span>&quot;</span>)</span><br><span class="line"><span class="built_in">print</span>(<span class="string">f&quot;模型预测值为:\n<span class="subst">&#123;estimator.predict(X_test)&#125;</span>&quot;</span>)</span><br></pre></td></tr></table></figure>
<h3 id="分类评估的参数"><a href="#分类评估的参数" class="headerlink" title="分类评估的参数"></a>分类评估的参数</h3><ul>
<li><p>准确率<br>准确率是所有预测正确的样本占总样本的比例<br>$$Accuracy &#x3D; \frac{TP+TN}{TP+FN+FP+TN}$$</p>
</li>
<li><p>精准率<br>精准率(又称查准率)是指所有被预测为正类的样本中,真正为正类的比例<br>$$Precision &#x3D; \frac{TP}{TP+FP}$$</p>
</li>
<li><p>召回率<br>召回率(又称查全率)是指所有实际为正类的样本中,被正确预测为正类的比例<br>$$Recall &#x3D; \frac{TP}{TP+FN}$$</p>
</li>
<li><p>F1-score<br>F1 值F1 Score是精准率和召回率的调和平均数综合考虑了精准率和召回率的影响。<br>$$ F1 &#x3D; 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} $$</p>
</li>
<li><p>roc曲线<br>tpr、fpr来衡量不平衡的二分类问题</p>
</li>
</ul>
<figure class="highlight python"><table><tr><td class="code"><pre><span class="line"><span class="keyword">import</span> pandas <span class="keyword">as</span> pd</span><br><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"><span class="keyword">from</span> sklearn.datasets <span class="keyword">import</span> load_breast_cancer</span><br><span class="line"><span class="keyword">from</span> sklearn.model_selection <span class="keyword">import</span> train_test_split</span><br><span class="line"><span class="keyword">from</span> sklearn.preprocessing <span class="keyword">import</span> StandardScaler</span><br><span class="line"><span class="keyword">from</span> sklearn.linear_model <span class="keyword">import</span> LogisticRegression</span><br><span class="line"><span class="keyword">from</span> sklearn.metrics <span class="keyword">import</span> classification_report, roc_auc_score</span><br><span class="line"><span class="comment"># 1. 加载乳腺癌数据集</span></span><br><span class="line">data = load_breast_cancer()</span><br><span class="line"><span class="comment"># 2.1 数据集基本处理</span></span><br><span class="line">df = pd.DataFrame(data.data, columns=data.feature_names)</span><br><span class="line">df[<span class="string">&#x27;target&#x27;</span>] = data.target</span><br><span class="line"><span class="keyword">for</span> i <span class="keyword">in</span> df.columns:</span><br><span class="line"> <span class="comment"># 检查列是否有缺失值</span></span><br><span class="line"> <span class="keyword">if</span> np.<span class="built_in">any</span>(pd.isnull(df[i])):</span><br><span class="line"> <span class="built_in">print</span>(<span class="string">f&quot;Filling missing values in column: <span class="subst">&#123;i&#125;</span>&quot;</span>)</span><br><span class="line"><span class="comment"># 2.2 确认特征值、目标值</span></span><br><span class="line">X = df.iloc[:, <span class="number">0</span>:df.shape[<span class="number">1</span>] - <span class="number">1</span>]</span><br><span class="line">y = df.loc[:, <span class="string">&quot;target&quot;</span>]</span><br><span class="line"><span class="comment"># 2.3 分割数据</span></span><br><span class="line">X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=<span class="number">0.3</span>)</span><br><span class="line"><span class="comment"># 显示前几行数据</span></span><br><span class="line">df.head(<span class="number">1</span>)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 3. 特征工程 标准化</span></span><br><span class="line">transfer = StandardScaler()</span><br><span class="line">X_train = transfer.fit_transform(X_train)</span><br><span class="line">X_test = transfer.transform(X_test)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 4 机器学习 逻辑回归</span></span><br><span class="line">estimator = LogisticRegression()</span><br><span class="line">estimator.fit(X_train, y_train)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 5. 模型评估</span></span><br><span class="line"><span class="built_in">print</span>(<span class="string">f&quot;模型准确率:<span class="subst">&#123;estimator.score(X_test, y_test)&#125;</span>&quot;</span>)</span><br><span class="line">y_pred = estimator.predict(X_test)</span><br><span class="line"><span class="built_in">print</span>(<span class="string">f&quot;模型预测值为:\n<span class="subst">&#123;y_pred&#125;</span>&quot;</span>)</span><br><span class="line"><span class="comment"># 5.1 精确率、召回率</span></span><br><span class="line">ret = classification_report(y_test, y_pred, labels=[<span class="number">1</span>, <span class="number">0</span>], target_names=[<span class="string">&quot;良性&quot;</span>, <span class="string">&quot;恶性&quot;</span>])</span><br><span class="line">roc_score = roc_auc_score(y_test, y_pred)</span><br><span class="line"><span class="built_in">print</span>(<span class="string">f&quot;准确率、召回率:<span class="subst">&#123;ret&#125;</span>&quot;</span>)</span><br><span class="line"><span class="built_in">print</span>(<span class="string">f&quot;roc_score:<span class="subst">&#123;roc_score&#125;</span>&quot;</span>)</span><br></pre></td></tr></table></figure>
<h3 id="类别不平衡的处理"><a href="#类别不平衡的处理" class="headerlink" title="类别不平衡的处理"></a>类别不平衡的处理</h3><p>先准备类别不平衡的数据</p>
<figure class="highlight python"><table><tr><td class="code"><pre><span class="line"><span class="keyword">from</span> imblearn.over_sampling <span class="keyword">import</span> RandomOverSampler,SMOTE</span><br><span class="line"><span class="keyword">from</span> imblearn.under_sampling <span class="keyword">import</span> RandomUnderSampler</span><br><span class="line"><span class="keyword">from</span> sklearn.datasets <span class="keyword">import</span> make_classification</span><br><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> plt</span><br><span class="line"><span class="keyword">from</span> collections <span class="keyword">import</span> Counter</span><br><span class="line"></span><br><span class="line"><span class="comment"># 1.准备类别不平衡的数据</span></span><br><span class="line">X, y = make_classification(</span><br><span class="line"> n_samples=<span class="number">5000</span>,</span><br><span class="line"> n_features=<span class="number">2</span>,</span><br><span class="line"> n_informative=<span class="number">2</span>,</span><br><span class="line"> n_redundant=<span class="number">0</span>,</span><br><span class="line"> n_repeated=<span class="number">0</span>,</span><br><span class="line"> n_classes=<span class="number">3</span>,</span><br><span class="line"> n_clusters_per_class=<span class="number">1</span>,</span><br><span class="line"> weights=[<span class="number">0.01</span>, <span class="number">0.05</span>, <span class="number">0.94</span>],</span><br><span class="line"> random_state=<span class="number">0</span>,</span><br><span class="line">)</span><br><span class="line">counter = Counter(y)</span><br><span class="line">plt.scatter(X[:,<span class="number">0</span>],X[:,<span class="number">1</span>],c=y)</span><br><span class="line">plt.show()</span><br></pre></td></tr></table></figure>
<ul>
<li>过采样<br>增加训练集的少数的类别的样本,使得正反例样本数据接近 <ul>
<li>随机过采样RandomOverSampler)<figure class="highlight python"><table><tr><td class="code"><pre><span class="line">ros = RandomOverSampler()</span><br><span class="line">X_resampled,y_resampled = ros.fit_resample(X,y)</span><br><span class="line"><span class="built_in">print</span>(Counter(y_resampled))</span><br><span class="line">plt.scatter(X_resampled[:,<span class="number">0</span>],X_resampled[:,<span class="number">1</span>],c=y_resampled)</span><br><span class="line">plt.show()</span><br></pre></td></tr></table></figure>
<img src="/img/machinelearning/over_random_sampling.png"></li>
<li><code>SMOTE</code>过采样SMOTE<figure class="highlight python"><table><tr><td class="code"><pre><span class="line">smote = SMOTE()</span><br><span class="line">X_resampled,y_resampled = smote.fit_resample(X,y)</span><br><span class="line"><span class="built_in">print</span>(Counter(y_resampled))</span><br><span class="line">plt.scatter(X_resampled[:,<span class="number">0</span>],X_resampled[:,<span class="number">1</span>],c=y_resampled)</span><br><span class="line">plt.show()</span><br></pre></td></tr></table></figure>
<img src="/img/machinelearning/over_smote_sampling.png"></li>
</ul>
</li>
<li>欠采样<br>减少训练集的多数的类别的样本,使得正反例样本数据接近<ul>
<li>随机欠采样RandomUnderSampler<figure class="highlight python"><table><tr><td class="code"><pre><span class="line">rus = RandomUnderSampler(random_state=<span class="number">0</span>)</span><br><span class="line">X_resampled,y_resampled = rus.fit_resample(X,y)</span><br><span class="line"><span class="built_in">print</span>(Counter(y_resampled))</span><br><span class="line">plt.scatter(X_resampled[:,<span class="number">0</span>],X_resampled[:,<span class="number">1</span>],c=y_resampled)</span><br><span class="line">plt.show()</span><br></pre></td></tr></table></figure>
<img src="/img/machinelearning/under_sampling.png"></li>
</ul>
</li>
</ul>
]]></content>
<tags>
<tag>logistic-regression</tag>
</tags>
</entry>
<entry>
<title>线性回归</title>
<url>/posts/52662.html</url>
@@ -153,11 +165,40 @@
<tag>linear-regression</tag>
</tags>
</entry>
<entry>
<title>script</title>
<url>/posts/34849.html</url>
<content><![CDATA[<h3 id="查看CPU、内存使用率"><a href="#查看CPU、内存使用率" class="headerlink" title="查看CPU、内存使用率"></a>查看CPU、内存使用率</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 定义颜色</span></span><br><span class="line">RED=<span class="string">&#x27;\033[0;31m&#x27;</span></span><br><span class="line">GREEN=<span class="string">&#x27;\033[0;32m&#x27;</span></span><br><span class="line">YELLOW=<span class="string">&#x27;\033[0;33m&#x27;</span></span><br><span class="line">BLUE=<span class="string">&#x27;\033[0;34m&#x27;</span></span><br><span class="line">NC=<span class="string">&#x27;\033[0m&#x27;</span> <span class="comment"># 无颜色</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">while</span> <span class="literal">true</span>; <span class="keyword">do</span></span><br><span class="line"> <span class="comment"># 获取所有进程的CPU使用率和内存使用率</span></span><br><span class="line"> cpu_usage=$(ps aux | awk <span class="string">&#x27;&#123;sum_cpu += $3&#125; END &#123;print sum_cpu&#125;&#x27;</span>)</span><br><span class="line"> mem_usage=$(ps aux | awk <span class="string">&#x27;&#123;sum_mem += $4&#125; END &#123;print sum_mem&#125;&#x27;</span>)</span><br><span class="line"> </span><br><span class="line"> <span class="comment"># 打印结果,带有时间戳、分隔线和颜色高亮</span></span><br><span class="line"> <span class="built_in">echo</span> -e <span class="string">&quot;<span class="variable">$&#123;BLUE&#125;</span>==============================<span class="variable">$&#123;NC&#125;</span>&quot;</span></span><br><span class="line"> <span class="built_in">echo</span> -e <span class="string">&quot;<span class="variable">$&#123;YELLOW&#125;</span>Timestamp: <span class="subst">$(date)</span><span class="variable">$&#123;NC&#125;</span>&quot;</span></span><br><span class="line"> <span class="built_in">echo</span> -e <span class="string">&quot;<span class="variable">$&#123;BLUE&#125;</span>==============================<span class="variable">$&#123;NC&#125;</span>&quot;</span></span><br><span class="line"> <span class="built_in">echo</span> -e <span class="string">&quot;<span class="variable">$&#123;GREEN&#125;</span>Total CPU usage: <span class="variable">$&#123;RED&#125;</span><span class="variable">$cpu_usage</span>%<span class="variable">$&#123;NC&#125;</span>&quot;</span></span><br><span class="line"> <span class="built_in">echo</span> -e <span class="string">&quot;<span class="variable">$&#123;GREEN&#125;</span>Total Memory usage: <span class="variable">$&#123;RED&#125;</span><span class="variable">$mem_usage</span>%<span class="variable">$&#123;NC&#125;</span>&quot;</span></span><br><span class="line"> <span class="built_in">echo</span> -e <span class="string">&quot;<span class="variable">$&#123;BLUE&#125;</span>==============================<span class="variable">$&#123;NC&#125;</span>&quot;</span></span><br><span class="line"> </span><br><span class="line"> <span class="comment"># 等待5秒后再次执行</span></span><br><span class="line"> <span class="built_in">sleep</span> 5</span><br><span class="line"><span class="keyword">done</span></span><br><span class="line"></span><br></pre></td></tr></table></figure>
<p><strong>保存脚本到&#x2F;usr&#x2F;local&#x2F;bin目录下</strong></p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">mv</span> usage.sh /usr/local/bin/usage</span><br></pre></td></tr></table></figure>
<h3 id="Shell脚本编写的基本信息"><a href="#Shell脚本编写的基本信息" class="headerlink" title="Shell脚本编写的基本信息"></a>Shell脚本编写的基本信息</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="meta">#! /bin/bash</span></span><br><span class="line"><span class="comment"># -------------------------------------------------</span></span><br><span class="line"><span class="comment"># Filename: test.sh</span></span><br><span class="line"><span class="comment"># Version: 1.0</span></span><br><span class="line"><span class="comment"># Date: 2024/05/02</span></span><br><span class="line"><span class="comment"># Author: shenjianZ</span></span><br><span class="line"><span class="comment"># Email: shenjianZLT@gmail.com</span></span><br><span class="line"><span class="comment"># Website: https://blog.shenjianl.cn</span></span><br><span class="line"><span class="comment"># Description: this is a test shell</span></span><br><span class="line"><span class="comment"># CopyRight: 2024 All rights reserved shenjianZ</span></span><br><span class="line"><span class="comment"># License GPL</span></span><br><span class="line"><span class="comment"># ------------------------------------------------</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment"># Your script logic goes here</span></span><br></pre></td></tr></table></figure>]]></content>
</entry>
<entry>
<title>网络相关</title>
<url>/posts/41168.html</url>
<content><![CDATA[]]></content>
</entry>
<entry>
<title>C lang</title>
<url>/posts/12462.html</url>
<content><![CDATA[<h3 id="c-lang在windows下的开发VS-code"><a href="#c-lang在windows下的开发VS-code" class="headerlink" title="c lang在windows下的开发VS code"></a>c lang在windows下的开发VS code</h3><p><a href="https://winlibs.com/#download-release">WinLibs - GCC+MinGW-w64 compiler for Windows</a>下载你需要的版本<br>解压到<code>D:\ProgramModule</code>,并将 <code>bin\</code>加入环境变量<code>PATH</code><br>打开新的<code>Terminal</code>输入<code>gcc -v</code>,查看<code>gcc</code>是否安装成功<br>在<code>VS code</code> 的插件管理下载<code>Code Runner</code>、<code>C\C++</code>这两个插件<br>在<code>*.c</code>源文件的内容区,右键点击<code>Run Code</code> ,即可运行成功<br><img src="/img/language/c-env-conf.png"></p>
<h3 id="数据类型"><a href="#数据类型" class="headerlink" title="数据类型"></a>数据类型</h3><ul>
<li>整数类型<figure class="highlight c"><table><tr><td class="code"><pre><span class="line">    <span class="type">short</span> a = <span class="number">12</span>;</span><br><span class="line">    <span class="type">int</span> b = <span class="number">100</span>;</span><br><span class="line">    <span class="type">long</span> c = <span class="number">1000L</span>;</span><br><span class="line">    <span class="type">long</span> <span class="type">long</span> d = <span class="number">1000000LL</span>;</span><br><span class="line">    <span class="type">unsigned</span> <span class="type">int</span> e = <span class="number">10</span>;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;a: %hd\n&quot;</span>,a);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;b: %d\n&quot;</span>,b);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;c: %ld\n&quot;</span>,c);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;d: %lld\n&quot;</span>,d);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;e: %u\n&quot;</span>,e);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;f: %.3f\n&quot;</span>,f);</span><br></pre></td></tr></table></figure></li>
<li>小数类型<figure class="highlight c"><table><tr><td class="code"><pre><span class="line"><span class="type">float</span> f = <span class="number">3.14F</span>;</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;f: %.3f\n&quot;</span>,f);</span><br><span class="line"><span class="type">double</span> g = <span class="number">5.65</span>;</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;g: %.2lf\n&quot;</span>,g);</span><br></pre></td></tr></table></figure></li>
<li>字符类型<figure class="highlight c"><table><tr><td class="code"><pre><span class="line"><span class="type">char</span> h = <span class="string">&#x27;x&#x27;</span>;</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;x: %c\n&quot;</span>,x);</span><br></pre></td></tr></table></figure></li>
</ul>
<h3 id="类型转换"><a href="#类型转换" class="headerlink" title="类型转换"></a>类型转换</h3><ul>
<li>隐式转换</li>
<li>强制转换<figure class="highlight c"><table><tr><td class="code"><pre><span class="line"><span class="type">int</span> b = <span class="number">23</span>;</span><br><span class="line"><span class="type">short</span> c = (<span class="type">short</span>) b;</span><br></pre></td></tr></table></figure></li>
</ul>
<h3 id="数组"><a href="#数组" class="headerlink" title="数组"></a>数组</h3><figure class="highlight c"><table><tr><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span>&#123;</span><br><span class="line">    <span class="type">int</span> arr [<span class="number">10</span>] = &#123;<span class="number">2</span>,<span class="number">3</span>,<span class="number">4</span>,<span class="number">5</span>,<span class="number">6</span>,<span class="number">7</span>,<span class="number">8</span>,<span class="number">9</span>,<span class="number">10</span>,<span class="number">11</span>&#125;;</span><br><span class="line">    arr[<span class="number">0</span>] = <span class="number">1525</span>;</span><br><span class="line">    *(arr+<span class="number">1</span>) = <span class="number">25</span>;</span><br><span class="line">    <span class="type">int</span> len = <span class="keyword">sizeof</span>(arr)/<span class="keyword">sizeof</span>(arr[<span class="number">0</span>]);</span><br><span class="line">    <span class="type">void</span> <span class="title function_">printArr</span><span class="params">(<span class="type">int</span> arr[], <span class="type">int</span> len)</span>&#123;</span><br><span class="line">        <span class="keyword">for</span> (<span class="type">int</span> i = <span class="number">0</span>; i &lt; len;i++)&#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>,arr[i]);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    printArr(arr,len);</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<h3 id="指针"><a href="#指针" class="headerlink" title="指针"></a>指针</h3><figure class="highlight c"><table><tr><td class="code"><pre><span class="line"><span class="comment">// swap the value of a and b</span></span><br><span class="line">    <span class="type">void</span> <span class="title function_">swap</span><span class="params">(<span class="type">int</span>* x, <span class="type">int</span>* y)</span>&#123;</span><br><span class="line">        <span class="type">int</span> temp = *x;</span><br><span class="line">        *x = *y;</span><br><span class="line">        *y = temp;</span><br><span class="line"></span><br><span class="line">    &#125;</span><br><span class="line">    <span class="type">int</span> a = <span class="number">5</span>;</span><br><span class="line">    <span class="type">int</span> b = <span class="number">10</span>;</span><br><span class="line">    swap(&amp;a, &amp;b);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;a = %d b = %d\n&quot;</span>, a, b);</span><br></pre></td></tr></table></figure>
]]></content>
<tags>
<tag>C C++</tag>
</tags>
</entry>
<entry>
<title>郑伯克段于鄢</title>
<url>/posts/58638.html</url>
@@ -172,44 +213,78 @@
</tags>
</entry>
<entry>
<title>Hadoop集群Zookeeper配置</title>
<url>/posts/61251.html</url>
<content><![CDATA[<h3 id="Zookeeper脚本配置"><a href="#Zookeeper脚本配置" class="headerlink" title="Zookeeper脚本配置"></a>Zookeeper脚本配置</h3><ul>
<li>拷贝ips<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">cp</span> ips ips_zookeeper</span><br></pre></td></tr></table></figure>
修改为<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">nn1</span><br><span class="line">nn2</span><br><span class="line">nn3</span><br></pre></td></tr></table></figure></li>
<li>拷贝三个脚本<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">cp</span> scp_all.sh scp_all_zookeeper.sh </span><br><span class="line"><span class="built_in">cp</span> ssh_all.sh ssh_all_zookeeper.sh </span><br><span class="line"><span class="built_in">cp</span> ssh_root.sh ssh_root_zookeeper.sh</span><br></pre></td></tr></table></figure></li>
<li>修改脚本<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">vim scp_all_zookeeper.sh </span><br><span class="line">vim ssh_all_zookeeper.sh </span><br><span class="line">vim ssh_root_zookeeper.sh </span><br></pre></td></tr></table></figure>
<title>组件使用</title>
<url>/posts/33957.html</url>
<content><![CDATA[<h3 id="组件自动导入"><a href="#组件自动导入" class="headerlink" title="组件自动导入"></a>组件自动导入</h3><figure class="highlight json"><table><tr><td class="code"><pre><span class="line"><span class="attr">&quot;easycom&quot;</span><span class="punctuation">:</span><span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;autoscan&quot;</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;custom&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;^tui-(.*)&quot;</span><span class="punctuation">:</span> <span class="string">&quot;@/components/thorui/tui-$1/tui-$1.vue&quot;</span> <span class="comment">// 匹配components目录内的vue文件</span></span><br><span class="line"> <span class="punctuation">&#125;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure>
将三个脚本中的ips改为ips_zookeeper</li>
<h3 id="tui-sticky-吸顶容器"><a href="#tui-sticky-吸顶容器" class="headerlink" title="tui-sticky 吸顶容器"></a><code>tui-sticky 吸顶容器</code></h3><blockquote>
<p>包含 以下 <code>tui</code> 组件 :</p>
<ul>
<li>tui-sticky</li>
<li>tui-list-view</li>
<li>tui-list-cell</li>
</ul>
<h3 id="Zookeeper安装"><a href="#Zookeeper安装" class="headerlink" title="Zookeeper安装"></a>Zookeeper安装</h3><ul>
<li>上传到<code>/tmp</code>目录下,解压 <figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">sudo</span> tar -zxvf /tmp/zookeeper-3.4.8.tar.gz -C /usr/local/</span><br><span class="line">scp -r /usr/local/zookeeper-3.4.8/ root@nn2:/usr/local/</span><br><span class="line">scp -r /usr/local/zookeeper-3.4.8/ root@nn3:/usr/local/</span><br><span class="line">ssh_root_zookeeper.sh <span class="built_in">chown</span> -R hadoop:hadoop /usr/local/zookeeper-3.4.8</span><br><span class="line">ssh_root_zookeeper.s <span class="built_in">ln</span> -s /usr/local/zookeeper-3.4.8/ /usr/local/zookeeper</span><br></pre></td></tr></table></figure></li>
</ul>
<h3 id="Zookeeper配置"><a href="#Zookeeper配置" class="headerlink" title="Zookeeper配置"></a>Zookeeper配置</h3><ul>
<li><p>zoo.cfg配置</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">cd</span> /usr/local/zookeeper/conf/</span><br><span class="line"><span class="built_in">cp</span> zoo_sample.cfg zoo.cfg</span><br></pre></td></tr></table></figure>
<p>然后<code>vim zoo.cfg</code>,修改如下:</p>
<figure class="highlight properties"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 修改dataDir</span></span><br><span class="line"><span class="attr">dataDir</span>=<span class="string">/data/zookeeper</span></span><br><span class="line"><span class="comment"># 添加一下内容</span></span><br><span class="line"><span class="attr">server.1</span>=<span class="string">nn1:2888:3888 </span></span><br><span class="line"><span class="attr">server.2</span>=<span class="string">nn2:2888:3888 </span></span><br><span class="line"><span class="attr">server.3</span>=<span class="string">nn3:2888:3888</span></span><br></pre></td></tr></table></figure>
<p>分发给nn2、nn3<br> <code>scp_all_zookeeper.sh /usr/local/zookeeper/conf/zoo.cfg /usr/local/zookeeper/conf/</code></p>
</li>
<li><p><code>zkEnv.sh</code>配置<br><code>vim /usr/local/zookeeper/bin/zkEnv.sh</code><br><img src="/../../../img/000001.png" alt="000001.png"><br>分发到nn2、nn3</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">scp_all_zookeeper.sh /usr/local/zookeeper/bin/zkEnv.sh /usr/local/zookeeper/bin/</span><br></pre></td></tr></table></figure></li>
<li><p>创建zookeeper数据目录</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">ssh_root_zookeeper.sh <span class="built_in">mkdir</span> -p /data/zookeeper</span><br><span class="line">ssh_root_zookeeper.sh <span class="built_in">chown</span> -R hadoop:hadoop /data</span><br></pre></td></tr></table></figure></li>
<li><p>创建myid文件</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">ssh nn1 <span class="string">&#x27;echo &quot;1&quot; &gt; /data/zookeeper/myid&#x27;</span></span><br><span class="line">ssh nn2 <span class="string">&#x27;echo &quot;2&quot; &gt; /data/zookeeper/myid&#x27;</span></span><br><span class="line">ssh nn3 <span class="string">&#x27;echo &quot;3&quot; &gt; /data/zookeeper/myid&#x27;</span></span><br></pre></td></tr></table></figure></li>
<li><p>配置Zookeeper环境变量</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 在其他所有主机也执行</span></span><br><span class="line"><span class="built_in">sudo</span> <span class="built_in">chown</span> -R hadoop:hadoop /etc/profile.d/myEnv.sh</span><br></pre></td></tr></table></figure>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="string">&#x27;export ZOOKEEPER_HOME=/usr/local/zookeeper&#x27;</span> &gt;&gt; /etc/profile.d/myEnv.sh</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&#x27;export PATH=$PATH:$ZOOKEEPER_HOME/bin&#x27;</span> &gt;&gt; /etc/profile.d/myEnv.sh</span><br></pre></td></tr></table></figure>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 分发到nn2、nn3</span></span><br><span class="line">scp_all_zookeeper.sh /etc/profile.d/myEnv.sh /etc/profile.d/</span><br><span class="line"><span class="comment"># source 环境变量</span></span><br><span class="line">ssh_all_zookeeper.sh <span class="built_in">source</span> /etc/profile</span><br></pre></td></tr></table></figure></li>
</ul>
<h3 id="Zookeeper的命令"><a href="#Zookeeper的命令" class="headerlink" title="Zookeeper的命令"></a>Zookeeper的命令</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="comment">#启动zk服务</span></span><br><span class="line">ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh start</span><br><span class="line"><span class="comment">#查看每个机器ZK运行的状态</span></span><br><span class="line">ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh status</span><br><span class="line"><span class="comment">#整体停止服务</span></span><br><span class="line">ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh stop </span><br><span class="line"><span class="comment">#重启zk服务</span></span><br><span class="line">ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh restart</span><br></pre></td></tr></table></figure>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta prompt_">#</span><span class="language-bash">启动zookeeper客户端并连接zookeeper集群</span></span><br><span class="line">/usr/local/zookeeper/bin/zkCli.sh -server nn1:2181</span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">可以简化为:</span></span><br><span class="line">zkCli.sh</span><br></pre></td></tr></table></figure>
</blockquote>
<figure class="highlight html"><table><tr><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">tui-sticky</span> <span class="attr">:scrollTop</span>=<span class="string">&quot;scrollTop&quot;</span> <span class="attr">stickyHeight</span>=<span class="string">&quot;104rpx&quot;</span> <span class="attr">container</span>&gt;</span></span><br><span class="line"> <span class="comment">&lt;!-- header start --&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">template</span> <span class="attr">v-slot:header</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">view</span> <span class="attr">class</span>=<span class="string">&quot;sticky-item&quot;</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">view</span> <span class="attr">class</span>=<span class="string">&quot;setting&quot;</span>&gt;</span>设置<span class="tag">&lt;/<span class="name">view</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;/<span class="name">view</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;/<span class="name">template</span>&gt;</span></span><br><span class="line"> <span class="comment">&lt;!-- header end --&gt;</span></span><br><span class="line"> <span class="comment">&lt;!--内容 start--&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">template</span> <span class="attr">v-slot:content</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">tui-list-view</span> <span class="attr">class</span>=<span class="string">&quot;content&quot;</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">tui-list-cell</span> <span class="attr">:arrow</span>=<span class="string">&quot;false&quot;</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">switch</span> <span class="attr">class</span>=<span class="string">&#x27;switch&#x27;</span> <span class="attr">checked</span> <span class="attr">color</span>=<span class="string">&quot;#FFCC33&quot;</span> /&gt;</span></span><br><span class="line"> <span class="tag">&lt;/<span class="name">tui-list-cell</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;/<span class="name">tui-list-view</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;/<span class="name">template</span>&gt;</span></span><br><span class="line"> <span class="comment">&lt;!--内容 end--&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">tui-sticky</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">setup</span>&gt;</span><span class="language-javascript"></span></span><br><span class="line"><span class="language-javascript"> <span class="keyword">import</span> &#123; ref &#125; <span class="keyword">from</span> <span class="string">&#x27;vue&#x27;</span></span></span><br><span class="line"><span class="language-javascript"> <span class="keyword">import</span> &#123; onPageScroll &#125; <span class="keyword">from</span> <span class="string">&#x27;@dcloudio/uni-app&#x27;</span></span></span><br><span class="line"><span class="language-javascript"></span></span><br><span class="line"><span class="language-javascript"> <span class="comment">// 定义 scrollTop 响应式变量</span></span></span><br><span class="line"><span class="language-javascript"> <span class="keyword">const</span> scrollTop = <span class="title function_">ref</span>(<span class="number">0</span>)</span></span><br><span class="line"><span class="language-javascript"> <span class="comment">// 监听页面滚动事件</span></span></span><br><span class="line"><span class="language-javascript"> <span class="title function_">onPageScroll</span>(<span class="function">(<span class="params">e</span>) =&gt;</span> &#123;</span></span><br><span class="line"><span class="language-javascript"> scrollTop.<span class="property">value</span> = e.<span class="property">scrollTop</span></span></span><br><span class="line"><span class="language-javascript"> &#125;)</span></span><br><span class="line"><span class="language-javascript"></span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure>
]]></content>
<tags>
<tag>uniapp</tag>
</tags>
</entry>
<entry>
<title>Docker被墙如何继续使用</title>
<url>/posts/47807.html</url>
<content><![CDATA[<h2 id="Docker-Download"><a href="#Docker-Download" class="headerlink" title="Docker Download"></a>Docker Download</h2><blockquote>
<p>自从docker官方仓库在中国大陆被墙后docker的部署方式也发生了改变。<br>解决docker安装问题<a href="https://github.com/shenjianZ/docker_installer">https://github.com/shenjianZ/docker_installer</a></p>
</blockquote>
<ol>
<li><p>安装docker </p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo curl -fsSL https://gitee.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh| bash -s docker --mirror Aliyun</span><br></pre></td></tr></table></figure>
</li>
<li><p>启动docker</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo systemctl start docker</span><br></pre></td></tr></table></figure>
</li>
<li><p>设置开机自启</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo systemctl enable docker</span><br></pre></td></tr></table></figure>
</li>
<li><p>Docker pull images</p>
<blockquote>
<p>将image下载到阿里云镜像仓库中<br>解决docker pull 镜像问题:<a href="https://github.com/shenjianZ/docker_image_pusher">https://github.com/shenjianZ/docker_image_pusher</a></p>
</blockquote>
<ol>
<li><p><strong>登录阿里云镜像服务</strong> <a href="https://cr.console.aliyun.com/">https://cr.console.aliyun.com/</a>,</p>
<p>启用个人实例,创建一个命名空间(<code>ALIYUN_NAME_SPACE</code></p>
</li>
<li><p>在<strong>访问凭证</strong> 可以看到账号 用户名(<code>ALIYUN_REGISTRY_USER</code>)</p>
<p>密码(<code>ALIYUN_REGISTRY_PASSWORD</code>)</p>
<p>仓库地址(<code>ALIYUN_REGISTRY</code></p>
</li>
<li><p><strong>启动Action</strong><br>进入您自己的项目,点击<code>Action</code>,启用<code>Github Action</code>功能</p>
</li>
<li><p><strong>配置环境变量</strong><br>进入Settings-&gt;Secret and variables-&gt;Actions-&gt;New Repository secret<br> 将上一步的四个值<br> <code>ALIYUN_NAME_SPACE</code>,</p>
<p> <code> ALIYUN_REGISTRY_USER</code></p>
<p> <code>ALIYUN_REGISTRY_PASSWORD</code></p>
<p> <code>ALIYUN_REGISTRY</code><br> 配置成环境变量</p>
</li>
<li><p><strong>添加镜像</strong><br> 打开<code>images.txt</code>文件,添加你想要的镜像 可以加tag</p>
</li>
<li><p>使用镜像<br>回到阿里云,镜像仓库,点击任意镜像,可查看镜像状态。(可以改成公开,拉取镜像免登录)</p>
</li>
</ol>
</li>
</ol>
]]></content>
</entry>
<entry>
<title>uniapp 开发</title>
<url>/posts/58817.html</url>
<content><![CDATA[<ul>
<li><a href="../component1">uniapp component</a></li>
</ul>
]]></content>
<tags>
<tag>uniapp</tag>
</tags>
</entry>
<entry>
<title>Hadoop集群搭建基础环境</title>
@@ -269,6 +344,46 @@
<li><p>将 <code>/home/hadoop/bin</code>添加到hadoop用户的环境变量需要切换到<code>hadoop</code>用户</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="string">&#x27;export PATH=$PATH:/home/hadoop/bin&#x27;</span> &gt;&gt; ~/.bashrc &amp;&amp; <span class="built_in">source</span> ~/.bashrc</span><br><span class="line">scp_all.sh /home/hadoop/.bashrc /home/hadoop/</span><br><span class="line">ssh_all.sh <span class="built_in">source</span> ~/.bashrc </span><br></pre></td></tr></table></figure></li>
</ul>
]]></content>
</entry>
<entry>
<title>Hadoop集群Zookeeper配置</title>
<url>/posts/61251.html</url>
<content><![CDATA[<h3 id="Zookeeper脚本配置"><a href="#Zookeeper脚本配置" class="headerlink" title="Zookeeper脚本配置"></a>Zookeeper脚本配置</h3><ul>
<li>拷贝ips<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">cp</span> ips ips_zookeeper</span><br></pre></td></tr></table></figure>
修改为<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">nn1</span><br><span class="line">nn2</span><br><span class="line">nn3</span><br></pre></td></tr></table></figure></li>
<li>拷贝三个脚本<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">cp</span> scp_all.sh scp_all_zookeeper.sh </span><br><span class="line"><span class="built_in">cp</span> ssh_all.sh ssh_all_zookeeper.sh </span><br><span class="line"><span class="built_in">cp</span> ssh_root.sh ssh_root_zookeeper.sh</span><br></pre></td></tr></table></figure></li>
<li>修改脚本<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">vim scp_all_zookeeper.sh </span><br><span class="line">vim ssh_all_zookeeper.sh </span><br><span class="line">vim ssh_root_zookeeper.sh </span><br></pre></td></tr></table></figure>
将三个脚本中的ips改为ips_zookeeper</li>
</ul>
<h3 id="Zookeeper安装"><a href="#Zookeeper安装" class="headerlink" title="Zookeeper安装"></a>Zookeeper安装</h3><ul>
<li>上传到<code>/tmp</code>目录下,解压 <figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">sudo</span> tar -zxvf /tmp/zookeeper-3.4.8.tar.gz -C /usr/local/</span><br><span class="line">scp -r /usr/local/zookeeper-3.4.8/ root@nn2:/usr/local/</span><br><span class="line">scp -r /usr/local/zookeeper-3.4.8/ root@nn3:/usr/local/</span><br><span class="line">ssh_root_zookeeper.sh <span class="built_in">chown</span> -R hadoop:hadoop /usr/local/zookeeper-3.4.8</span><br><span class="line">ssh_root_zookeeper.s <span class="built_in">ln</span> -s /usr/local/zookeeper-3.4.8/ /usr/local/zookeeper</span><br></pre></td></tr></table></figure></li>
</ul>
<h3 id="Zookeeper配置"><a href="#Zookeeper配置" class="headerlink" title="Zookeeper配置"></a>Zookeeper配置</h3><ul>
<li><p>zoo.cfg配置</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">cd</span> /usr/local/zookeeper/conf/</span><br><span class="line"><span class="built_in">cp</span> zoo_sample.cfg zoo.cfg</span><br></pre></td></tr></table></figure>
<p>然后<code>vim zoo.cfg</code>,修改如下:</p>
<figure class="highlight properties"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 修改dataDir</span></span><br><span class="line"><span class="attr">dataDir</span>=<span class="string">/data/zookeeper</span></span><br><span class="line"><span class="comment"># 添加一下内容</span></span><br><span class="line"><span class="attr">server.1</span>=<span class="string">nn1:2888:3888 </span></span><br><span class="line"><span class="attr">server.2</span>=<span class="string">nn2:2888:3888 </span></span><br><span class="line"><span class="attr">server.3</span>=<span class="string">nn3:2888:3888</span></span><br></pre></td></tr></table></figure>
<p>分发给nn2、nn3<br> <code>scp_all_zookeeper.sh /usr/local/zookeeper/conf/zoo.cfg /usr/local/zookeeper/conf/</code></p>
</li>
<li><p><code>zkEnv.sh</code>配置<br><code>vim /usr/local/zookeeper/bin/zkEnv.sh</code><br><img src="/../../../img/000001.png" alt="000001.png"><br>分发到nn2、nn3</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">scp_all_zookeeper.sh /usr/local/zookeeper/bin/zkEnv.sh /usr/local/zookeeper/bin/</span><br></pre></td></tr></table></figure></li>
<li><p>创建zookeeper数据目录</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">ssh_root_zookeeper.sh <span class="built_in">mkdir</span> -p /data/zookeeper</span><br><span class="line">ssh_root_zookeeper.sh <span class="built_in">chown</span> -R hadoop:hadoop /data</span><br></pre></td></tr></table></figure></li>
<li><p>创建myid文件</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">ssh nn1 <span class="string">&#x27;echo &quot;1&quot; &gt; /data/zookeeper/myid&#x27;</span></span><br><span class="line">ssh nn2 <span class="string">&#x27;echo &quot;2&quot; &gt; /data/zookeeper/myid&#x27;</span></span><br><span class="line">ssh nn3 <span class="string">&#x27;echo &quot;3&quot; &gt; /data/zookeeper/myid&#x27;</span></span><br></pre></td></tr></table></figure></li>
<li><p>配置Zookeeper环境变量</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 在其他所有主机也执行</span></span><br><span class="line"><span class="built_in">sudo</span> <span class="built_in">chown</span> -R hadoop:hadoop /etc/profile.d/myEnv.sh</span><br></pre></td></tr></table></figure>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="string">&#x27;export ZOOKEEPER_HOME=/usr/local/zookeeper&#x27;</span> &gt;&gt; /etc/profile.d/myEnv.sh</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&#x27;export PATH=$PATH:$ZOOKEEPER_HOME/bin&#x27;</span> &gt;&gt; /etc/profile.d/myEnv.sh</span><br></pre></td></tr></table></figure>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 分发到nn2、nn3</span></span><br><span class="line">scp_all_zookeeper.sh /etc/profile.d/myEnv.sh /etc/profile.d/</span><br><span class="line"><span class="comment"># source 环境变量</span></span><br><span class="line">ssh_all_zookeeper.sh <span class="built_in">source</span> /etc/profile</span><br></pre></td></tr></table></figure></li>
</ul>
<h3 id="Zookeeper的命令"><a href="#Zookeeper的命令" class="headerlink" title="Zookeeper的命令"></a>Zookeeper的命令</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="comment">#启动zk服务</span></span><br><span class="line">ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh start</span><br><span class="line"><span class="comment">#查看每个机器ZK运行的状态</span></span><br><span class="line">ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh status</span><br><span class="line"><span class="comment">#整体停止服务</span></span><br><span class="line">ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh stop </span><br><span class="line"><span class="comment">#重启zk服务</span></span><br><span class="line">ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh restart</span><br></pre></td></tr></table></figure>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta prompt_">#</span><span class="language-bash">启动zookeeper客户端并连接zookeeper集群</span></span><br><span class="line">/usr/local/zookeeper/bin/zkCli.sh -server nn1:2181</span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">可以简化为:</span></span><br><span class="line">zkCli.sh</span><br></pre></td></tr></table></figure>
]]></content>
</entry>
<entry>
@@ -318,80 +433,6 @@
</ul>
<h3 id="集群启动"><a href="#集群启动" class="headerlink" title="集群启动"></a>集群启动</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">start-dfs.sh</span><br></pre></td></tr></table></figure>]]></content>
</entry>
<entry>
<title>Docker被墙如何继续使用</title>
<url>/posts/47807.html</url>
<content><![CDATA[<h2 id="Docker-Download"><a href="#Docker-Download" class="headerlink" title="Docker Download"></a>Docker Download</h2><blockquote>
<p>自从docker官方仓库在中国大陆被墙后docker的部署方式也发生了改变。<br>解决docker安装问题<a href="https://github.com/shenjianZ/docker_installer">https://github.com/shenjianZ/docker_installer</a></p>
</blockquote>
<ol>
<li><p>安装docker </p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo curl -fsSL https://gitee.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh| bash -s docker --mirror Aliyun</span><br></pre></td></tr></table></figure>
</li>
<li><p>启动docker</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo systemctl start docker</span><br></pre></td></tr></table></figure>
</li>
<li><p>设置开机自启</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line">sudo systemctl enable docker</span><br></pre></td></tr></table></figure>
</li>
<li><p>Docker pull images</p>
<blockquote>
<p>将image下载到阿里云镜像仓库中<br>解决docker pull 镜像问题:<a href="https://github.com/shenjianZ/docker_image_pusher">https://github.com/shenjianZ/docker_image_pusher</a></p>
</blockquote>
<ol>
<li><p><strong>登录阿里云镜像服务</strong> <a href="https://cr.console.aliyun.com/">https://cr.console.aliyun.com/</a>,</p>
<p>启用个人实例,创建一个命名空间(<code>ALIYUN_NAME_SPACE</code></p>
</li>
<li><p>在<strong>访问凭证</strong> 可以看到账号 用户名(<code>ALIYUN_REGISTRY_USER</code>)</p>
<p>密码(<code>ALIYUN_REGISTRY_PASSWORD</code>)</p>
<p>仓库地址(<code>ALIYUN_REGISTRY</code></p>
</li>
<li><p><strong>启动Action</strong><br>进入您自己的项目,点击<code>Action</code>,启用<code>Github Action</code>功能</p>
</li>
<li><p><strong>配置环境变量</strong><br>进入Settings-&gt;Secret and variables-&gt;Actions-&gt;New Repository secret<br> 将上一步的四个值<br> <code>ALIYUN_NAME_SPACE</code>,</p>
<p> <code> ALIYUN_REGISTRY_USER</code></p>
<p> <code>ALIYUN_REGISTRY_PASSWORD</code></p>
<p> <code>ALIYUN_REGISTRY</code><br> 配置成环境变量</p>
</li>
<li><p><strong>添加镜像</strong><br> 打开<code>images.txt</code>文件,添加你想要的镜像 可以加tag</p>
</li>
<li><p>使用镜像<br>回到阿里云,镜像仓库,点击任意镜像,可查看镜像状态。(可以改成公开,拉取镜像免登录)</p>
</li>
</ol>
</li>
</ol>
]]></content>
</entry>
<entry>
<title>组件使用</title>
<url>/posts/33957.html</url>
<content><![CDATA[<h3 id="组件自动导入"><a href="#组件自动导入" class="headerlink" title="组件自动导入"></a>组件自动导入</h3><figure class="highlight json"><table><tr><td class="code"><pre><span class="line"><span class="attr">&quot;easycom&quot;</span><span class="punctuation">:</span><span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;autoscan&quot;</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">&quot;custom&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line"> <span class="attr">&quot;^tui-(.*)&quot;</span><span class="punctuation">:</span> <span class="string">&quot;@/components/thorui/tui-$1/tui-$1.vue&quot;</span> <span class="comment">// 匹配components目录内的vue文件</span></span><br><span class="line"> <span class="punctuation">&#125;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure>
<h3 id="tui-sticky-吸顶容器"><a href="#tui-sticky-吸顶容器" class="headerlink" title="tui-sticky 吸顶容器"></a><code>tui-sticky 吸顶容器</code></h3><blockquote>
<p>包含 以下 <code>tui</code> 组件 :</p>
<ul>
<li>tui-sticky</li>
<li>tui-list-view</li>
<li>tui-list-cell</li>
</ul>
</blockquote>
<figure class="highlight html"><table><tr><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">tui-sticky</span> <span class="attr">:scrollTop</span>=<span class="string">&quot;scrollTop&quot;</span> <span class="attr">stickyHeight</span>=<span class="string">&quot;104rpx&quot;</span> <span class="attr">container</span>&gt;</span></span><br><span class="line"> <span class="comment">&lt;!-- header start --&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">template</span> <span class="attr">v-slot:header</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">view</span> <span class="attr">class</span>=<span class="string">&quot;sticky-item&quot;</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">view</span> <span class="attr">class</span>=<span class="string">&quot;setting&quot;</span>&gt;</span>设置<span class="tag">&lt;/<span class="name">view</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;/<span class="name">view</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;/<span class="name">template</span>&gt;</span></span><br><span class="line"> <span class="comment">&lt;!-- header end --&gt;</span></span><br><span class="line"> <span class="comment">&lt;!--内容 start--&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">template</span> <span class="attr">v-slot:content</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">tui-list-view</span> <span class="attr">class</span>=<span class="string">&quot;content&quot;</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">tui-list-cell</span> <span class="attr">:arrow</span>=<span class="string">&quot;false&quot;</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;<span class="name">switch</span> <span class="attr">class</span>=<span class="string">&#x27;switch&#x27;</span> <span class="attr">checked</span> <span class="attr">color</span>=<span class="string">&quot;#FFCC33&quot;</span> /&gt;</span></span><br><span class="line"> <span class="tag">&lt;/<span class="name">tui-list-cell</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;/<span class="name">tui-list-view</span>&gt;</span></span><br><span class="line"> <span class="tag">&lt;/<span class="name">template</span>&gt;</span></span><br><span class="line"> <span class="comment">&lt;!--内容 end--&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">tui-sticky</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">setup</span>&gt;</span><span class="language-javascript"></span></span><br><span class="line"><span class="language-javascript"> <span class="keyword">import</span> &#123; ref &#125; <span class="keyword">from</span> <span class="string">&#x27;vue&#x27;</span></span></span><br><span class="line"><span class="language-javascript"> <span class="keyword">import</span> &#123; onPageScroll &#125; <span class="keyword">from</span> <span class="string">&#x27;@dcloudio/uni-app&#x27;</span></span></span><br><span class="line"><span class="language-javascript"></span></span><br><span class="line"><span class="language-javascript"> <span class="comment">// 定义 scrollTop 响应式变量</span></span></span><br><span class="line"><span class="language-javascript"> <span class="keyword">const</span> scrollTop = <span class="title function_">ref</span>(<span class="number">0</span>)</span></span><br><span class="line"><span class="language-javascript"> <span class="comment">// 监听页面滚动事件</span></span></span><br><span class="line"><span class="language-javascript"> <span class="title function_">onPageScroll</span>(<span class="function">(<span class="params">e</span>) =&gt;</span> &#123;</span></span><br><span class="line"><span class="language-javascript"> scrollTop.<span class="property">value</span> = e.<span class="property">scrollTop</span></span></span><br><span class="line"><span class="language-javascript"> &#125;)</span></span><br><span class="line"><span class="language-javascript"></span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure>
]]></content>
<tags>
<tag>uniapp</tag>
</tags>
</entry>
<entry>
<title>uniapp 开发</title>
<url>/posts/58817.html</url>
<content><![CDATA[<ul>
<li><a href="../component1">uniapp component</a></li>
</ul>
]]></content>
<tags>
<tag>uniapp</tag>
</tags>
</entry>
<entry>
<title>无法访问外网?需要订阅代理服务?</title>
<url>/posts/14011.html</url>