Hadoop安装与配置

安装方式分为:分布式和伪分布式集群。单机操作时,使用伪分布式集群(如下操作)。

环境配置

1、 永久设置主机名

1
$ vim /etc/hostname

添加或修改host文件:

1
2
3
4
#127.0.0.1 VM_0_8_centos VM_0_8_centos
127.0.0.1 gqsu gqsu
#::1 VM_0_8_centos VM_0_8_centos
::1 127.0.0.1 gqsu gqsu

重启reboot -f

设置密钥

1
2
3
$ cd ~/.ssh
$ ssh-keygen -t rsa
$ ssh-copy-id $hostname

JDK安装

去官网下载JDK安装包 或者 wget安装,但须带上请求头:wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie"

1、进入/data/soft目录下(该目录即对应的环境安装目录)

2、解压压缩文件:

1
2
$ tar -zxvf jdk-8u161-linux-x64.tar.gz
$ mv jdk1.8.0_151 jdk1.8

3、编辑配置文件,配置环境变量:

1
$ vim /etc/profile

在profile文件的末尾加入环境变量:

1
2
export JAVA_HOME=/data/soft/jdk1.8
export PATH=.:$JAVA_HOME/bin:$PATH

阅读更多
Hadoop基础知识点梳理

简介

Hadoop框架遵循分布式计算模型,其将对大数据集的计算分配到一组节点上,每个节点针对数据集的一部分进行计算。

分布式计算的核心需求:

  • (1)扩展性:机器数量的增长应该带来计算和存储能力的线性增长。
  • (2)容错性:如果分布式集群中的一个节点失败,主要的计算进程本身不能失败或受到不利影响。
  • (3)可恢复性:如果作业或其一部分失败,不应该有数据丢失。

Hadoop针对分布式计算需求的给出的解决方案:

  • (1)数据存储在所有或大部分集群节点上,将计算流向数据,而非数据流向计算,这样使得Hadoop能够有效处理海量数据;
  • (2)开发人员专注于数据和算法,分布式的底层细节由Hadoop负责。
  • (3)作业容错性高,当集群中的一个或多个节点失败以及作业自身的组件(被称为任务)失败时,并不影响作业本身的完成。
阅读更多
shell基础知识
Shell脚本的第一行1#!/bin/bash 意思是指使用 /bin/ 路径下的bash程序来执行这个脚本。 去重并排序1sort demo.txt|uniq 实现文件去重并排序 注意:先排序再去重,否则无法去掉相间隔的重复行。uniq 是删除相邻的重复行,故要先排序。 输出a+b的结果1ec ...
阅读更多
python入门知识

入门知识

安装

Python 官网:https://www.python.org/

语法

python中使用缩进来表示代码块,不需要使用大括号 {} 。
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

Python 中语句很长时,可以使用反斜杠()来实现多行语句。

python中数字有四种类型:整数(int)、布尔型(boolean)、浮点数(float)和复数(complex)。

字符串

  • python中单引号和双引号使用完全相同。
  • 使用三引号('''""")可以指定一个多行字符串。
  • 转义符'\'
  • 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。。 如 r”this is a line with \n” 则\n会显示,并不是换行。
  • 按字面意义级联字符串,如”this “ “is “ “string”会被自动转换为this is string。
  • 字符串可以用+运算符连接在一起,用 *运算符重复。
  • Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
  • Python中的字符串不能改变。
  • Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
    字符串的截取的语法格式如下:变量[头下标:尾下标:步长]
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/usr/bin/python3
    str = 'Runoob'

    print (str) # 输出字符串
    print (str[0:-1]) # 输出第一个到倒数第二个的所有字符
    print (str[0]) # 输出字符串第一个字符
    print (str[2:5]) # 输出从第三个开始到第五个的字符
    print (str[2:]) # 输出从第三个开始的后的所有字符
    print (str * 2) # 输出字符串两次,也可以写成 print (2 * str)
    print (str + "TEST") # 连接字符串
阅读更多
study--java需要知道的事

实现幂等过滤过多的重复请求

在实际的开发项目中,一个对外暴露的接口往往会面临,瞬间大量的重复的请求提交,如果想过滤掉重复请求造成对业务的伤害,那就需要实现幂等

定义

任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理。

保证其幂等性的方式

1、数据库建立唯一性索引,可以保证最终插入数据库的只有一条数据
2、token机制,每次接口请求前先获取一个token,然后再下次请求的时候在请求的header体中加上这个token,后台进行验证,如果验证通过删除token,下次请求再次判断token
3、悲观锁或者乐观锁,悲观锁可以保证每次for update的时候其他sql无法update数据(在数据库引擎是innodb的时候,select的条件必须是唯一索引,防止锁全表)
4、先查询后判断,首先通过查询数据库是否存在数据,如果存在证明已经请求过了,直接拒绝该请求,如果没有存在,就证明是第一次进来,直接放行。

阅读更多
一些测试和运维软件的使用

Jmeter

安装

1、下载地址:https://link.juejin.im/?target=http%3A%2F%2Fjmeter.apache.org%2Fdownload_jmeter.cgi

2、修改 /bin 下的 jmeter.properties 文件, 修改 language为:zh_CN。然后在运行 jemter.bat

使用

1、添加 -> 线程(用户) -> 线程组
2、线程组 -> 添加 -> 测试元件 -> http请求默认值
3、线程组 -> 添加 -> 测试元件 -> HTTP信息头管理器
4、线程组 -> 添加 -> 取样器 -> HTTP请求
5、线程组 -> 添加 -> 监听器 -> XXXXXXXXX

Arthas–开源java诊断工具

项目地址:https://github.com/alibaba/arthas

安装: 执行 ./install.sh
启动: 执行 ./as.sh pid

阅读更多
Dubbo实战

基本概念

Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,以及SOA服务治理方案。

(1)主要核心部件:
Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制.
RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能.(Hessian协议)
Registry: 服务目录框架用于服务的注册和服务事件发布和订阅

1.SOA(Service Oriented Architecture)“面向服务的架构”:他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务通常以独立的形式存在与操作系统进程中。各个服务之间 通过网络调用。如:dubbo

2.微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。如:Spring Cloud

阅读更多
linux安装centos 8教程
服务器系统:CentOs 8 准备工作 首先,去官方下载最新版本的ISO镜像文件:官网 然后,去UltraSO下载U盘启动工作,制作U盘启动盘。 安装Centos 在部分电脑上启动,会出现“dracut-initqueue timeout”的问题,主要是因为系统找不到U盘启动盘造成的。部分可 ...
阅读更多
weChat-微信公众号
受武汉新型冠状病毒的影响,闲来无事在家,写点东西。顺便研究下微信公众号和小程序的相关技术问题,为后期微信改版和App建设提供技术保障。 问题一正常分享状态显示:异常分享状态显示: 在微信公众号后台自定义菜单,但是出现分享异常的状态,虽然页面能够打开,但是显示的描述信息和图标都不正常。出现这种情况 ...
阅读更多
weChat-微信小程序
问题一 :云开发报错:Error: Cannot find module ‘wx-server-sdk’ at Function.因为在进行云函数开发的时候,首先就回引用 const cloud = require(‘wx-server-sdk’)。云环境肯定是有这个模块的,问题是我们的本地调试环境 ...
阅读更多