08 2019 档案
摘要:参考:http://www.raincent.com/content-85-11052-1.html 1、Application:Spark应用程序 指的是用户编写的Spark应用程序,包含了Driver功能代码和分布在集群中多个节点上运行的Executor代码。 Spark应用程序,由一个或多个作
阅读全文
摘要:1. 集群角色 Application:基于spark的用户程序,包含了一个Driver program 和集群中多个Executor Driver Program:运行application的main()函数并自动创建SparkContext。Driver program通过一个SparkCont
阅读全文
摘要:HashMap数据存储的过程先根据key获得hash值,通过 (n - 1) & hash 判断当前元素存放的位置(这里的 n 指的是数组的长度),如果当前位置存在元素的话,就判断该元素与要存入的元素的 hash 值以及 key 是否相同,如果相同的话,直接覆盖,不相同就通过拉链法解决冲突。 其中,
阅读全文
摘要:1. HashMap在什么条件下扩容 判断HashMap的数组Size大小如果超过loadFactor*capacity,就要扩容。 相关的类属性: capacity:当前数组容量,始终保持 2^n,可以扩容,扩容后数组大小为当前的 2 倍。 loadFactor:负载因子,默认为 0.75 loa
阅读全文
摘要:HashMap源码数据结构: 其中,Entry就是一个链表节点。如果将数组替换成LinkedList是否可行?如下: 将数组替换成LinkedList是可以的,但是HashMap选用数组的原因有以下两点: 1)数组效率高 在HashMap中,定位桶的位置是利用元素的key的哈希值对数组长度取模得到。
阅读全文
摘要:1.CM(Cloudera Manager)介绍 1.1 简介 Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。 对比Apache / CDH /
阅读全文
摘要:1. 报错提示 2. 问题原因 之前的namenode格式化了,所以这次不能格式化,需要把原来格式化的删除。 3. 解决方法 1)在/dfs目录下有dn或者nn 删除三台机器(所有机器)的/dfs目录 2)然后点击retry即可 参考:https://blog.csdn.net/u010886217
阅读全文
摘要:1)使用yum安装http服务(主节点) 2)将httpd服务加入系统自启动服务并设置开机启动 3)下载CM5.12.1rpm包(注意:此路径包含的是CentOS7版本的rpm包) (https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.12.1
阅读全文
摘要:一、服务器配置 1、查看服务器、客户端操作系统版本 2、查看服务器是否安装ntp,系统默认安装ntpdate; 3、安装ntp ntpdate,其中ntpdate默认安装,可以只安装ntp; 4、查看是否已安装完成,与第2步对比 5、查看ntp服务器状态,两条命令效果一样 或 6、修改配置文件,使该
阅读全文
摘要:1. 安装需要用到的包 2. 下载 Python 2.6.8 版本 3. 解压文件 4. 进入解压后文件的目录 5. 配置安装信息. (添加参数:--enable-shared,这样即会生成libpython2.6.so.1.0) 6. 编译文件 (若失败提示:configure: error: n
阅读全文
摘要:1.报错提示: 报错提示scm用户访问不了数据库,即scm权限问题 2.解决: 授权scm用户所有访问权限: 3.再次执行: log4j:ERROR Could not find value for key log4j.appender.A错误按照网上说法对root用户授最大权限,但是试了还是报,最
阅读全文
摘要:1.介绍 使用集群同步脚本对配置文件同步分发 2.操作 1)在/root目录下创建bin目录,并在bin目录下创建文件xsync,文件内容如下: 在该文件中编写如下代码(其中第5步需要按自己集群情况配置分发范围) 2)修改脚本 xsync 具有执行权限 3.使用示例 1)将hadoop101中的JD
阅读全文
摘要:安全增强型Linux(Security-Enhanced Linux)简称SELinux,它是一个 Linux 内核模块,也是Linux的一个安全子系统。为了避免安装过程出现各种错误,建议关闭,有如下两种关闭方法: 1)临时关闭(不建议使用) 但是这种方式只对当次启动有效,重启机器后会失效。 2)永
阅读全文
摘要:1.准备工作 1)通过克隆或者其他方式获得可互相通信的多台节点(本文为3台虚拟机:hadoop101、hadoop102、hadoop103) 2)配置节点的静态IP、hostname、hosts,参考:CentOS7设置hostname、hosts(永久更改)、静态IP地址 3)输入命令:cd ~
阅读全文
摘要:1.卸载现有jdk 1)查询是否安装java软件: 2)如果安装的版本低于1.7,卸载该jdk: 2.拷贝jdk 用filezilla工具将 jdk-8u144-linux-x64.gz 导入到opt目录下面的software文件夹下面 在linux系统下的opt目录中查看软件包是否导入成功。 3.
阅读全文
摘要:1.概况 在CentOS7环境下,使用命令方式将MySQL数据从源端主机迁移到目标端主机上。 2.迁移全部数据库 1)源端备份: 2)拷贝到目标端: 3)目标端还原: 3.迁移指定数据库 1)源端备份: 2)拷贝到目标端: 3)目标端还原: 参考:https://blog.csdn.net/yabi
阅读全文
摘要:1.安装包准备(MySQL官网下载) (1)查看MySQL是否安装,如果存在就先卸载 (2)查看mariadb是否安装,如果存在就先卸载 (3)上传mysql-libs.zip到hadoop102的/opt/software目录,并解压文件到当前目录 (4)进入到mysql-libs文件夹下 2.安
阅读全文
摘要:针对新安装或者克隆后的虚拟机配置 1. 设置hostname 方法1: centos7 里面修改hostname的方式有所改变,修改/etc/hosts和/etc/sysconfig/network两个文件已经不能生效。使用的新命令是: [root@hadoop101 mort]# hostname
阅读全文
摘要:0.十大经典排序算法 冒泡排序(BubbleSort) 选择排序(SelectionSort) 插入排序(InsertionSort) 希尔排序(ShellSort) 归并排序(MergeSort) 快速排序(QuickSort) 堆排序(HeapSort) 计数排序(CountSort) 桶排序(
阅读全文
摘要:引用型Key重写equals和hashcode方法: 参考:https://snailclimb.top/JavaGuide/#/java/collection/HashMap
阅读全文
摘要:1.简介 HashMap 根据键的 hashCode 值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap 最多只允许一条记录的key为 null,允许多条value的值为 null。 HashMap 非线程安全,即任一时刻可以有多个线程同时
阅读全文
摘要:参考:https://snailclimb.top/JavaGuide/#/java/collection/LinkedList
阅读全文
摘要:1.简介 LinkedList 是用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。另外,他还提供了 List 接口中没有定义的方法,专门用于操作表头和表尾元素,可以当作堆栈、队列和双向队列使用。 LinkedList是实现了List接口和Deque接口的双端链表。 Lin
阅读全文
摘要:三种遍历方式 通过迭代器Iterator遍历 通过get(索引值)遍历 for循环遍历 ArrayList使用Demo 【注意】 java 中的length 属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了 length 这个属性. java 中的length()方法是针对字
阅读全文
摘要:1.简介 ArrayList 是最常用的 List 实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔, 当数组大小不满足时需要增加存储能力,就要将已经有数组的数据复制到新的存储空间中。 当从 ArrayList 的中间位置插入或者删除元素时,需要对数组进
阅读全文
摘要:题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 思路一 迭代遍历链表,利用HashSet将每个结点添加到哈希表中,如果添加失败(重复遍历了这个结点即遇到环),输出该结点为环入口 实现 运行时间:17ms 占用内存:9608k 思路二 使用双指针,一个指针 fas
阅读全文
摘要:题目描述: 输入两个链表,找出它们的第一个公共结点。 思路一: 设 A 的长度为 a + c,B 的长度为 b + c,其中 c 为尾部公共部分长度,可知 a + c + b = b + c + a。 当访问链表 A 的指针访问到链表尾部时,令它从链表 B 的头部重新开始访问链表 B;同样地,当访问
阅读全文
摘要:题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 注意要求: 1. 排序的链表:说明如果有重复的结点他们是连续存在的 2. 重复的结点不保留 思路一 使用递归法进行删
阅读全文
摘要:题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路 第一步,在每个节点的后面插入复制的节点。 第二步,对复制节点的 ra
阅读全文
摘要:题目描述 输入一个链表,输出该链表中倒数第k个结点。 注意: 该题目不可以用先反转链表再输出第k个结点的方式,因为反转链表会改变该结点的next指向 思路一 使用栈Stack倒序存储,顺序pop第k个结点 实现 思路二 设链表的长度为 N,寻找第n-k个节点即为第k个结点 设置两个指针 P1 和 P
阅读全文
摘要:题目描述 输入一个链表,反转链表后,输出新链表的表头。 思路一 使用头插法迭代进行反转 实现 思路二 递归 实现 思路参考:https://www.nowcoder.com/discuss/198840
阅读全文
摘要:题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 解题思路 思路一:使用头插法 使用头插法可以得到一个逆序的链表。遍历链表,每次将所遍历节点插入到链表的头部。 头结点和第一个节点的区别: 头结点是在头插法中使用的一个额外节点,这个节点不存储值; 第一个节点就是链表的第一个真
阅读全文