自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 Hadoop分布式HA安装部署

集群规划ip 基本的软件 运行的进程test01 jdk、zk、hadoop NameNode、zkfc、zk、journalNodetest02 jdk、zk、hadoop NameNode、zkfc、zk、journalNode、datanode、ResourceManager、NodeManagertest03 jdk、zk、hadoop zk、journalNode、datanode、ResourceManager、NodeMan

2020-08-20 15:17:44 293

原创 Java线程本地存储ThreadLocal

1.ThreadLocal是Java中所提供的线程本地存储机制,可以将数据缓存在某个线程内部,该线程可以在任意时刻、任意方法中获取缓存的数据2.ThreadLocal底层是通过ThreadLocalMap来实现的,每个Thread对象中存在一个ThreadLocalMap,Map的key为ThreadLocal对象,Map的value为需要缓存的值3.如果在线程池中使用ThreadLocal可能会造成内存泄漏,因为ThreadLocal对象使用完之后,应该要吧设置的key、value,也就是Entry对

2022-02-21 15:17:12 1368

原创 HashMap的put方法

Java 1.7中,HashMap底层是由数组和链表实现的,而1.8中是由数组、链表和红黑树实现的。put方法的大体流程1.根据key通过哈希算法和与运算得出数组下标2.如果数组下标位置元素为空,则将key和value封装为Entry对象(JDK1.7中是Entry对象,1.8中是Node对象)并放入该位置3.如果数组下标位置元素不为空:a.如果是JDK1.7,则先判断是否需要扩容,(扩容),生成Entry对象,并使用头插法添加到当前位置的链表中b.如果是JDK1.8,则先判断当前位置上的Nod

2022-02-21 13:03:35 598

原创 ArrayList和LinkedList的区别

1.底层数据结构不同,ArrayList底层基于数组实现的,LinkedList底层基于链表实现的2.由于底层数据结构不同,他们的适用场景也不同,ArrayList更适合随机查找,LinkedList更适合删除和添加3.ArrayList和LinkedList都实现了List接口,但是LinkedList还额外实现了Deque接口,所以LinkedList还可以当双端队列来使用。ArrayList get(int index)方法比LinkedList对应的方法要快,后者需要遍历去查找。Linked

2022-02-21 10:30:26 520

原创 21.python装饰器(decorator)

