分享知识,分享快乐

0%

默认情况下mysql的数据路径应该在

1
# cd /var/lib/mysql

现在我们要将它转移到/data

  1. 停掉mysql服务
1
# service mysql stop
  1. 将原数据目录转移到data目录下
1
# mv /var/lib/mysql /data/
  1. 修改# vi /etc/my.cnf文件,增加以下行
1
2
datadir = /data/mysql
socket = /data/mysql/mysql.sock
  1. 修改# vi /etc/init.d/mysql文件,增加以下行
阅读全文 »

hexo 常用命令 :

1
2
3
4
5
6
7
8
$ hexo generate (hexo g) 生成静态文件
$ hexo server (hexo s) 启动本地服务
$ hexo deploy (hexo d) 提交到远程仓库
$ hexo new page "xx"(hexo n page) 创建页面
$ hexo new "xx" (hexo n "") 创建文章
$ hexo d -g 生成静态并提交到远程仓库
$ hexo s -g 生成静态文件并启动本地预览
$ hexo clean (hexo cl)清除本地 public 文件

其他参考:

5分钟搞定个人博客-hexo https://www.jianshu.com/p/390f202c5b0e

换终端更新hexo博客 https://www.jianshu.com/p/6a29f5243ab4

阅读全文 »

如果你想在当前目录下 查找"hello,world!"字符串,可以这样:

1
grep -rn "hello,world!" *

* : 表示当前目录所有文件,也可以是某个文件名

  • -r 是递归查找
  • -n 是显示行号
  • -R 查找所有文件包含子目录
  • -i 忽略大小写

下面是一些有意思的命令行参数:

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),

grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

这里还有些用于搜索的特殊符号:

< 和 > 分别标注单词的开始与结尾。

例如:

阅读全文 »

CDH6 新加节点,不能关掉 Auto-TLS 的解决办法

坑一:新加节点 必须关掉TLS ,但是关不到

参考官网

https://www.cloudera.com/documentation/enterprise/6/6.1/topics/cm_mc_adding_hosts.html

使用“添加主机向导”添加主机

您可以使用“添加主机”向导在主机上安装CDH,Impala和Cloudera Manager Agent。

  1. 禁用TLS加密或身份验证
  2. 在不禁用TLS的情况下安装Cloudera Manager Agent的替代方法
  3. 使用“添加主机向导”
  4. 启用TLS加密或身份验证
  5. 为CDH组件启用TLS / SSL
  6. 启用Kerberos

分析:

https://www.cloudera.com/documentation/enterprise/6/6.1/topics/install_cm_server.html

由于安装的时候设置了

阅读全文 »

一、集群规划

如果你正准备从0开始搭建一套CDH集群应用于生产环境,那么此时需要做的事情应该是 结合当前的数据、业务、硬件、节点、服务等对集群做合理的规划,而不是马上动手去安装软件。

合理的集群规划应该做到以下几点:

  • 充分了解当前的数据现状
  • 与业务方深入沟通,了解将会在集群上运行的业务,集群将会为业务提供什么服务
  • 结合数据现状与业务,合理预估未来的数据量增长
  • 盘点当前可用的硬件资源,包括机柜机架、服务器、交换机等
  • 当前硬件资源不充足的情况下,根据数据评估情况作出采购建议
  • 根据业务属性与组成,合理规划集群的部署架构
  • 根据可用硬件资源,对集群节点的服务角色进行合理划分

以上步骤完成之后才是动手进行安装与部署。

你将会对集群的架构模式、应用方向与业务场景了然于胸,并确保这个集群(或者是集群组)能够提供稳定、高效、高性能的服务,为业务保驾护航。

并有能力能够提供 集群建设目标

  • 性能需求

    • 简单查询100G数据量时,耗时上限
    • 复杂查询(join)时,耗时上限
    • 历史数据导入时,耗时上限
    • 增量数据导入时,耗时上限
  • 可靠性需求:每月宕机次数(<1),每月宕机时间(<10min)

  • 可用性:每台机器每月的宕机时间

  • 容错性:机器故障,数据不丢失

1.1 硬件规划

硬件规划决定集群将使用多少硬件资源,以及什么配置的硬件资源。

阅读全文 »

Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别。即时渲染使得你写Markdown就想是写Word文档一样流畅自如,不像其他编辑器的有编辑栏和显示栏。

对文字的特殊标注

标题

1
2
3
4
5
6
# 一阶标题  或者快捷键Ctrl+1
## 二阶标题 或者快捷键Ctrl+2
### 三阶标题 或者快捷键Ctrl+3
#### 四阶标题 或者快捷键Ctrl+4
##### 五阶标题 或者快捷键Ctrl+5
###### 六阶标题 或者快捷键Ctrl+6

