Docker学习(1)--Ubuntu16.04.2安装Docker Engine

Docker的英文本意是“搬运工”,在程序员的世界里,Docker搬运的是集装箱(Container),集装箱里装的是任意类型的App,开发者通过Docker可以将App变成一种标准化的、可移植的、自管理的组件,可以在任何主流系统中开发、调试和运行。

安装

由于linux容器的bug,docker在linux的kernel3.8上运行最佳,同时需要支持AUFS

参考自博文-如何安装Docker

安装,习惯性的先找官方文档

Ubuntu 16.04

我的安装过程主要参考的官方文档 和这篇新的博文

安装 extra packages 内核补丁|依赖

$ sudo apt-get install \
    linux-image-extra-$(uname -r) \
    linux-image-extra-virtual

设置仓库

Set up the Docker CE repository on Ubuntu. The

lsb_release -cs

sub-command prints the name of your Ubuntu version, like xenial or trusty.

运行

sudo apt-get -y install \
  apt-transport-https \
  ca-certificates \
  curl

添加docker源

不得不说,国内安装很慢。

配置Docker 镜像加速器

配置Ali-OSM加速器

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
sudo apt-get update

查看是否有正确的可用版本

apt-cache policy docker-engine

安装docker

Docker分成CE和EE 2个版本。CE版本即社区版(免费,支持周期三个月),EE即企业版,强调安全,付费使用。

Docker 的 Linux 发行版的软件仓库也从以前的https://apt.dockerproject.org和https://yum.dockerproject.org 变更为目前的https://download.docker.com 。软件包名变更为 docker-ce(社区版) 和 docker-ee(企业版)。

需要注意的是要删除旧版本插件。全新安装步骤不需要删除已安装的Docker和插件,直接配置官方源安装即可。

sudo apt-get install docker-engine

验证

docker -v

如何使用Docker加速器

重大更新后为17.xx 版本

针对Docker客户端版本大于1.10的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:

注明:https://yxjaiypn.mirror.aliyuncs.com为我的阿里云专属加速器地址

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://yxjaiypn.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

潜移默化

每每,当我仰望成功人士时,总会有起跑线上的感叹。也许我们的生活中,缺少潜移默化的环境因素,习惯的惰性在一个领域支配着我们。但是,我却又心中暗喜,这何尝不是砥砺意志的一个小小锻炼呢?也许在起跑线上,没有这份潜移默化,并且需要耗费精力去维持一份心性,也许成长得缓慢,但总不至于太差。
潜移默化固然好,磨练心性也是一种漫长的乐趣。

Ubuntu16.04.2安装MongoDB

参考

Install MongoDB Community Edition on Ubuntu

安装过程

导入软件源的公钥

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

为MongoDB创建软件源list文件

Ubuntu 16.04

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

更新软件源并安装mongodb

sudo apt-get update

安装最新稳定版本

sudo apt-get install -y mongodb-org

启动、重启和关闭命令

sudo service mongod start
sudo service mongod restart
sudo service mongod stop

验证启动成功

查看/var/log/mongodb/mongod.log

[initandlisten] waiting for connections on port <port>

端口是在 /etc/mongod.conf 中配置的。

mongodb的完全卸载

先停止运行mongodb

sudo service mongod stop

再卸载软件

sudo apt-get purge mongodb-org*

删除数据库和日志文件

sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

启动Windows10内置Linux子系统

先打开开发者模式。

Windows PowerShell
版权所有 (C) 2016 Microsoft Corporation。保留所有权利。
PS C:\WINDOWS\system32> bash
-- Beta 版功能 --
这将在 Windows 上安装由 Canonical 分发的 Ubuntu,
根据其条款的授权参见此链接:
https://aka.ms/uowterms
若要使用此功能,必须启用开发人员模式。
按任意键继续...
PS C:\WINDOWS\system32> bash
-- Beta 版功能 --
这将在 Windows 上安装由 Canonical 分发的 Ubuntu,
根据其条款的授权参见此链接:
https://aka.ms/uowterms
键入“y”继续: y
正在从 Windows 应用商店下载... 100%
正在提取文件系统,这将需要几分钟的时间...
是否要将 Ubuntu 区域设置设置为与 Windows 区域设置(zh-CN)匹配?
默认区域设置为 en_US。
键入“y”继续: y
请创建默认的 UNIX 用户帐户。该用户名不需要与 Windows 用户名匹配。
有关详细信息,请访问: https://aka.ms/wslusers
请输入新的 UNIX 用户名: jahentao
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
Sorry, passwords do not match
passwd: 认证令牌操作错误
passwd: password unchanged
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd: password updated successfully
安装成功!
环境将立即启动...
文档在以下网址提供:  https://aka.ms/wsldocs
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
jahentao@DESKTOP-L7T4U17:/mnt/c/Windows/System32$

