一 Hive的下载

二 Hive单用户安装

远程Metastore数据库

1  解压配置环境变量

#解压指定位置安装

[admin@node21 software]$ tar zxvf apache-hive-2.3.3-bin.tar.gz -C /opt/module/[admin@node21 module]$ mv apache-hive-2.3.3-bin hive-2.3.3#配置环境变量

[admin@node21 hive-2.3.3]$ sudo vi /etc/profile

末尾追加

export HIVE_HOME=/opt/module/hive-2.3.3export PATH=$PATH:$HIVE_HOME/bin

重新编译环境变量生效

[admin@node21 hive-2.3.3]$ source /etc/profile

2 配置Hive文件

2.1 修改hive-env.sh

[admin@node21 conf]$ cd /opt/module/hive-2.3.3/conf

[admin@node21 conf]$ cp hive-env.sh.template hive-env.sh

[admin@node21 conf]$ vi hive-env.sh

# HADOOP_HOME=${bin}/../../hadoop

打开注释修改 HADOOP_HOME=/opt/module/hadoop-2.7.6# export HIVE_CONF_DIR=打开注释修改 HIVE_CONF_DIR=/opt/module/hive-2.3.3/conf

2.2 修改hive-log4j.properties

修改hive的log存放日志到/opt/module/hive-2.3.3/logs

[admin@node21 conf]$ mv hive-log4j2.properties.template hive-log4j2.properties

[admin@node21 conf]$ vi hive-log4j2.properties

找到 property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name}

修改 property.hive.log.dir = /opt/module/hive-2.3.3/logs

3 配置MySQL作为Metastore

默认情况下, Hive的元数据保存在了内嵌的 derby 数据库里, 但一般情况下生产环境使用 MySQL 来存放 Hive 元数据。

3.1 安装mysql

安装mysql,拷贝 mysql-connector-java-5.1.9-bin.jar 放入 $HIVE_HOME/lib 下。

[admin@node21 software]$ cp mysql-connector-java-5.1.9.jar /opt/module/hive-2.3.3/lib/

3.2 修改配置文件

复制hive-default.xml.template为hive-site.xml 文件,删除掉configuration里的配置信息,重新配置 MySQL 数据库连接信息。

[admin@node21 conf]$ vi hive-site.xml

删除命令:光标在configuration的下一行,输入:.,$-1d  (光标所在行到 倒数第二行)回车,进行如下编辑

hive.exec.scratchdir

/user/hive/tmp

hive.scratch.dir.permission

733

hive.metastore.warehouse.dir

/user/hive/warehouse

javax.jdo.option.ConnectionURL

jdbc:mysql://node21:3306/hive?createDatabaseIfNotExist=true

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

javax.jdo.option.ConnectionUserName

hive

javax.jdo.option.ConnectionPassword

hive

hive.cli.print.header

true

hive.cli.print.current.db

true

3.3 mysql创建hive用户密码

mysql>CREATE DATABASE hive;

mysql>USE hive;

mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';

mysql> GRANT ALL ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive';

mysql> GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';

mysql>FLUSH PRIVILEGES;

mysql> quit;

4  运行Hive

4.1 初始化数据库

从Hive 2.1开始,我们需要运行下面的schematool命令作为初始化步骤。例如,这里使用“mysql”作为db类型。

[admin@node21 conf]$ schematool -dbType mysql -initSchema

