分布式存储概述澳门美高梅手机网站

分布式存储是争辩于单机存储而言,之所以要分布自然是因为网络时期音讯数据大爆炸,单机已经难以满意大型应用的多寡存储须要。

单机搭建安卓开发环境,前三篇重即使备战,这一篇将重点介绍JDK、REPO、GIT及编译工具的装置,下载项目代码并编译。特别表明,以下操作基于陆拾1人12.04
Server版Ubuntu。若使用其余版本系统,请参考谷歌(Google)官方操作步骤。访问不了的同室,请找大师(蓝灯),他能助你一臂之力。

存储系统的关怀点

至于存储系统,一般大家关切下边多少个方面:

  1. 数据分布与负载均衡
  2. 多少存储的可信性与一致性
  3. 数量访问品质
  4. 系统容错能力
  5. 系统伸张能力

在单机存储系统中有一种独立磁盘冗余阵列(RAID,redundant array of
independent disks)技术,
是把相同的数量存储在七个硬盘不同地点的点子。通过把数量放在五个硬盘上,输入输出操作能以平衡的法门交叠,矫正品质。
其一技能主旨缓解了小编们地方提到的前三点,数据足以因此磁盘阵列控制程序均匀分布在多个硬盘上,
以促成负载均衡,并通过冗余来保持可信性。类似单机挂载多磁盘,数据在磁盘阵列上的冗余副本要保持一致也便于。
积存系统的走访品质基本受制于磁盘的性质,通过分散到多磁盘确实达到了晋级品质的听从。

当真的标题难点在于后两点:
磁盘阵列化解了纯粹磁盘的脆弱性,但并不能够晋升存储子系统一体化的可用性,或然说容错能力。
同理增加能力同样受制于磁盘阵列的情理增添槽的限定。

1)安装OpenJDK
7

分布式存储的定义与分类

从而分布式存储应运而生,作为存储系统它一律要求直面上述难点。
先来看下它的定义:
分布式存储系统是大度平淡无奇 PC
服务器通过网络互联,对外作为3个完好无缺提供仓储服务。

从地方的定义看,越多时候大家把分布式存储作为一种服务面向各个不一样的数目存储要求。

从数量存储模型上,咱们可以进一步分类分布式存储服务为:

  1. 文本模型: 对应分布式文件系统,如:GFS、HDFS
  2. 论及模型: 对应分布式数据库系统,如:谷歌 Spanner、天猫商城OceanBase
  3. 键值模型: 很多 NoSQL 系统采取,如:Redis

   sudo
apt-get install openjdk-7-jdk –force-yes –y

分布式存储的得与失

面对单机存储系统面对五个困难,分布式存储系统经过集群方式扩张到几百竟是几千台集群规模来消除系统增添能力,
通过软件层面对单机服务器的硬件容错能力大大升级了一体化集群的容错能力。

在赢得那几个好处时,自然也享有牺牲,所谓有得必有失。
说到存储不得不提单机数据库存储的事情天性:A(原子性)C(一致性)I(隔离性)D(持久性),
而增加到分布式存储后,受限于分布式
C(一致性)A(可用性)P(分区容忍性)理论,大约不容许满足完整得事务天性。
种种分布式存储服务完成都对单机存储的作业天性作了衡量取舍,满意特定的劳务情况需要。

除此以外分布式存储系统是根据网络互联的,所以除了核心得磁盘访问质量花费,还多了网络品质成本。
万般一般混合硬盘得平均寻道时间为 10ms,而机房内网得互联网访问费用一般小于
0.5 ms,相对品质损失较小。
而原本由磁阵控制程序负担得多少在磁盘中的分布、负载均衡策略和一致性保证,
在分布式存储中都需求软件在全体机器集群层面去考虑,复杂度大大进步。

 
安装OpenJDK8
       
sudo add-apt-repository ppa:openjdk-r/ppa
       
sudo apt-get update
       
sudo apt-get install openjdk-8-jdk –force-yes -y

总结

眼下打算对后端分布式架构设计领域知识做一个梳理,形成一个两全的学识系统,本文算八个始发吧。
地点对分布式存储服务进行了完整归纳,精通了分布式存储服务的分类及其架构设计的关怀点。
持续将进而拓展,长远到实际项目标分布式存储服务架构设计要点与贯彻细节。

查看java的版本

参考

[1] 杨传辉.
大面积分布式存储系统.
机械工业出版社(二零一一-09), pp. 7-52


上面是自作者自个儿开的三个微信公众号
[须臾之间],除了写技术的小说、还有产品的、行业和人生的沉思,希望能和更加多走在那条路上同行者交换,有趣味可关注一下,多谢。
澳门美高梅手机网站 1

版权注明:本文为博主原创小说,未经博主允许不得转发。

 

  java
–version

  java
version “1.7.0_95”

  OpenJDK
Runtime Environment (IcedTea 2.6.4) (7u95-2.6.4-0ubuntu0.12.04.1)

  OpenJDK
64-Bit Server VM (build 24.95-b01, mixed mode)

设置环境变量

  vim
~/.profile

在结尾添加如下配置,保存并退出

  export
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

  export
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH

  export
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

极限输入如下命令使配置生效

  source
~/.profile

2)安装google推荐的编译工具

  sudo
apt-get install gnupg flex bison gperf build-essential –force-yes -y

  sudo
apt-get install zip curl libc6-dev libncurses5-dev:i386
x11proto-core-dev –force-yes -y

  sudo
apt-get install libx11-dev:i386 libreadline6-dev:i386 –force-yes -y

  sudo
apt-get install libgl1-mesa-dev g++-multilib mingw32 tofrodos
–force-yes -y

  sudo