Hadoop学习(1)-安装Hadoop(独立模式)

总是在笔记前,提醒自己,标明配置环境,重要细节不用怕麻烦,后期及时修改,做到准确可回溯。


环境说明

Windows 10 Pro

VMWare 12.5.5

Ubuntu 16.04.2 Server

server-jre-8u131-linux-x64

安装Hadoop

安装JDK

安装Hadoop,首先安装JDK。从略。

安装Hadoop

cd /opt
tar -zxvf hadoop-2.8.0.tar.gz
ln -s hadoop-2.8.0 hadoop
vim /etc/environment

更改

HADOOP_HOME="/opt/hadoop"
source /etc/environment

可以查看

hadoop version
Hadoop 2.8.0
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 91f2b7a13d1e97be65db92ddabc627cc29ac0009
Compiled by jdu on 2017-03-17T04:12Z
Compiled with protoc 2.5.0
From source with checksum 60125541c2b3e266cbf3becc5bda666
This command was run using /opt/hadoop-2.8.0/share/hadoop/common/hadoop-common-2.8.0.jar

默认就是独立模式,也叫本地模式,没有守护进程。用于开发和测试。

VMWare虚拟机配置-大数据学习准备(2)-多台虚拟机相关配置

总是在笔记前,提醒自己,标明配置环境,重要细节不用怕麻烦,后期及时修改,做到准确可回溯。


环境说明

Windows 10 Pro

VMWare 12.5.5

镜像 ubuntu-16.04.2-server-amd64.iso

基于之前的单台虚拟机的配置。克隆配置的单个虚拟机。

克隆后需要做的事

修改hostname

每个主机都得修改,以cluster2-server1为例:

/etc/hostname

cluster2-server1

修改hosts

# mv /etc/hosts /etc/hosts.backup

推荐使用SwitchHosts!,很方便

参考/etc/hosts配置

127.0.0.1           localhost
192.168.237.100     local-dev
192.168.237.101     cluster2-server1
192.168.237.102     cluster2-server2
192.168.237.103     cluster2-server3
192.168.237.104     cluster2-server4
192.168.237.105     cluster2-server5
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

修改网络

# desktop版安装了NetworkManager,修改完interfaces文档中的内容后,不会生效。需要先修改/etc/NetworkManager/NetworkManager.conf文档中的managed参数,使之为true,并重启系统
vim /etc/resolvconf/resolv.conf.d/base
# 添加阿里的DNS
nameserver 223.5.5.5
# 如果在其他地方修改nameserver,在重启机器后配置会被还原
vim /etc/NetworkManager/NetworkManager.conf
# 修改 managed=true
sudo service network-manager restart
reboot
vim /etc/network/interfaces
# 修改ip
/etc/init.d/networking restart

配置ssh

为每台虚拟机配置ssh密钥,我使用的Xshell主机密钥管理工具生成的。

Xshell用户密钥生成

然后,我用netcat将其发送给虚拟机。

server:
    nc -lvv -p 8089 < cluster2-server1.pub
client:
    nc -nvv 192.168.237.1 8089 > authorizedkeys

pdf文件拒绝访问

重装系统后,之前的pdf文件就这样了。之前是可以打开的,应该不是文件本身损坏。
解决办法:
在需要进行读写操作的目录下添加Network Service这个帐号,添加Network Service账号,同时选上FULL CONTROL.
具体过程:对该文件夹按右键--属性--安全--添加--高级--立即查找--在“搜索结果”下选“NETWORK SERVICE”--确定

VMWare虚拟机配置-大数据学习准备(1)-单台虚拟机相关配置

总是在笔记前,提醒自己,标明配置环境,重要细节不用怕麻烦,后期及时修改,做到准确可回溯。