终端输出如下信息

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found bindingin [jar:file:/opt/module/hive-2.3.3/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found bindingin [jar:file:/opt/module/hadoop-2.7.6/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding isof type [org.apache.logging.slf4j.Log4jLoggerFactory]

Metastore connection URL: jdbc:mysql://node21/hive?createDatabaseIfNotExist=true

Metastore Connection Driver : com.mysql.jdbc.Driver

Metastore connection User: hive

Starting metastore schema initialization to2.3.0Initialization script hive-schema-2.3.0.mysql.sql

Initialization script completed

schemaTool completed

执行成功后,可以使用Navicat Premium 查看元数据库 hive 是否已经创建成功。

4.2 启动 Hive 客户端

启动Hadoop服务,使用 Hive CLI(Hive command line interface), hive --service cli和hive效果一样,可以在终端输入以下命令:

[admin@node21 conf]$ hive

启动信息如下:

which: no hbase in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8/bin:/opt/module/jdk1.8/sbin:/opt/module/zookeeper-3.4.12/bin:/opt/module/hadoop-2.7.6/bin:/opt/module/hadoop-2.7.6/sbin:/opt/module/hive-2.3.3/bin:/home/admin/.local/bin:/home/admin/bin)SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/opt/module/hive-2.3.3/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/opt/module/hadoop-2.7.6/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding isof type [org.apache.logging.slf4j.Log4jLoggerFactory]

Logging initialized using configuration in file:/opt/module/hive-2.3.3/conf/hive-log4j2.properties Async: trueHive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X rel

eases.hive (default)>

三 多用户安装

用于非Java客户端访问元数据库,在服务器端启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库。

1 本地Metastore服务器

在本地/嵌入式Metastore设置中,Metastore服务器组件像Hive Client中的库一样使用。 每个Hive客户端都将打开一个到数据库的连接并对其进行SQL查询。确保可以从执行Hive查询的机器访问数据库,因为这是本地存储。还要确保JDBC客户端库位于Hive Client的类路径中。此配置通常与HiveServer2一起使用。

这里node21作为MySQL Server,node22同时作为Metastore服务器和客户端。

1.1 解压安装hive

[admin@node22 software]$ tar zxvf apache-hive-2.3.3-bin.tar.gz -C /opt/module/[admin@node22 module]$ mv apache-hive-2.3.3-bin hive-2.3.3

1.2 配置环境变量

[admin@node22 module]$ sudo vi /etc/profile

末尾追加

export HIVE_HOME=/opt/module/hive-2.3.3export PATH=$PATH:$HIVE_HOME/bin

重新编译环境变量生效

[admin@node22 hive-2.3.3]$ source /etc/profile

1.3 修改conf文件

1.3.1 修改hive-env.sh

[admin@node22 conf]$ cd /opt/module/hive-2.3.3/conf

[admin@node22 conf]$ cp hive-env.sh.template hive-env.sh

[admin@node22 conf]$ vi hive-env.sh

# HADOOP_HOME=${bin}/../../hadoop

打开注释修改 HADOOP_HOME=/opt/module/hadoop-2.7.6# export HIVE_CONF_DIR=打开注释修改 HIVE_CONF_DIR=/opt/module/hive-2.3.3/conf

1.3.2 修改hive-log4j.properties

[admin@node22 conf]$ mv hive-log4j2.properties.template hive-log4j2.properties

[admin@node21 conf]$ vi hive-log4j2.properties

找到 property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name}

修改 property.hive.log.dir = /opt/module/hive-2.3.3/logs

1.3.3 修改hive-site.xml

hive.exec.scratchdir

/user/hive/tmp

hive.scratch.dir.permission

733

hive.metastore.warehouse.dir

/user/hive/warehouse

javax.jdo.option.ConnectionURL

jdbc:mysql://node21:3306/hive?createDatabaseIfNotExist=true

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

javax.jdo.option.ConnectionUserName

hive

javax.jdo.option.ConnectionPassword

hive

hive.cli.print.header

true

hive.cli.print.current.db

true

1.4 运行Hive

初始化数据库

[admin@node22 conf]$ schematool -dbType mysql -initSchema hive hive

1.4.1第一种方式

服务端启动:

[admin@node22 ~]$ hive --service metastore

客户端启动:

[admin@node22 ~]$ hive

退出:quit

1.4.2第二种方式

服务端启动:

[admin@node22 ~]$ hiveserver2

客户端启动:

[admin@node22 ~]$ beeline -u jdbc:hive2://node22:10000 -n hive hive

或者

[admin@node22 ~]$ beeline

!connect jdbc:hive2://node22:10000 hive hive

退出:

!quit

2 远程Metastore服务器

这里node21作为MySQL Server,node22作为Metastore服务器,node23作为客户端。

2.1 解压安装hive

[admin@node22 software]$ tar zxvf apache-hive-2.3.3-bin.tar.gz -C /opt/module/[admin@node22 module]$ mv apache-hive-2.3.3-bin hive-2.3.3[admin@node23 software]$ tar zxvf apache-hive-2.3.3-bin.tar.gz -C /opt/module/[admin@node23 module]$ mv apache-hive-2.3.3-bin hive-2.3.3