apt-get install python-markdown libxml2-utils xsltproc zlib1g-dev:i386
–force-yes -y

  sudo
apt-get install libgl1-mesa-dri:i386 dpkg-dev –force-yes –y

3)安装repo

下载repo
V1.22境钦点制版
,已处理原版在境内应用时出现如下错误提醒:

  fatal:
Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle

  fatal:
error [Errno 101] Network is unreachable

将repo拷贝到/bin目录下,并修改其个性

  sudo
cp /home/repo /bin/

  sudo
chmod a+x /bin/repo

4)安装git

  sudo
apt-get install git –force-yes –y

陈设用户邮箱及用户名

  git config –global user.email
“hjb@mail.com”

  git
config –global user.name “hjb”

陈设落成后可经过git
config –list查看配置音讯,或透过cat
~/.gitconfig查看git配置文件的详细新闻。

5)创造密钥,并添加到服务器端

  ssh-keygen
-t rsa -C hjb@bonovo.com

拷贝id_rsa.pub一碗水端平命名,然后复制到服务器

  cp
/home/hjb/.ssh/id_rsa.pub /home/hjb/id_rsa.pub.hjb113

在git服务器端登录bnv用户,并举行如下命令,

  cat
/home/hjbang/id_rsa.pub.hjb113 >>
/home/bnv/.ssh/authorized_keys

6)本地成立project目录mt8735,准备下载代码

  cd
~

  mkdir
mt8735

  cd
mt8735

7)同步代码

  repo
init -u
bnv@192.168.1.12:/home/git/MTK/lp5.1-mt8735m-mirror/bonovo/platform/manifests.git
-b default

  repo
sync

  repo
forall -c git checkout lp5.1-mt6735m

  repo
forall -c git checkout mt8735-avn401

  repo
forall -c git pull

8)安装ccache,并配置ccache

  sudo
apt-get install -y ccache

配置.bashrc

  sudo
vim ~/.bashrc

说到底添加

  export
USE_CCACHE=1

使配置及时生效

  source
~/.bashrc

翻看设置意况:

  echo
$USE_CCACHE

9)编译project

  cd
~/mt8735

  prebuilts/misc/linux-x86/ccache/ccache
-M 50G

  .
build/envsetup.sh

  launch
25

  make
update-api

  make
update-api,几乎必要花18分钟,详细音信如下,

澳门美高梅手机网站 2澳门美高梅手机网站 3

  Docs droiddoc: out/target/common/docs/doc-comment-check

  DroidDoc took 513 sec. to write docs to out/target/common/docs/doc-comment-check

  Copying current.txt

  Copying removed.txt

  Docs droiddoc: out/target/common/docs/system-api-stubs

  DroidDoc took 13 sec. to write docs to out/target/common/docs/system-api-stubs

  Copying system-current.txt

  Copying system-removed.txt

 #### make completed successfully (17:54 (mm:ss)) ####

View
Code

编译Android5.1系统

  make
–j24

编译进度非常久远,可以通过如下命令查看cahe使用情状,

  watch -n1 -d
prebuilts/misc/linux-x86/ccache/ccache -s

  cache directory /home/hjb/.ccache

  cache hit (direct) 0

  cache hit (preprocessed) 0

  cache miss 43927

  called for link 1209

  preprocessor error 732

  unsupported source language 968

  unsupported compiler option 2

  files in cache 138583

  cache size 18.0 Gbytes

  max cache size 50.0 Gbytes

可以看到cache大约有18GB,故使用ccache,第三遍编译的时间会比并非cache更长,但之后编译速度将会有很大升级。

透过四个半小时,第三次编译终于不负众望了,详细消息如下,

澳门美高梅手机网站 4澳门美高梅手机网站 5

Creating filesystem with parameters:

Size: 1610612736

Block size: 4096

Blocks per group: 32768

Inodes per group: 8192

Inode size: 256

Journal blocks: 6144

Label:

Blocks: 393216

Block groups: 12

Reserved block group size: 95

Created filesystem with 2436/98304 inodes and 221139/393216 blocks

Install system fs image: out/target/product/mt8735_tb_l1/system.img

out/target/product/mt8735_tb_l1/system.img+out/target/product/mt8735_tb_l1/obj/PACKAGING/recovery_patch_intermediates/recovery-from-boot.p maxsize=1644331392 blocksize=4224 total=881392372 reserve=16612992



#### make completed successfully (04:25:03 (hh:mm:ss)) ####

View Code

修改内核模块代码,重新编译系统镜像几乎要求13分钟,详细音讯如下,

澳门美高梅手机网站 6澳门美高梅手机网站 7

Creating filesystem with parameters:

Size: 1610612736

Block size: 4096

Blocks per group: 32768

Inodes per group: 8192

Inode size: 256

Journal blocks: 6144

Label:

Blocks: 393216

Block groups: 12

Reserved block group size: 95

Created filesystem with 2436/98304 inodes and 221139/393216 blocks

Install system fs image: out/target/product/mt8735_tb_l1/system.img

out/target/product/mt8735_tb_l1/system.img+out/target/product/mt8735_tb_l1/obj/PACKAGING/recovery_patch_intermediates/recovery-from-boot.p maxsize=1644331392 blocksize=4224 total=881392372 reserve=16612992



#### make completed successfully (13:04 (mm:ss)) ####

View Code

即便在SSD上编译,这些小时会缩水到肆分钟左右,但照旧比较长。所以在调节内核驱动模块时,最好使用动态加载模块的章程,以增加工作功用。

由来,Android系统编译的环境基本搭建完毕,后一篇将介绍怎么样搭建Android应用开发的环境。

发表评论

电子邮件地址不会被公开。 必填项已用*标注