Ubuntu Server 18.04 安装Redis

源安装

sudo apt-get update
sudo apt-get install redis-serve

在 /usr/bin 目录下会出现Redis 相关文件
微信图片_20181009115104.png

redis-bemchmark: 官方Redis性能测试工具
redis-server: Redis服务器
redis-cli: Redis命令行客户端
redis-check-aof: AOF文件修复工具
redis-check-dump: RDB文件检测工具

启动

redis-server #默认方式启动,非守护进程
redis-server /etc/redis/redis.conf #使用配置文件启动,守护进程

测试

微信图片_20181009115108.png

操作

redis-cli shutdown #关闭服务
/etc/init.d/redis-server stop # 停止
/etc/init.d/redis-server start # 启动
/etc/init.d/redis-server restart # 重启

修改配置文件

1.允许其他主机登录 bind 127.0.0.1 注释掉 protected-mode 修改成yes
2.最大内存占用 maxmemory
3.缓存淘汰机制 maxmemory-policy 默认为 noeviction 可以根据实际情况设置

noeviction: 不进行置换,表示即使内存达到上限也不进行置换,
所有能引起内存增加的命令都会返回error

allkeys-lru: 优先删除掉最近最不经常使用的key,用以保存新数据

volatile-lru: 只从设置失效(expire set)的key中选择最近最不经常使用的key进行删除,用以保存新数据

allkeys-random: 随机从all-keys中选择一些key进行删除,用以保存新数据

volatile-random: 只从设置失效(expire set)的key中,选择一些key进行删除,用以保存新数据

volatile-ttl: 只从设置失效(expire set)的key中,选出存活时间(TTL)最短的key进行删除,用以保存新数据

Ubuntu 18.04 安装Nvidia 显卡驱动

最近部门在弄一个深度学习的项目,记录一下在Ubuntu Server 18.04 上安装NVIDIA驱动的过程。
安装环境:Ubuntu Server 18.04
GPU: GeForce GTX 1080
首先在Google上搜索了一下,在Ubuntu 18.04上安装NVIDIA有三种方法
1. 使用标准Ubuntu仓库进行自动化安装
2. 使用PPA仓库进行自动化安装
3. 使用官方的NVIDIA驱动进行手动安装

在使用第一种和第二种方法安装的过程中出现一个私钥写入挂起。Nvidia 的论坛中有人提到这个问题。我尝试盲目输入2次密码,但是不成功。后面在安装过程中遇到各种问题不得不多次重装系统(精通Ubuntu Server18.04 安装)。

..+++
writing new private key to '/var/lib/shim-signed/mok/MOK.priv'
-----

最后综合各种解决方案采用了第三种安装方式进行安装。安装之前先在bios中禁用的secure boot。

查看显卡信息

lspci | grep VGA

下载驱动程序

在Nvidia 官网下载合适的驱动文件。下载完之后是一个名称为 NVIDIA-Linux-NVIDIA-Linux-x86_64-390.67.run 的文件

删除原有驱动

可选步骤,第一次安装不用执行此步骤

sudo apt-get remove --purge nvidia*

禁用nouveau驱动

修改blacklist.conf

sudo vim /etc/modprobe.d/blacklist.conf
#添加数据
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

修改blacklist-nouveau.conf

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
#添加数据
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

更新设置重启

sudo update-initramfs -u
reboot

更新Kernel source

根据第一步执行过程中出现的提示内容替换执行第二步中的版本号

apt-get install linux-source
apt-get install linux-headers-x.x.x-x-generic

安装Nvidia 驱动

sudo chmod +x NVIDIA-Linux-x86_64-390.77.run
sudo ./NVIDIA-Linux-x86_64-390.77.run -no-x-check -no-nouveau-check -no-opengl-files

安装过程选项(步骤有很多 给出必要提示 其他选项一般都是选择OK)
The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。
Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择 No 继续。
Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择 Yes 继续

挂载Nvidia驱动

modprobe nvidia

检查驱动是否安装成功

nvidia-smi

如果出现如下提示,则说明安装成功。有很多教程没给挂载驱动这一步,直接执行此命令会提示安装不成功。

nvidia

Ubuntu18.04 配置 Hadoop 3.1.0 分布式集群

环境

操作系统 Ubuntu Server 18.04
Hadoop 版本: Hadoop 3.1.0

创建Hadoop用户设置SSH 免密登录

创建Hadoop账户

sudo useradd -m hadoop -s /bin/bash

设置密码

sudo passwd hadoop

增加管理员权限

sudo adduser hadoop sudo

更新系统

sudo apt-get update

安装SSH 配置SSH 免密登录

sudo apt-get install openssh-server
ssh localhost