2.2 配置环境变量

[admin@node22 module]$ sudo vi /etc/profile

[admin@node23 module]$ sudo vi /etc/profile

末尾追加

export HIVE_HOME=/opt/module/hive-2.3.3export PATH=$PATH:$HIVE_HOME/bin

重新编译环境变量生效

[admin@node22 hive-2.3.3]$ source /etc/profile

[admin@node22 hive-2.3.3]$ source /etc/profile

2.3 修改conf文件

2.3.1 修改hive-env.sh

修改node22,node23节点的hive-env.sh

cd /opt/module/hive-2.3.3/conf

cp hive-env.sh.template hive-env.sh

vi hive-env.sh

# HADOOP_HOME=${bin}/../../hadoop

打开注释修改 HADOOP_HOME=/opt/module/hadoop-2.7.6# export HIVE_CONF_DIR=打开注释修改 HIVE_CONF_DIR=/opt/module/hive-2.3.3/conf

2.3.2 修改hive-log4j.properties

修改node22,node23节点上的hive-log4j2.properties

mv hive-log4j2.properties.template hive-log4j2.properties

vi hive-log4j2.properties

找到 property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name}

修改 property.hive.log.dir = /opt/module/hive-2.3.3/logs

2.3.3 修改hive-site.xml

服务端配置

hive.exec.scratchdir

/user/hive/tmp

hive.scratch.dir.permission

733

hive.metastore.warehouse.dir

/user/hive/warehouse

javax.jdo.option.ConnectionURL

jdbc:mysql://node21:3306/hive?createDatabaseIfNotExist=true

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

javax.jdo.option.ConnectionUserName

hive

javax.jdo.option.ConnectionPassword

hive

hive.cli.print.header

true

hive.cli.print.current.db

true

客户端配置

hive.exec.scratchdir

/user/hive/tmp

hive.scratch.dir.permission

733

hive.metastore.warehouse.dir

/user/hive/warehouse

hive.metastore.uris

thrift://node22:9083

hive.cli.print.header

true

hive.cli.print.current.db

true

2.4 运行Hive

拷贝 mysql-connector-java-5.1.9-bin.jar到服务端hive/lib下。

初始化服务器端

[admin@node22 conf]$ schematool -dbType mysql -initSchema hive hive

启动方式:

服务端node22启动命令:

[root@node22 ~]# hive --service metastore2018-06-10 20:23:47: Starting Hive Metastore Server

查看node22的9083端口:

[root@node22 ~]# netstat -nptl | grep 9083

客户端node23启动命令:

