前言
大家在使用Centos
操作系统安装软件包和库时,经常会使用到yum
命令去安装相关软件,使用yum
时会自动去下载安装软件所需的所有依赖,这种方式极大提高了用户安装软件的速度。
但是,有些场景下这种方式又会带来一些问题,比如在离线安装的场景下【比如:政府部门、高校等部门服务器是不允许连接互联网的】,依赖问题就无法在线解决,这个时候就需要使用到离线安装技术。
在工作中我们经常会遇到这样的一些问题,例如公司服务器数据存放在公司内容,现在在外面出差无法通过资源浏览器直接访问,通常的做法是使用远程控制软件如to_desk
、向日葵等等,这种方式虽然能够解决我们文件查找的问题,但是在进行传输的时候,第三方工具的传输速度太慢,并且这种方式也不太优雅;再比如,公司在做开发时,一般是很多人一起完成一个项目,每个人负责一部分代码,这个时候就设置到一个代码同步的问题,场景的做法就是在局域网中搭建gitlab
,然后大家统一将代码上传到gitlab
,但是有的时候由于一些原因有些工作需要回家完成,但是在家完成后又无法直接上传到公司的局域网gitlab
,和其他同事之间就无法进行及时的同步进度~~~~。
这些问题在学习完本文的内容后都会得到解决。
我在这里演示的设备有3个:
例如,在此演示的发布库的项目结构如下所示:
1 | MinglogUtils |
hadoop102 | hadoop103 | hadoop104 | |
---|---|---|---|
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
这里的规划方式和前面我们讲到的一致。
相关IP
配置如下所示:
宿主机网络信息:
IP
:192.168.128.66
GATEWAY
:192.168.128.2
DNS1
:192.168.128.2
集群网络配置:
hadoop102
:192.168.128.102
hadoop103
:192.168.128.103
hadoop104
:192.168.128.104
现有数据score_info.txt
文件,文件内容如下所示:
1 | 1001 01 90 |
编写HiveQL
代码,完成以下问题:
创建score_info
表,字段名分别为uid
、subject_id
和score
。
1 | create table if not exists score_info( |
将数据导入score_info
表。
1 | load data local |
求出每门学科的平均成绩。
1 | select uid, |
找出所有科目成绩都大于某个学科平均成绩的学生。
1 | select |
现有数据action.txt
文件,文件内容如下所示:
1 | u01 2017/1/21 5 |
编写HiveQL
代码,完成以下问题:
创建action
表,字段名分别为userId
,visitDate
和visitCount
。
1 | create table if not exists action( |
将数据导入action
表。
1 | load data local |
统计出每个用户的月累计访问次数。
1 | select |
统计出每个用户的逐月累计访问次数。
1 | select |
常用Dockerfile
命令汇总。
Docker
最初是dotCloud
公司创始人Solomon Hykes
在法国期间发起的一个公司内部项目,它是基于 dotCloud
公司多年云服务技术的一次革新,并于2013年3月
以 Apache 2.0
授权协议开源,主要项目代码在 GitHub
上进行维护。Docker
项目后来还加入了Linux
基金会,并成立推动开放容器联盟(OCI
)。
Docker
使用 Google
公司推出的Go
语言进行开发实现,基于Linux
内核的cgroup
,namespace
,以及OverlayFS
类的Union FS
等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于LXC
,从 0.7
版本以后开始去除 LXC
,转而使用自行开发的libcontainer
,从 1.11
开始,则进一步演进为使用runC
和containerd
。
Docker
在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker
技术比虚拟机技术更为轻便、快捷。