首次登录会提示,输入Yes 按提示输入密码 就可以登录本机。
我们需要配置成免密登录。利用 ssh-keygen 生成密钥,并将密钥加入到授权中。

exit                       
cd ~/.ssh/                
ssh-keygen -t rsa            
cat ./id_rsa.pub >> ./authorized_keys  #

配置Java环境

下载安装包 上传到用户目录

创建目录作为JDK的安装目录,这里选择安装位置为:/usr/java/
解压文件带/usr/java/目录下,cd到文件下载的位置
修改jdk1.8.0_171为jdk。 方便配置jdk

sudo mkdir /usr/java
sudo tar zxvf jdk-8u171-linux-x64.tar.gz -C /usr/java/
sudo mv /usr/java/jdk1.8.0_171  /usr/java/jdk

配置环境变量

sudo vim /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin" 
export CLASSPATH=$JAVA_HOME/lib$JAVA_HOME/jre/lib 
export JAVA_HOME=/usr/java/jdk 
export JRE_HOME=${JAVA_HOME}/jre
sudo vim  /etc/profile
JAVA_HOME=/usr/java/jdk
export JRE_HOME=/usr/java/jdk/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

更新环境变量 查看Java是否安装成功

source /etc/environment
source /etc/profile
java -version

配置Hadoop

下载安装包 上传到用户目录

sudo tar -zxvf  /home/hadoop/hadoop-3.1.0.tar.gz -C /usr/local    # 解压到/usr/local中
sudo mv  /usr/local/hadoop-3.1.0/  /usr/local/hadoop            # 将文件夹名改为hadoop
sudo chown -R hadoop /usr/local/hadoop       # 修改文件权限
cd  /usr/local/hadoop  # 进入hadoop 安装目录
./bin/hadoop version #查看hadoop 版本

集群配置

为了方便配置建议关闭防火墙以及卸载iptables

sudo  ufw enable|disable
sudo apt-get remove iptables

修改Hosts文件

sudo vim /etc/hosts

172.16.111.233    hadoopmaster.quantilogic.com.cn
172.16.111.234    hadoopslave1.quantilogic.com.cn
172.16.111.235    hadoopslave2.quantilogic.com.cn

安装pdsh和ssh 确认master节点可以SSH免密登录到slave节点

#所有节点执行
sudo apt install ssh pdsh
sudo sh -c "echo ssh > /etc/pdsh/rcmd_default"

#master 主机执行
ssh-copy-id -i ~/.ssh/id_rsa.pub  hadoopmaster.quantilogic.com.cn
ssh-copy-id -i ~/.ssh/id_rsa.pub  hadoopslave1.quantilogic.com.cn
ssh-copy-id -i ~/.ssh/id_rsa.pub  hadoopslave2.quantilogic.com.cn

修改Hadoop 配置文件

配置文件路径 /usr/local/hadoop/etc/hadoop。修改完成以后上传到所有的hadoop节点

core-site.xml

<configuration>
  <property>
      <name>fs.defaultFS</name>
      <value>hdfs://hadoopmaster.quantilogic.com.cn:9000</value>
  </property>
  <property>
   <name>hadoop.tmp.dir</name>
   <value>/usr/local/hadoop/tmp</value>
  </property>
</configuration>

hadoop-env.sh

修改Java_Home路径

export JAVA_HOME=/usr/java/jdk

hdfs-site.xml

设置Hdfs文件保存份数以及路径

<configuration>
<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>
<property>
  <name>dfs.name.dir</name>
  <value>/usr/local/hadoop/hdfs/name</value>
</property>
<property>
  <name>dfs.data.dir</name>
  <value>/usr/local/hadoop/hdfs/data</value>
</property>
</configuration>

mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
</configuration>

workers

设置为slave节点的主机名

hadoopslave1.quantilogic.com.cn
hadoopslave2.quantilogic.com.cn

yarn-env.sh

增加java安装路径

export JAVA_HOME=/usr/java/jdk

yarn-site.xml

<configuration>
  <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>hadoopmaster.quantilogic.com.cn</value>
  </property>
  <property>
          <name>yarn.resourcemanager.webapp.address</name>
          <value>hadoopmaster.quantilogic.com.cn:8088</value>
  </property>
  <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
      <value>false</value>
  </property>
  <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
      <value>false</value>
  </property>
</configuration>

测试运行

在master 节点执行相关脚本进行Hadoop 测试。

初始化HDFS ,只需要执行一次。

/usr/local/hadoop/bin/hdfs namenode -format myClusterName # 初始化HDFS

启动HDFS和yarm

/usr/local/hadoop/sbin/start-dfs.sh  #启动HDFS   
/usr/local/hadoop/sbin/start-yarn.sh #  启动yarn

