Awebone's Blog

见多方能识广,进而才可以融会贯通;取他人之所长,谦而才可以为我所用。


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 阅读排行

  • 站点地图

  • 搜索

Docker和K8S容器监控

发表于 2020-07-31 | 分类于 Linux | 阅读次数: ℃
字数统计: 319 | 阅读时长 ≈ 1

本文记录Docker容器和K8S集群中一些监控命令。

Docker基本监控

自带常用命令

  • docker ps -a:查看进程
  • docker top 容器id:查看容器资源利用
  • docker status:实时查看容器资源

图形化工具weavescope

部署

1
2
3
sudo curl -L git.io/scope -o /usr/local/bin/scope
sudo chmod +x /usr/local/bin/scope
scope launch 本机ip
阅读全文 »

数据结构与算法JavaScript版(一)

发表于 2020-07-18 | 分类于 前端 | 阅读次数: ℃
字数统计: 2,528 | 阅读时长 ≈ 11

本文使用JavaScript实现基础数据结构:数组、链表、栈、队列、树

数组

  • 在数组的末尾插入/删除、更新、获取某个位置的元素,都是 O(1) 的时间复杂度
  • 在数组的任何其它地方插入/删除元素,都是 O(n) 的时间复杂度
  • 空间复杂度:O(n)

数组创建

1
2
3
4
5
6
var arr = new Array(element0, element1, ..., elementN);
var arr = Array(element0, element1, ..., elementN);
var arr = [element0, element1, ..., elementN];
var arr = new Array(arrayLength);
var arr = Array(arrayLength);
阅读全文 »

数据结构与算法JavaScript版(二)

发表于 2020-07-18 | 分类于 前端 | 阅读次数: ℃
字数统计: 2,358 | 阅读时长 ≈ 11

本文使用JavaScript实现基础排序算法和搜索算法

排序算法

1595068515953

冒泡排序

工作原理:冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。

算法描述:

  1. 比较相邻的元素,如果第一个比第二个大,就交换它们两个
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数
  3. 针对所有的元素重复以上的步骤,除了最后一个
  4. 重复步骤1~3,直到排序完成。
阅读全文 »

数据结构与算法JavaScript版(三)

发表于 2020-07-18 | 分类于 前端 | 阅读次数: ℃
字数统计: 339 | 阅读时长 ≈ 2

本文使用JavaScript实现一些常用的算法思想

算法思想

递归

1
2
3
4
5
6
7
8
//斐波那契数列:递归
function fibonacci(num) {
if (num===1||num===2) {
return 1;
}
return fibonacci(num-1)+fibonacci(num-2);
}
阅读全文 »

使用Docker搭建Ray集群

发表于 2020-07-13 | 分类于 大数据 | 阅读次数: ℃
字数统计: 1,159 | 阅读时长 ≈ 6

本文使用Docker中Ubuntu16.04镜像,搭建MiniConda环境,在conda之上搭建Ray集群环境

Docker镜像构建

编写Dockerfile文件,构建镜像,换源为阿里云:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
FROM ubuntu:16.04
RUN mv /etc/apt/sources.list.d /etc/apt/sources.list.d.bak
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \
echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted" >>/etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe" >>/etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted" >>/etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe" >>/etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ xenial universe" >>/etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe" >>/etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse" >>/etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse" >>/etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse" >>/etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse" >>/etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted" >>/etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe" >>/etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe" >>/etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse" >>/etc/apt/sources.list
RUN apt update

将Dockerfile文件放在用户目录下,运行下面命令构建镜像:

1
2
3
docker build -t awebone/ubuntu16.04 .
docker image ls -a # 查看镜像
阅读全文 »

Centos7上Docker安装

发表于 2020-07-11 | 分类于 Linux | 阅读次数: ℃
字数统计: 965 | 阅读时长 ≈ 4

本文在Centos7.8上安装Docker,并且加载国内镜像

虚拟机安装

下载镜像:https://mirrors.tuna.tsinghua.edu.cn/centos/7.8.2003/isos/x86_64/

虚拟机VMware安装Centos7:步骤略

固定ip地址:图形化设置

设置DNS:

1
2
3
4
5
6
sudo vim /etc/resolv.conf
# Generatedby NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 114.114.114.114

Centos镜像设置:

建议先备份 CentOS-Base.repo

1
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

然后编辑 /etc/yum.repos.d/CentOS-Base.repo 文件,在 mirrorlist= 开头行前面加 # 注释掉;并将 baseurl= 开头行取消注释(如果被注释的话),把该行内的域名(例如mirror.centos.org)替换为 mirrors.tuna.tsinghua.edu.cn。