环境说明

Windows 10 Pro

VMWare 12.5.5

镜像 ubuntu-16.04.2-server-amd64.iso

配置详情

命名规范

为了后期集群方便维护,命名规范得先确定好。

文件夹命名为ubuntu-16.04.2-server-amd64-{编号}

Linux命名为cluster2-server-{编号}

用户名统一为ubuntu

帖几张图,体会一下

新建虚拟机server1

命名虚拟机server1

安装

我选择的简易安装。在安装过程中,遇到了网络配置。需要的参数,可以见下节的静态IP设置。

简易安装-提示配置网络

静态IP设置

为了集群方便管理,网络配置使用DHCP静态IP。

可能在上方虚拟机简易安装的时候出现配置,也可以后期自己配置,为避免重复劳动,这部分参考相关博文,写得比较完善。

关于配置中,规范几个参数

首先查看自己Windows VMWare安装后,VMWare NetWork Adapter VMnet8网卡的TCP/IPv4属性

image

以cluster2-server-1为例

  • 默认网关gateway设置为 192.168.237.2
  • IP地址设置为 192.168.237.101
  • 掩码24位设置为 255.255.255.0
  • 网络设置为 192.168.237.0
  • 广播地址设置为 192.168.237.255

一份供参考的 /etc/network/interfaces 配置文件

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
        address 192.168.237.101
        gateway 192.168.237.2
        netmask 255.255.255.0
        network 192.168.237.0
        broadcast 192.168.237.255
        dns-nameservers 223.5.5.5

当然还有其他配置文件,详细请参考上面提及的博文。

配置好后和Windows主机通信试试,这里我曾遇到坑,主机ping通虚拟机但虚拟机ping不通主机。

需要更改防火墙,用不着将防火墙关掉,添加信任设备即可。以Norton Security为例:

防火墙设备信任


安装好虚拟机配置好网络,连上外网后,我们要做一些安装和其他配置修改。

更改Ubuntu软件源

以下是Ubuntu 16.04 国内可用 /etc/sources.list 配置参考

#deb cdrom:[Ubuntu-Kylin 16.04.2 LTS _Xenial Xerus_ - Release amd64 (20170215)]/ xenial main multiverse restricted universe
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://cn.archive.ubuntu.com/ubuntu/ xenial main restricted
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://cn.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://cn.archive.ubuntu.com/ubuntu/ xenial universe
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial universe
deb http://cn.archive.ubuntu.com/ubuntu/ xenial-updates universe
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://cn.archive.ubuntu.com/ubuntu/ xenial multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://cn.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu xenial partner
# deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://security.ubuntu.com/ubuntu xenial-security main restricted
# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://security.ubuntu.com/ubuntu xenial-security universe
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
# deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

设置完后更新软件源

sudo apt update

安装桌面

为了方便后期学习使用,安装个lightdm桌面

apt install ubuntu-desktop lightdm --fix-missing

使用nc传数据/文件

服务器端客户端示例:

  • server: nc -lvv -p 8089 < my.txt
  • client: nc -nvv serverip 8089 > my.txt

当你在纠结两台机子传个文件到底是用网络共享好还是利用中间ftp好又或者是scp甚至于给自己发个邮件另一台机子上去下载的时候,这简直是你的诺亚方舟。

Windows主机也安装nc

利用APTonCD制作Ubuntu离线安装软件包镜像

参考博文2博文3

sudo apt install aptoncd

这部分可以略去,用来制作离线安装软件包镜像的。如果,你已经有了离线安装软件包镜像,可以更改源为该镜像,不用去官网下载。

设置默认命令行界面启动

参考另一篇笔记

安装ssh

为了方便后面集群间通信,这是必要的。

sudo apt install openssh-server

然后确认sshserver是否启动了:(或用“netstat -tlp”命令)

ps -e | grep ssh

参考博文5

为 SSH 用户建立私钥和公钥,将公钥添加到虚拟机的 authorized_keys 文件中。

安装其他软件

安装Oracle Server JRE

文件版本 server-jre-8u131-linux-x64.tar.gz

然后就是解压、配置环境变量、生效,从略。

更新VMWare Tools

这个我是在安装了图形界面后装载CD,安装的,比较方便。