下划线

1
<u>下划线的内容</u> 或按快捷键Ctrl+U

字体加粗

1
**加粗内容**    或按快捷键Ctrl+B

斜体

1
*倾斜内容*  或按快捷键Ctrl+I
阅读全文 »

准备工作

已安装好hexo,选择好自己的主题(我选择的主题是melody),并部署到GitHub等静态托管服务器上。

插件介绍

hexo-admin 是一个Hexo博客引擎的管理用户界面插件。这个插件最初是作为本地编辑器设计的,在本地运行hexo使用hexo-admin编写文章,然后通过hexo ghexo dhexo g是本地渲染,hexo d是将渲染的静态页面发布到GitHub)将生成的静态页面发布到GitHub等静态服务器。如果你使用的是非静态托管服务器,比如自己买的主机搭建的hexo,那么一定要设置hexo-admin 的密码,否则谁都可以编辑你的文章。

插件安装

  1. 首先进入hexo创建的博客项目的根目录下,执行

    1
    npm install --save hexo-admin

    mac可能需要root权限,前面加个sudo 就可以了。如果报错缺少组件,则缺少什么安装什么,npm install 加缺少的组件。

  2. 运行下列命令启动hexo-admin

    hexo server -d
    打开 http://localhost:4000/admin/ 就可以访问到hexo-admin管理页面了。

密码保护

打开setting,点击Setup authentification here输入用户名,密码,密钥,下面会自动生成配置文件,复制加在hexo根目录下的_config.yml中:

1
2
3
4
admin:
username: myfavoritename
password_hash: be121740bf988b2225a313fa1f107ca1
secret: a secret something

重启hexo,就可以看到登录页面了

阅读全文 »

Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。

bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。
定义数组

在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:

1
array_name=(value1 ... valuen)

例如:

1
array_name=(value0 value1 value2 value3)

或者

1
2
3
4
5
6
array_name=(
value0
value1
value2
value3
)

还可以单独定义数组的各个分量:

1
2
3
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2
阅读全文 »

监控内存

1
top -d 1

然后使用shift + m以内存排列。top命令详解

查看内存的使用

1
2
free -g
free -m

可参考:free命令详解

查看内存

1
2
3
grep MemTotal /proc/meminfo
grep MemTotal /proc/meminfo | cut -f2 -d:
free -m |grep "Mem" | awk '{print $2}’
阅读全文 »

状态查询

1
2
3
4
5
6
7
8
9
# 查看集群信息
kubectl cluster-info

systemctl status kube-apiserver
systemctl status kubelet
systemctl status kube-proxy
systemctl status kube-scheduler
systemctl status kube-controller-manager
systemctl status docker

node相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 查看namespaces
kubectl get namespaces

# 为节点增加lable
kubectl label nodes 10.126.72.31 points=test

# 查看节点和lable
kubectl get nodes --show-labels

# 查看状态
kubectl get componentstatuses

# Node的隔离与恢复
## 隔离
kubectl cordon k8s-node1

## 恢复
kubectl uncordon k8s-node1

查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 查看nodes节点
kubectl get nodes

# 通过yaml文件查询
kubectl get -f xxx-yaml/

# 查询资源
kubectl get resourcequota

# endpoints端
kubectl get endpoints

# 查看pods

# 查看指定空间`kube-system`的pods
kubectl get po -n kube-system

# 查看所有空间的
kubectl get pods -o wide --all-namespaces

# 其他的写法
kubectl get pod -o wide --namespace=kube-system

# 获取svc
kubectl get svc --all-namespaces

# 其他写法
kubectl get services --all-namespaces

# 通过lable查询
kubectl get pods -l app=nginx -o yaml|grep podIP

# 当我们发现一个pod迟迟无法创建时,描述一个pods
kubectl describe pod xxx

删除所有pod

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 删除所有pods
kubectl delete pods --all

# 删除所有包含某个lable的pod和serivce
kubectl delete pods,services -l name=<lable-name>

# 删除ui server,然后重建
kubectl delete deployments kubernetes-dashboard --namespace=kube-system
kubectl delete services kubernetes-dashboard --namespace=kube-system

# 强制删除部署
kubectl delete deployment kafka-1

# 删除rc
kubectl delete rs --all && kubectl delete rc --all

## 强制删除Terminating状态的pod
kubectl delete deployment kafka-1 --grace-period=0 --force

滚动

1
2
3
4
5
6
7
8
# 升级
kubectl apply -f xxx.yaml --record

# 回滚
kubectl rollout undo deployment javademo

# 查看滚动升级记录
kubectl rollout history deployment {名称}
阅读全文 »