在 python 程序中,装饰器就是一种闭包,它可以使闭包的访问方式更简单。本质上,装饰器(decorator)就是一个返回函数的高阶函数。所以,要定义一个 能打印日志的装饰器(decorator)。 在 Python 中使用装饰器,需要使用一个特殊的符号“@”来实现。在定义装饰器函数或类时,使用“@装饰器名称”的形式将符号“@”放在函数或类的定义行之前。装饰器实现添加日志功能import timedef writeLog(func): try: f=open('log.txt

2021-10-16 11:27:50 137

原创 20.python闭包

闭包根据字面意思,可以形 象地把闭包理解为一个封闭的包裹,这个包裹就是一个函数。在 Python 语言中,闭包意味着要有嵌套定义,内部函数使用外部函数中定义的变量,外部函数返回内部函数名。 如果调用一个函数 A,这个函数 A 返回一个函数 B(其中函数 B 是函数 A 的内部函数),这个返回的函数 B 就叫作闭包。闭包的定义求两点之间的距离(传统方式实现)求两点之间的距离(闭包方式实现)点(1,1)距离原点(0,0)的距离可以直接写成getDisOut(0,0)(1,1)...

2021-10-16 10:50:11 109

原创 19.python匿名函数

在传入函数时,有些时候,不需要显式地定义函数, 直接传入匿名函数更方便。 在 Python 中,对匿名函数提供了支持。计算 f(x)=x^2 时,除了定义一个 f(x)的函数外, 还可以直接传入匿名函数。使用 lambda 可以声明一个匿名函数。 lambda 表达式就是一个简单的函数。使用 lambda 声明的函数可以返回一个值,在调用函数时,直接使用 lambda 表达式的返回值。使用lambda 声明函数的语法格式如下。lambda arg1,arg2,arg3... : <表达式>

2021-10-16 09:33:48 275

原创 18.python高阶函数 map、reduce、filter、sorted

所谓递归,就是在函数内部调用自身。在执行过程中,Python 解析器会利用栈 处理递归函数返回的数据。 所以递归函数的一个必要条件是要有终止条件,否则栈就会溢出。通过递归可以实现很多经典的算法,如阶乘、斐波那切数列等。使用递归函数计算阶乘(factorial)...

2021-10-16 08:27:30 161 1

原创 17.python函数参数、递归

定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了, 函数内部的复杂逻辑被封装起来,调用者无需了解。 Python 的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。1 位置参数函数调用时,实参默认按位置顺序传递,需要个数和形 参匹配。按位置传递的参数,称为:“位置参数”。

2021-10-15 16:24:09 163

原创 16.python变量作用域

一个程序的所有的变量并不是在哪个位置都可 以访问的。访问权限决定于这个变量是在哪里被赋值的。变量的作用域决定了哪一部分程序可以访问那个特定的变量的名称。Python 语言中将不同作用范围的变量分为: 局部变量、全局变量。1 局部变量局部变量是指变量声明在函数内部(包含形式参数),只有在特定的过程和函数中才可以访问的变量。局部变量在函数内部访问局部变量在函数外部不能访问2 全局变量由上面的示例可以看出局部变量不能被另一个函数访问,如果强制访问的话将会报错, 为了解决这个变量共享的问题,在这里引

2021-10-15 12:09:22 130

原创 15.python函数

函数可重复使用,用来 实现相关联功能的代码段。函数能提高程序的模块性、代码的重复利用率。Python 函数分 为两类,即内建函数、自定义函数。例如,可以使用 print 函数输出计算结果,使用 input 函数接收用户的输入。除了系统内置的函数之外,程序员还可以根据需要编写自己的函数。1 函数的定义函数的定义非常简单,使用关键字 def 定义。函数在使用前必须定义,Python 函数的定义格式如下:def 函数名 ([参数 1,参数 2…]) : 代码[return 表达式] 其中函数名可以是

2021-10-15 11:59:09 1262

原创 14.python集合(set)

集合是无序可变,元素不能重复。实际上,集合底 层是字典实现,集合的所有元素都是字典中的“键对象”,因此是不能重复的且唯一的。1 集合创建使用{}创建集合对象使用 set(),将列表、元组等可迭代对象转成集合如果原来数据存在重 复数据,则只保留一个。2 集合添加使用 add()实现集合添加元素3 集合删除使用 remove()实现集合删除指定元素、clear()清空整个集合4 集合其他操作像数学中概念一样,Python 对集合也提供了并集、交集、差集等运算。集合的并集、交集、差集运

2021-10-15 11:24:11 60

原创 13.python字典(dict)

Python 内置了字典(dict)的支持,dict 全称 dictionary,在其他语言中也称为 map,使用键-值(key-value)存储,具有极快的查找速度。字典是另一种可变容器模型,且可存储任 意类型对象。字典的每个键值对(key=>value)用冒号(:)分割,每对之间用逗号(,)分割,整个字典包括在花括号({})中 ,语法格式如下:d = {key1 : value1, key2 : value2 } 列表中通过“下标数字”找到对应的对象。字典中通过“键对象”找到对应的“值对象”

2021-10-15 08:55:25 284

原创 12.python元组(tuple)

切片操作是从列表 A 中 获取一个子列表 B。列表 A 可以称为父列表。从 A 中获取 B,需要指定 B 在 A 中的开始索引和结束索引,因此切片操作需要指定两个索引。对于列表的切片操作和字符串类似。切片是 Python 序列及其重要的操作,适用于列表、元组、字符串等等。切片的语法格式如下: 列表[起始偏移量 start : 终止偏移量 end [:步长 step]]操作和说明示例结果[:] 提取整个列表[10,20,30][:][10,20,30][start:]从

2021-10-15 07:51:19 205

原创 11.python列表基本操作

列表中有一些自己的操 作例如列表增加、列表修改、 列表删除。当列表增加和删 除元素时,列表会自动进行 内存管理,大大减少了程序 员的负担。但这个特点涉及列表元素的大量移动,效率较低。除非必要,一般只在列表的尾 部添加元素或删除元素,这会大大提高列表的操作效率。1 列表的添加append()方法在列表的末尾追加一个新对象,使用 append()方法。+运算符操作+运算符操作,并不是真正的尾部添加元素,而是创建新的列表对象;将原列表的元素和新列表的元素依次复制到新的列表对象中。这样会涉及大量的复制操

2021-10-14 19:08:44 817

原创 10.python列表创建

1 基本语法[]创建列表用于存储任意数目、任意类型的数据集合。 在Python 中,用方括号([]) 来表示列表,并用逗号来分 隔其中的元素。语法格式如下: list=[元素 1,元素 2,…]2 list()创建使用 list()可以将任何可迭代的数据转化成列表。3 range()创建整数列表range()可以帮助我们非常方便的创建整数列表,这在开发中及其有用。语法格式如下: range([start,] end [,step]) 其中 start 参数:可选,表示起始数字,默认是

2021-10-14 17:48:24 1083

原创 9.python数据类型及运算符

数据类型基本数据类型NumberInteger(整型)Long integer(长整型)Double-precision floating(双精度浮点型)Complex number(复数型)BooleanTrue 或 False(布尔型)String零个或多个字符组成的有限序列(字符串型)Sequence 类型簇高级数据类型Tuple内部元素不可修改(元组型)Sequence 类型簇List但

2021-10-14 17:11:30 144

原创 8.python循环语句

1 while 循环while 循环的语法格式如下:while 条件表达式: 循环体语句[else: 语句/语句块 ]2 for 循环for 循环用于遍历一个集合,每次循环,会从集合中取 得一个元素,并执行一次代码块,直到集合中所有的元素都 获取,for 循环才结束。for 循环的语法格式如下:for 变量 in 可迭代对象: 循环体语句 Python 可以遍历的对象有序列(字符串、列表、元组)、字典、迭代器对象(iterator)、生成器函数文件对象。for循环通

2021-10-14 09:49:50 421

原创 7.python条件判断语句 if else

1 单分支if 语句单分支结构的语法 形式如下:if 条件表达式: 语句/语句块其中:条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等;语句/语句块:可 以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致。2 双分支选择结构双分支结构的语法格式 如下:if 条件表达式 : 语句1/语句块1 else: 语句2/语句块23 多分支选择结构多分支选择结构的语法 格式如下: if 条件表达式 1 : 语句 1/语句块 1 elif 条件表达式 2:

2021-10-14 08:53:38 277

原创 6.Python变量和简单的赋值

一. 对象和引用Python 中,一切皆对象。每个对象由:标识(identity)、类型(type)、value(值)组 成。对象的本质就是:一个内存块,拥有特定的值,支持特定类型的相关操作。标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数 id(obj)可返回对象 obj 的标识。类型用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执 行的操作。可以使用 type(obj)获得对象的所属类型。值表示对象所存储的数据的信息。使用 print(obj)可以直接

2021-10-14 08:16:43 378

原创 5.python特性

Python是强类型的动态脚本语言强类型:不允许不同类型相加。 如:整型+字符串 会报类型错误。动态:不使用显示数据类型声明,且确定一个变量的类型是在给它赋值的时候。脚本语音:一般是解释性语言,运行代码只需要一个解释器,不需要编译器。...

2021-10-13 20:12:49 59

原创 4.PyCharm开发工具安装和创建python项目

1.下载(Community版即可)https://www.jetbrains.com/pycharm/2.安装双击一路next 安装完成3.创建第一个python项目最后点击创建即可

2021-10-13 18:27:41 119

原创 3.Anaconda安装python环境

1.下载Anaconda官网:https://www.anaconda.com/products/individual清华开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/2.安装3.环境变量配置控制面板->系统->高级系统设置->环境变量4.检测(1).配置 C:\ProgramData\Anaconda3 可运行 C:\ProgramData\Anaconda3\python.e

2021-10-13 18:08:01 301

原创 2.人工智能任务分类

人工智能的流程1 数据 Data --> 2 算法 Algorithm --> 3 模型 model 4 预测 Predict人工智能的本质将历史数据代入算法(公式),得出相应的模型(参数),并对未来数据进行预测(自变量代入公式得到因变量)==>怎么才能使预测更准确?增大历史数据量和提高数据质量或优化算法You change nothing,nothing will change!任务分类1.回归(有监督机器学习)本质:拟合历史已有的数据,根据拟合出来的函数走势来预测未来

2021-10-13 12:13:41 1279

原创 1.人工智能的时代

1.时代的发展Web开发后台JAVA等前端HTML等移动端AndroidIOS高并发大数据存储数仓HDFShbasehivej计算分析mapreducesparkflink云计算虚拟化dockerKubernetes(k8s)人工智能机器学习 Machine Learning数据挖掘scikit

2021-10-13 11:00:55 59

原创 kafka shell 命令

1.查看所有topickafka-topics.sh --list --zookeeper test01:2181,test02:2181,test03:21812.看看指定topic的消息kafka-console-consumer.sh --bootstrap-server test01:9092,test02:9092,test03:9092 --topic invoice_info --from-beginning

2021-03-05 10:32:06 150

原创 hadoop stop-all.sh 报no namenode to stop等问题

1.问题描述长时间启动hadoop后,使用stop-all.sh停止时报 no namenode to stop,但jps显示namenode 确实存在2.造成原因hadoop默认配置是将namenode,datanode等相关进程的pid存放在/tmp目录下,但linux会定期清理/tmp目录,所以pid信息丢失,导致出现该问题3.解决方法修改hadoop/etc/hadoop/hadoop-env.sh文件中的HADOOP_PID_DIR# export HADOOP_PID_DIR=${H

2020-09-24 10:42:15 554

原创 Contos7开放和查看端口

1.开放8088端口firewall-cmd --zone=public --add-port=8088/tcp --permanent2.关闭8088端口firewall-cmd --zone=public --remove-port=8088/tcp --permanent3.配置立即生效firewall-cmd --reload4.查看防火墙所有开放的端口firewall-cmd --zone=public --list-ports5.关闭防火墙systemctl stop

2020-09-17 11:36:42 217

原创 kafka集群安装

1.下载安装包下载2.解压tar -zxvf /opt/soft/kafka_2.11-2.1.0.tgz -C /opt/3.重命名mv kafka_2.11-2.1.0/ kafka4.环境变量配置vim /etc/profile.d/hadoop-eco.sh加入以下内容:export KAFKA_HOME=/opt/kafkaexport PATH=$PATH:$KAFKA_HOME/bin使环境变量生效source /etc/profile.d/hadoop-ec

2020-09-10 12:00:12 59

原创 Sqoop安装

1.下载安装包下载2.解压tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/3.重命名mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop4环境变量配置vim /etc/profile.d/hadoop-eco.sh加入以下内容:export SQOOP_HOME=/opt/sqoopexport PATH=$PATH:$SQOOP_HOME/bin使环境变量生效sou

2020-09-10 10:54:34 79

原创 HBase分布式安装部署

集群规划安装目录:/opt目录下安装版本:hbase-1.1.5.tar.gz下载地址:http://archive.apache.org/dist/hbase安装配置0.Hadoop集群Hadoop分布式HA安装部署1.解压tar -zxvf soft/hbase-1.1.5-bin.tar.gz2.重命名mv hbase-1.1.5/ hbase3.配置环境变量vim /etc/profile.d/hadoop-eco.sh添加以下内容export HBASE_HOME

2020-08-27 17:01:38 154

原创 ES基本CURL操作

创建索引库curl -XPUT test01:9200/bigdata创建索引curl -XPOST test01:9200/bigdata/product/1 -d '{"name":"hadoop", "author":"Doug Couting", "lastest_version":"3.0.0"}' 查询索引信息获取当前索引库的配置信息curl -XGET test01:9200/bigdata?pretty查询索引库下面的所有索引信息curl -XGET test01:92

2020-08-26 15:00:26 700

原创 ES安装

注意在EasticSearch 2.x后面的版本只能安装在linux的普通用户下面1.创建 es 用户useradd es2.修改 es 用户密码passwd es3.切换到 es 用户su - es4.解压将elasticsearch-2.3.0.zip上传至 /opt/soft/ 下unzip soft/elasticsearch-2.3.0.zip5.重命名mv elasticsearch-2.3.0 elasticsearch6.配置vim /opt/elas

2020-08-26 11:54:39 107

原创 Linux(CentOS7)安装MySQL5.7

1.现在centos上默认是没有yum源的,需要自己先配置yum源下载yum源wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm安装yum源rpm -Uvh mysql57-community-release-el7-8.noarch.rpm查看yum repolist all | grep mysql2.在线安装yum install -y mysql-community-server3

2020-08-21 17:38:11 93

原创 zookeeper集群安装

将zookeeper-3.4.6.tar.gz上传到 /opt/soft/解压:tar -zxvf /opt/soft/zookeeper-3.4.6.tar.gz -C /opt/重命名:mv /opt/zookeeper-3.4.6 /opt/zookeeper添加到环境变量中vim /etc/profile.d/hadoop-eco.sh,添加以下内容:export ZOOKEEPER_HOME=/opt/zookeeperexport PATH=PATH:PATH:PATH:ZOOK

2020-08-20 11:26:46 174

原创 Linux常用基础命令

一、防火墙 1、关闭防火墙 ]# service iptables stop 2、从开机启动项中关闭防火墙 ]# chkconfig iptables off/on-->打开 3、查看防火墙状态 ]# service iptables status 4、查看防火墙的开机状态 ]# chkconfig --list | grep iptables二、远程远程登录ssh root@127.0.0.1远程复制文件scp / root@test02:/...

2020-08-19 11:43:41 109

原创 Linux安装jdk

Linux安装jdkjdk安装配置环境变量jdk安装cd /opt/mkdir softtar -zxvf soft/jdk-8u112-linux-x64.tar.gz -C /opt/mv jdk1.8.0_112/ jdk配置环境变量vim /etc/profile.d/hadoop-eco.shexport JAVA_HOME=/opt/jdkexport PATH=PATH:PATH:PATH:JAVA_HOME/binsource /etc/profile.d/hadoop-

2020-08-19 10:52:10 115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除