[root@node23 ~]# hive

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found bindingin [jar:file:/opt/module/hive-2.3.3/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found bindingin [jar:file:/opt/module/hadoop-2.7.6/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding isof type [org.apache.logging.slf4j.Log4jLoggerFactory]

Logging initializedusing configuration in file:/opt/module/hive-2.3.3/conf/hive-log4j2.properties Async: trueHive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X rel

eases.hive (default)>

四 Hive基本使用

现有一个文件student.txt,将其存入hive中,student.txt数据格式如下:

95002,刘晨,女,19,IS

95017,王风娟,女,18,IS

95018,王一,女,19,IS

95013,冯伟,男,21,CS

95014,王小丽,女,19,CS

95019,邢小丽,女,19,IS

95020,赵钱,男,21,IS

95003,王敏,女,22,MA

95004,张立,男,19,IS

95012,孙花,女,20,CS

95010,孔小涛,男,19,CS

95005,刘刚,男,18,MA

95006,孙庆,男,23,CS

95007,易思玲,女,19,MA

95008,李娜,女,18,CS

95021,周二,男,17,MA

95022,郑明,男,20,MA

95001,李勇,男,20,CS

95011,包小柏,男,18,MA

95009,梦圆圆,女,18,MA

95015,王君,男,18,MA

1、创建一个新数据库

hive (default)>create database myhive;

OK

Time taken:12.948seconds

hive (default)>

2、使用新的数据库

hive (default)>use myhive;

OK

Time taken:0.931seconds

hive (myhive)>

3、查看当前正在使用的数据库

hive (myhive)> selectcurrent_database();

OK

_c0

myhive

Time taken:16.21 seconds, Fetched: 1row(s)

hive (myhive)>

4、在数据库myhive创建一张student表

hive (myhive)> create table student(id int, name string, sex string, age int, department string) row format delimited fields terminated by ",";

OK

Time taken:2.12seconds

hive (myhive)>

5、往表中加载数据

hive (myhive)> load data local inpath "/opt/data/student.txt"into table student;

Loading data to table myhive.student

[Warning] could not update stats.

OK

Time taken:26.859seconds

hive (myhive)>

6、查询数据

hive (myhive)> select * fromstudent;

OK

student.id student.name student.sex student.age student.department95002 刘晨 女 19IS95017 王风娟 女 18IS95018 王一 女 19IS95013 冯伟 男 21CS95014 王小丽 女 19CS95019 邢小丽 女 19IS95020 赵钱 男 21IS95003 王敏 女 22MA95004 张立 男 19IS95012 孙花 女 20CS95010 孔小涛 男 19CS95005 刘刚 男 18MA95006 孙庆 男 23CS95007 易思玲 女 19MA95008 李娜 女 18CS95021 周二 男 17MA95022 郑明 男 20MA95001 李勇 男 20CS95011 包小柏 男 18MA95009 梦圆圆 女 18MA95015 王君 男 18MA

Time taken:5.867 seconds, Fetched: 21row(s)

hive (myhive)>

7、查看表结构

hive (myhive)>desc student;

OK

col_name data_type comment

idintnamestringsexstringageintdepartmentstringTime taken:4.179 seconds, Fetched: 5row(s)

hive (myhive)>

五 故障解析

1.没有初始化数据库

[admin@node21 conf]$ hive

which: no hbasein (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8/bin:/opt/module/jdk1.8/sbin:/opt/module/zookeeper-3.4.12/bin:/opt/module/hadoop-2.7.6/bin:/opt/module/hadoop-2.7.6/sbin:/home/admin/.local/bin:/home/admin/bin:/opt/module/jdk1.8/bin:/opt/module/jdk1.8/sbin:/opt/module/zookeeper-3.4.12/bin:/opt/module/hadoop-2.7.6/bin:/opt/module/hadoop-2.7.6/sbin:/opt/module/jdk1.8/bin:/opt/module/jdk1.8/sbin:/opt/module/zookeeper-3.4.12/bin:/opt/module/hadoop-2.7.6/bin:/opt/module/hadoop-2.7.6/sbin:/opt/module/jdk1.8/bin:/opt/module/jdk1.8/sbin:/opt/module/zookeeper-3.4.12/bin:/opt/module/hadoop-2.7.6/bin:/opt/module/hadoop-2.7.6/sbin:/opt/module/hive-2.3.3/bin)SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found bindingin [jar:file:/opt/module/hive-2.3.3/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found bindingin [jar:file:/opt/module/hadoop-2.7.6/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding isof type [org.apache.logging.slf4j.Log4jLoggerFactory]

Logging initializedusing configuration in jar:file:/opt/module/hive-2.3.3/lib/hive-common-2.3.3.jar!/hive-log4j2.properties Async: trueExceptionin thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.

name%7D at org.apache.hadoop.fs.Path.initialize(Path.java:205)

at org.apache.hadoop.fs.Path.(Path.java:171)

at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:659)

at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:582)

at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java:549)

at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:750)

at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:686)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.hadoop.util.RunJar.run(RunJar.java:221)

at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

Caused by: java.net.URISyntaxException: Relative pathin absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

at java.net.URI.checkPath(URI.java:1823)

at java.net.URI.(URI.java:745)

at org.apache.hadoop.fs.Path.initialize(Path.java:202)

...12 more

2.找不到hadoop home

Cannot find hadoop installation: $HADOOP_HOME or $HADOOP_PREFIX must be set or hadoop must be in the path

错误可是发现执行 : echo $HADOOP_HOME时可以看到内容

最后发现问题修改 conf/hive-env.sh 中Hadoop的路径设置不正确。