最后,更新软件包缓存

1
sudo yum makecache
阅读全文 »

Conda搭建Ray集群

发表于 2020-07-10 | 分类于 大数据 | 阅读次数: ℃
字数统计: 467 | 阅读时长 ≈ 2

本文使用MiniConda搭建Ray集群环境

conda环境创建

conda镜像设置

通过修改用户目录下的 .condarc 文件。Windows 用户无法直接创建名为 .condarc 的文件,可先执行 conda config --set show_channel_urls yes 生成该文件之后再修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

即可添加 Anaconda Python 免费仓库。

运行 conda clean -i 清除索引缓存,保证用的是镜像站提供的索引。

环境创建

1
2
3
4
5
conda create -n ray python=3.6
conda activate ray #开启ray环境
conda deactivate #关闭环境
conda env list #显示所有的虚拟环境
conda info --envs #显示所有的虚拟环境
阅读全文 »

高可用HBase搭建全流程

发表于 2020-06-06 | 分类于 大数据 | 阅读次数: ℃
字数统计: 2,582 | 阅读时长 ≈ 12

系统描述

系统介绍

系统基于ZooKeeper搭建Hadoop HA集群,在高可用分布式HDFS文件系统的基础上,搭建高可用分布式HBase数据库集群。

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是 Google Chubby一个开源的实现。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如分布式同步,配置管理,集群管理,命名管理,队列管理。使用文件系统目录树作为数据模型。

Hadoop分布式集群采用主从架构,在Hadoop HA集群中,ZooKeeper用来解决SPOF单点故障问题。如果active namenod宕机,就从剩下的standby namenodes中选举出来一个新的active namenode,并且做到瞬时切换,使得在需求增长的前提下,分布式集群仍然可以向外提供服务。同样的,分布式HBase数据库也采用主从架构,在master server宕机的情况下,瞬时切换到backup master,使得HBase高可用。分布式HBase数据库的底层存储采用HDFS文件系统。

阅读全文 »

Transformer模型详解

发表于 2020-06-06 | 分类于 算法 | 阅读次数: ℃
字数统计: 2,361 | 阅读时长 ≈ 8

机器翻译发展变化趋势

机器翻译(MT)是借机器之力,自动地将一种自然语言文本(源语言)翻译成另一种自然语言文本(目标语言)。使用机器做翻译的思想最早由 Warren Weaver 于 1949 年提出,在很长一段时间里(20 世纪 50 年代到 80 年代),机器翻译都是通过研究源语言与目标语言的语言学信息来做的,也就是基于词典和语法生成翻译,这被称为基于规则的机器翻译(RBMT)。随着统计学的发展,研究者开始将统计模型应用于机器翻译,这种方法是基于对双语文本语料库的分析来生成翻译结果。这种方法被称为统计机器翻译(SMT),它的表现比 RBMT 更好,并且在 1980 年代到 2000 年代之间主宰了这一领域。1997 年,Ramon Neco 和 Mikel Forcada 提出了使用编码器-解码器结构做机器翻译的想法。几年之后的 2003 年,蒙特利尔大学 Yoshua Bengio 领导的一个研究团队开发了一个基于神经网络的语言模型,改善了传统 SMT 模型的数据稀疏性问题。他们的研究工作为未来神经网络在机器翻译上的应用奠定了基础。

阅读全文 »

Hadoop面经总结

发表于 2020-03-31 | 分类于 大数据 | 阅读次数: ℃
字数统计: 696 | 阅读时长 ≈ 3

本文主要收集大数据Hadoop相关知识点总结。

HDFS总结

介绍一下HDFS的NameNode和DataNode

主节点NameNode:掌管文件系统目录树,处理客户端读写请求,负责管理整个文件系统的元数据,负责维持文件的副本数量

SecondaryNameNode:主要是给NameNode分担压力,把NN的fsimage和edit log做定期融合,融合后传给NN,以确保备份到的元数据是最新的,是冷备。

从节点DataNode:存储整个集群所有数据块,处理真正的数据读写,通过心跳信息定期地向NameNode汇报自身保存的文件块信息

阅读全文 »
12…4
Awebone

Awebone

35 日志
11 分类
25 标签
RSS
GitHub Segmentfault 码云 E-Mail
友链
  • 掘金
  • 开源中国
  • gitmemory
0%
© 2016 — 2021 Awebone.com 版权所有 ICP证:蒙ICP备20000954号-1
博客全站共50.8k字 | 
本站访客数:人 | 
本站总访问量次
微信扫一扫,订阅本博客