在三台主机上执行jps 查看运行情况。正常情况下显示如下
master节点

13905 ResourceManager
13669 SecondaryNameNode
17752 Jps
13374 NameNode

slave节点

41413 Jps
39432 NodeManager
39244 DataNode

在浏览器输入master节点 http://master:9870 和http://master:8088 查看节点运行情况。

在HDFS中创建用户目录

./bin/hdfs dfs -mkdir -p /user/hadoop

将 ./etc/hadoop 中的 xml 文件作为输入文件复制到HDFS中

./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input

运行MapReduce作业 将输出保存到output文件夹

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

将运行结果取回本地,也可以直接浏览器http://master:9870 中查看

rm -r ./output    # 先删除本地的 output 文件夹(如果存在)
./bin/hdfs dfs -get output ./output     # 将 HDFS 上的 output 文件夹拷贝到本机
cat ./output/*

Centos系统VPS主机初始化脚本整理

常用命令
sudo su #切换root
yum update #更新系统
last #登录成功的用户信息
last | less #最新的登录记录在最前面,所以可以用 一下命令来查看
lastb #查看登录失败的用户信息
tail /var/log/secure #查看登录日志
echo > /var/log/btmp #清除登陆系统失败的记录
安装最新内核并开启 BBR

参考秋水逸冰博客

使用root用户登录,运行以下命令:

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。
重启完成后,进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下命令:

uname -r

查看内核版本,显示为最新版就表示 OK 了

sysctl net.ipv4.tcp_available_congestion_control

返回值一般为:
net.ipv4.tcp_available_congestion_control = bbr cubic reno

sysctl net.ipv4.tcp_congestion_control

返回值一般为:
net.ipv4.tcp_congestion_control = bbr

sysctl net.core.default_qdisc

返回值一般为:
net.core.default_qdisc = fq

lsmod | grep bbr

返回值有 tcp_bbr 模块即说明 bbr 已启动。注意:并不是所有的 VPS 都会有此返回值,若没有也属正常。

科学上网

参考秋水逸冰博客

常规版 Windows 客户端
https://github.com/shadowsocks/shadowsocks-windows/releases
ShadowsocksR 版 Windows 客户端
https://github.com/shadowsocksrr/shadowsocksr-csharp/releases

使用root用户登录,运行以下命令:

wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log
Kcptun服务端

参考扩软博客
确定加速端口

netstat -nl | grep 8388

脚本信息

wget --no-check-certificate https://github.com/kuoruan/shell-scripts/raw/master/kcptun/kcptun.sh
chmod +x ./kcptun.sh
./kcptun.sh
安装宝塔面板
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

博客搭建记录

很早就有自己搭建博客的想法,一直没有付诸行动。周末自己试尝试了一下,也算是成功了。因为自己不会Linux,所以搭建过程中大多数都是参考网上的教程,边学习边总结。顺便也把搭建过程记录一下。

搭建博客的前提条件

  • 主机空间:我这边采用的是Google Cloud Platform的云服务器。VPS防火墙需要打开相应的端口。默认开启80和443端口。
  • 域名:狗爹申请的域名。添加域名解析记录,解析网站域名到云服务器固定IP。
  • SSL证书(非必要):阿里云申请一个免费的SSL证书。

搭建步骤

  • SSH到VPS 安装BTLinux面板。因为我没有Linux的基础,所以就选择这种最简单的方法。在GCE的控制台中可以直接使用网页版SSH 。输入一键脚本等待脚本执行成功以后,按照提示就可以打开面板管理页面。如果管理页面不能正常访问,请检查VPS防火墙相关设置。
  • 打开面板管理页面,面板会自动推荐安装PHP运行环境和MySQL数据库。如果不清楚选择安装哪些功能的前提下,用默认就好。
  • 下载WordPress的安装包。在BT面板中新建网站,输入绑定域名。上传解压之后的WordPress安装包。
  • 通过面板数据库管理新建一个数据库。
  • 在浏览器中输入绑定的域名按照WordPress的提示操作。在短暂的等待以后WordPress就安装成功了。使用新建的用户和密码可以进入WordPress后台进行相关的操作。这样就大功告成了。
  • 关于备份。面板提供多种备份方式。我使用的是自动备份到阿里云OSS。在面板中设置好相应的阿里云OSS 参数以后。新建计划任务备份网站和数据库到阿里云。
  • 关于SSL。面板中可以直接配置阿里云的证书。不建议使用宝塔SSL,因为使用宝塔SSL虽然方便。但是要提供身份证进行实名认证。
  • 关于CDN。国内的免费CDN 都需要网站备案。而且免费CDN不支持HTTPS。