hive 2.3 mysql_Hive(二)CentOS7.5安装Hive2.3.3相关推荐

  1. 制作Centos7自动安装镜像(二)

    文章总览:制作Centos7自动安装镜像 RPM安装包制作 Linux镜像的标准安装方式是将待安装的软件制作成RPM包,然后将RPM包解压并复制到指定的目录中去(据说除此之外还可以将带安装的软件做成t ...

  2. CentOS7.6安装WirёGuαrd(二)

    本文是<CentOS7.6安装WirёGuαrd(一)>的续篇 前一篇地址为https://www.jianshu.com/p/444fa0d48cb7

  3. CentOS7环境安装Kubernetes四部曲之二:配置模板和安装master

    本文是<CentOS7环境安装Kubernetes四部曲>系列的第二篇,前一篇<CentOS7环境安装Kubernetes三部曲:标准化机器准备>我们把机器准备好了,并且做了必 ...

  4. Linux基础环境搭建(CentOS7)- 安装Flume

    Linux基础环境搭建(CentOS7)- 安装Flume 大家注意以下的环境搭建版本号,如果版本不匹配有可能出现问题! Linux基础环境搭建(CentOS7)- 虚拟机准备 Linux基础环境搭建 ...

  5. Centos7下安装Docker

    Centos7下安装Docker(详细的新手装逼教程) 参考: https://www.cnblogs.com/qgc1995/archive/2018/08/29/9553572.html 早就听说 ...

  6. centos7 yum安装kubernetes 1.1

    前提:centos7 已经update yum update -y 一.创建yum源 master,slave都要 kubernetes release 版本 yum源 http://cbs.cent ...

  7. linux 安装redis2.8.3,centos7下安装Redis2.8版本步骤

    Redis 简介 Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用. Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zs ...

  8. centos7.2安装mysql 1

    阿里云centos7.2安装mysql 一.查看是否安装mysql rpm -qa | grep mysql 什么都没显示,说明没有安装 二.进入到opt目录下,使用wget下载官方yum源的rpm包 ...

  9. centos7二进制安装php,Centos7下编译安装配置Nginx+PHP+MySql环境

    序言 这次玩次狠得.除了编译器使用yum安装,其他全部手动编译.哼~ 看似就Nginx.PHP.MySql三个东东,但是它们太尼玛依赖别人了. 没办法,想用它们就得老老实实给它们提供想要的东西. 首先 ...

最新文章

  1. signature=dff897e1da6b42a8e9483e18ff19fcde,Vídeo Institucional: Ingresse1
  2. 20175221 MyCP(课下作业,必做)
  3. 笔记-项目管理过程组与知识领域(基础)
  4. 运行虚拟机报错:vmware workstations与devicecredential不兼容(终极解决方案)
  5. linux 升级 iphone,Linux 5.13 更新有望增加对苹果 M1 处理器的支持
  6. html自动图片尺寸,关于html:CSS背景图像适合宽度,高度应按比例自动缩放
  7. java面向对象第一课,定义类,模拟人的行为:吃饭工作休息
  8. JBox2D For Android - hello box2d
  9. 首批绿证核发 2018年或适时启动强制约束交易
  10. Android颜色代码对照表
  11. nginx动态php转发,Nginx 动态 upstreams 实现,nginxupstreams_PHP教程
  12. 听说你想做一份高级的可视化图表?
  13. Springboot的工作机制:2 @SpringBootApplication背后的秘密
  14. SQL 分页查询显示
  15. oracle 聚类索引,carrot2-cluster 使用 实现的读取数据库进行聚类的程序,同时也可以 lucene索引 Oracle 238万源代码下载- www.pudn.com...
  16. 在硬盘安装超小体积的迷你 WinPE(30MB)系统
  17. python使用win32*模块模拟人工操作——城通网盘下载器(一)
  18. 汇编 DOS系统功能调用
  19. Laravel 源码解读
  20. win10服务器文件夹显示不全,Win10系统文件/文件夹图标显示不正常的解决方法

热门文章

  1. Error: Your project contains C++ files but it is not using a supported native build system
  2. Centos7 设置静态IP后重启网络服务出错
  3. 以Debug模式启动JBoss
  4. 我学Flash/Flex(2):AS3读取XML文件内容
  5. dolphin.php 视频,DolphinPHP V1.0.4发布
  6. active mq topic消费后删除_RabbitMQ重复消费,顺序消费,消息丢失如何解决
  7. Qemu(纯软实现)架构+KVM(基于kernel模拟硬件)原理(一)
  8. GFP_KERNEL的作用
  9. arm和thumb指令模式
  10. 计算机网络的三种通讯模式(单播,广播,组播)小结