数据结构算法及知识点总结

数据结构算法第二天

一、栈的表示和实现

栈作为一种特殊的线性表,在计算机中主要有两种基本的存储结构:顺序存储结构和链式存储结构。采用顺序存储结构的栈简称为顺序栈,采用链式存储结构的栈简称为链栈

1.顺序栈

顺序栈是用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时由栈操作的特殊性,还必须附设一个位置指针top(栈顶指针),来动态的址是栈顶元素在顺序栈中的位置。通常以top等于负一表示空栈。

顺序栈的存储结构可以用C语言中的一堆数组来表示定义如下。

#define Stack_Size 50 / * 设栈中元素个数为50 * /
typedef struct
{
 StackElementType elem[Stack_Size]; / * elem是存放栈中元素的一堆数组 * /
int top; / * top用来存放栈顶元素的下标,top为负一表示空栈 * /
}SeqStack;

 【算法描述】初始化顺序栈

void InitStack(SeqeStack*S)
{
  S->top=-1;
} / * 构造一个空栈 * /

进栈时,首先判断当前栈是否已满,如果栈已满,则在进栈就会发生上溢 。

【算法描述】顺序栈进栈操作

int Push(SeqStack *S,StackElementType x)
{   / * 将x置入S栈新栈顶 * /
 if(S->top==Stack_Size-1) return(FALSE); / * 栈已满 * /
 S->top++; / * 修改栈顶指针 * /
S->elem[S->top]=x; / * x进栈 * /
return(TRUE);
}

 出栈时,首先判断当前栈是否为空,如果栈空,则要出栈就会发生下溢。

【算法描述】顺序栈出栈操作

int Pop(SeqStack * S,StackElementType * x)
{ / * 将S栈顶元素弹出,放到x所指的存储空间中带出 * /
  if(S->top==-1) / * 栈为空 * /
  return(FALSE);
else
    {
       * x=S->elem[S->top]; / * 栈顶元素赋给x * /
       S->top--; / * 修改栈顶指针 * /
        return(TRUE);
     }
}

Hadoop入门

一、Hadoop集群搭建

⚫集群搭建方式:①单机模式   ②集群模式

   在单机模式下,要求Windows系统运行内存至少是8G

   在集群模式下,要求Windows系统运行内存至少是16G

二、Hadoop集群使用

⚫Hadoop启动和关闭-单节点模式

集群一键启动和关闭

•一键关闭大数据环境   :   /onekey/my-stop-all.sh

•一键启动大数据环境   :   /onekey/my-start-all.sh

⚫Hadoop页面访问-集群模式

                                                                端口

 2.x  HDFS   : 50070                                                               yarn页面   : 8088         

 3.x  HDFS   : 9870                                                                 日志          : 19888

        HIVE    :10000

 三、HDFS的副本机制

四、HDFS的Shell命令

Hadoop提供了文件系统的shell命令使用格式如下:

hadoop fs <args>(官方推荐)或者  hdfs dfs <args>

补充

l l 查看目录下的文件和文件夹的详细信息
ls :显示文件列表
bin用于执行二进制可执行文件,通常存放可执行文件
cd - :返回到上一次的工作目录
cd ..:返回上一层目录
etc  :用于探索和管理操作系统的配置文件和目录
share:用于共享文件夹或打印机,是其他用户可以访问和使用共享资源

chmod:用于修改文件或目录的权限
mv :用于移动文件和目录,也可以用于文件和目录的重命名
pwd :显示用户当前所处的工作目录,或者说是显示当前工作目录的绝对路径

 敲重点命令

hadoop fs -put :将单个的源文件或者多个源文件srcs从本地文件系统上传到目标文件系统中。

hadoop fs -get :将HDFS文件拷贝到本地文件系统
hadoop fs -cp  :将文件拷贝到目标路径中

hadoop fs -cat :将参数所指示的文件内容输出到控制台
shutdown  -h now :关机
reboot: 重启(一般不关机服务器,用该命令重启)

yarn application -kill [application_id] : 在yarn资源管理页面找到application的id,使用kill终止任务

五、Hive

Apache Hive 是一款反不是SQL计算的工具,其主要功能是

1.  hive 是基于hadoop实现的工具,用来进行数据提取、转化、加载,这是一种可以存储查询和分析存储在hadoop中的大规模数据的机制。
2. hive将文件转化为表结构,并提供给SQL查询功能,能将SOL语句转变为MapReduce任务来执行。
3. hive driver驱动程序:解析器、编译器、优化器、执行器

Parser(解析器):将SQL字符串转化成抽象语法树AST,这一步一般都用第三方工具库完成,比如antlr;对AST进行语法分析比如表是否存在、字段是否存在、SQL语句是否有误。

Compiler(编译器):对SQL语句进行语法、词法、语义的编译(需要跟元数据关联),编译完成后会生成一个执行计划。hive上就是编译成mapreduce的job。

Optimizer(优化器):将执行计划进行优化,减少不必要的列、使用分区使用索引等,优化job。

Executer(执行器):将优化后的执行计划提交给Hadoop的yarn上执行,提交job。
4. metastore元数据存储

描述数据的数据称为元数据

5. Namenode 记录块存储位置。
6. Hive的两个服务:

①Metastore服务

客户端通过连接metastore服务,matestore在连接mysql数据库来存储元数据。这样多个客户端可以同时连接,且这些客户端不需要知道mysql数据库的用户名和密码,只需要连接matestore服务即可。

②HiveServer2服务

HiveServer2服务允许用户通过JDBC或ODBC连接到hive,进行数据查询和分析。

7. ifconfig

用于显示或配置网络设备(网口接口卡)的命令

补充说明:

可设置网络设备的状态,或显示当前的设置

8. jps -m 

用来区别两个RunJar


9.-  表示文件

  d  表示文件夹

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值