本文利用云服务器对大数据平台进行环境部署,包含:服务器使用、环境准备、Hadoop集群完全分布式安装、Zookeeper集群完全分布式安装、HBase完全分布式安装、Hive、Scala、Spark、Sqoop、Flume的安装。如有错误还望指出。
目录
一、服务器使用
二、环境准备
三、Hadoop3.1.1 集群环境安装
四、Zookeeper 集群安装部署
五、Hbase 完全分布式安装
六、Hive安装
七、Scala安装
八、Spark安装
九、Sqoop安装
十、flume安装
阿里云服务器,百度云服务器,腾讯云服务器。学生购买会有优惠,但只限一台机器。我用的学生优惠分别在三个平台各买了一台云主机来搭建大数据环境。
1、 阿里云(centos7.3)
47.101.62.158公
172.19.46.110私
2、百度云(centos7.3)
180.76.96.39 公
192.168.0.4私
3、腾讯云(centos7.3)
132.232.131.91 公
172.27.0.13 私
4、安全组ssh端口开放
使用服务器这里是关键。服务器如果在各网页界面去操作会效率很低,用Xshell或者putty可以远程连接服务器进行操作。这样就需要设置各服务器安全组打开ssh的22端口,然后进行远程连接。
OS:CentOS 7.0+
远程连接:Xshell
序号
主机
IP
主机名
用户名
密码
1
Baidu Cloud
180.76.96.39 公
192.168.0.4 私
Hadoop2
root
***
2
Alibaba Cloud
47.101.62.158 公
172.19.46.110 私
Hadoop1
root
***
3
Tencent Cloud
132.232.131.91 公
172.27.0.13 私
Hadoop3
root
***
Package:
Welcome to The Apache Software Foundation!(Apache官网)
Index of /apache
Hadoop集群安装(伪|全)
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz
JDK安装
Unauthorized Request
如果用wget命令下载会出问题:博客:https://blog.csdn.net/weixin_42039699/article/details/82936624
MySQL安装
https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz
https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gz
Pig安装
https://mirrors.tuna.tsinghua.edu.cn/apache/pig/pig-0.17.0/pig-0.17.0.tar.gz
Hive安装
https://mirrors.tuna.tsinghua.edu.cn/apache/hive/stable-2/apache-hive-2.3.3-bin.tar.gz
HBase安装
https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.2.7/hbase-1.2.7-bin.tar.gz
Zookeeper集群安装
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
Sqoop安装
Apache Sqoop - Apache Attic
Spark安装
https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz
Flume安装
https://mirrors.tuna.tsinghua.edu.cn/apache/flume/stable/apache-flume-1.8.0-bin.tar.gz
Storm安装
https://mirrors.tuna.tsinghua.edu.cn/apache/storm/apache-storm-1.2.2/apache-storm-1.2.2.tar.gz
设备:
实验设备包括 3 台服务器(CentOS7.0+)
实验所需安装包
步骤:
1.基础环境准备
1.1 集群规划
序号
主机
IP
主机名
用户名
密码
1
Baidu Cloud
180.76.96.39 公
192.168.0.4 私
Hadoop2
root
***
2
Alibaba Cloud
47.101.62.158 公
172.19.46.110 私
Hadoop1
root
***
3
Tencent Cloud
132.232.131.91 公
172.27.0.13 私
Hadoop3
root
***
1.2 系统准备
3台服务器(CentOS7.0+)
软件安装包存放于tgz目录下:
1.3 网络配置(虚拟机配置,云服务器跳过 )
为每个 Hadoop 主机配置相应的 IP 地址,每台的操作方法相同。IP 地址根据
实验环境进行配置,如果实验环境使用的是动态 IP 地址则可以跳过网络配置部分,进入下一步操作。
1.3.1 修改网络配置文件
1、首先,确保在 root 用户下进行操作。通过 vi 命令修改网络配置文件
[root@localhost ~]#
vi /etc/sysconfig/network-scripts/ifcfg-eth0
2、然后按 i 键进入编辑模式,我们需要将其中的 BOOTPROTO=dhcp 改为BOOTPROTO=static 意思是设置为静态 IP,将 ONBOOT=no 改为 ONBOOT=yes 意思是将网卡设置 为开机启用,同时在文字下方添加如下内容:
IPADDR= #静态 IP
GATEWAY= #默认网关
NETMASK= #子网掩码
DNS1= #DNS 配置
3、修改完成以后按 Esc 键退出编辑模式,按 Shift + : 输入 wq 进行保存并退出!修改好的配置截图。
1.3.2 重启网络服务
通过 service network restart 重启网络服务,使修改的配置生效
[root@localhost ~]# service network restart
1.3.3 查看配置是否修改成功
通过 ifconfig 命令来查看当前的 IP 地址信息
通过上面的操作以后分别将三台 hadoop 主机的配置改为 :
hadoop1 IP,hadoop2 IP,hadoop3 IP
1.4 关闭防火墙
三台 hadoop 主机都需要操作关闭防火墙
1、首先,输入 service iptables stop 命令停止防火墙的运行,再通过输入
chkconfig iptables off 命令关闭防火墙开机运行
2、执行命令如下:
[root@localhost ~]# service iptables stop
[root@localhost ~]# chkconfig iptables off
查看防火墙状态:
[root@localhost ~]# service iptables status
iptables: Firewall is not running.
注意:
CentOS 7.0+默认使用的是firewall作为防火墙
关闭并禁止firewall开机启动:
停止
systemctl stop firewalld.service
禁止开机启动
systemctl disable firewalld.service
启动/重启Firewalld
#systemctl start firewalld.service
#systemctl restart firewalld.service
开机启动/关闭开机启动
#systemctl enable firewalld.service
#systemctl disable firewalld.service
查看状态
#firewall-cmd --state
开放端口:云主机开放全部端口比较危险,容易被挖矿程序占CPU,建议需要什么端口打开什么。
firewall-cmd --permanent --zone=public --add-port=10-50010/tcp
firewall-cmd --permanent --zone=public --add-port=10-50010/udp
firewall-cmd --reloa
1.5 修改主机名称
修改主机名称目的是为了方便管理,将第一台 hadoop 主机的名称改为 hadoop1,
第二台改为 hadoop2,第三台改为 hadoop3。在三台 hadoop 主机上按下面的方法
修改每台的主机名称
1、首先,确保在 root 用户下进行操作。[root@localhost ~]# vi /etc/sysconfig/network
2、然后按 i 键进入编辑模式,将 HOSTNAME=localhost 改为 HOSTNAME=hadoop1
也就是将该机器名称改为 hadoop1。修改完成后需要输入 reboot 命令重启生效
重启命令:
[root@localhost ~]# reboot
查看当前主机名命令:
[root@localhost ~]# hostname
1.6 修改 hosts 文件
每台 hadoop 主机都加入相同的 hosts 主机记录
1、打开 hosts 文件
[root@hadoop1 ~]# vim /etc/hosts
2、在第三行添加下面的参数
IP hadoop1
IP hadoop2
IP hadoop3
云服务器搭建Hadoop完全分布式hosts配置关键:
在Master服务器上,要将自己的ip设置成内网ip,而将另一台Slave服务器的ip设置成外网ip
同样的在Slave服务器上,要将自己的ip设置成内网ip,而降另一台Master服务器的ip设置成外网ip
1.7时钟同步命令
ntpdate cn.pool.ntp.org
1.8 配置 SSH 免密码登录
hadoop 在执行配置过程中,master 需要对 salves 进行操作,所以我们需要在 hadoop1 节点配置 ssh 免密码登录 hadoop2、hadoop3.在 hadoop1 主机上执行以下的命令:
1、进入 root 管理员目录,执行 ssh-keygen -t rsa 一直回车生成密钥
[root@hadoop1 ~]# cd ~
[root@hadoop1 ~]# ssh-keygen -t rsa
2、进入 ~/.ssh 目录,将生成好的密钥同步到 hadoop2 和 hadoop3 中,在执行
ssh-copy-id 命令后需要输入对应 hadoop 主机的密码
[root@hadoop1 ~]# cd ~/.ssh
[root@hadoop1 .ssh]# ssh-copy-id hadoop2
[root@hadoop1 .ssh]# ssh-copy-id hadoop3
3、执行
[root@hadoop1 .ssh]# cat ~/.ssh/id_rsa.pub >~/.ssh/authorized_keys
4、验证 SSH 免密码登录是否成功
在 hadoop1 主机上可以不用输入密码即可远程访问 hadoop2 和 hadoop3,验证可以连接以后记得使用 exit 命令退出 ssh 连接
验证免密码登录 hadoop2:
[root@hadoop1 .ssh]# ssh hadoop2
退出 hadoop2 连接:
[root@hadoop2 ~]# exit
验证免密码登录 hadoop3:
[root@hadoop1 .ssh]# ssh hadoop3
[root@hadoop2 ~]# exit
退出 hadoop3 连接:
[root@hadoop3 ~]# exit
免密方式2:
hadoop1上执行:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh-add ~/.ssh/id_dsa
scp ~/.ssh/authorized_keys hadoop2
scp ~/.ssh/authorized_keys hadoop3
ssh-copy-id hadoop2
ssh-copy-id hadoop3
ssh hadoop2
ssh hadoop3
遇到问题:
重装openssh
1. 卸载
先查看openssh的相关包rpm -qa openssh* 然后依次卸载 安装 yum install -y
yum install -y openssh-7.4p1-16.el7.x86_64;yum install -y openssh-clients-7.4p1-16.el7.x86_64;yum install -y openssh-server-7.4p1-16.el7.x86_64
然后重新启动ssh服务
systemctl start sshd.service
通过ssh-keygen -t rsa和ssh-copy-id -i 操作后,免密登录依然需要输入密码问题解决:
目录文件的权限 .ssh父目录的权限是755,.ssh目录权限是700,authorized_keys文件 600
还是有问题。
目录的属主 如果上面方法还没有解决问题,那可能是.ssh父目录的属主存在问题。
这里发现.ssh父目录(..)的属主存在问题。
解决方法:
chown root:root /root
1.9 安装 JDK 环境
用wget命令直接下载的JDK,这是问题的根源。 去Oracle官网下载过jdk , 下载之前需要同意Oracle的安装协议,不然不能下载,但是用wget的方式,默认是不同意,虽然能下载下来,但是下载下来的文件会有问题,所以在Linux上解压一直失败。去官网下载好,然后传到服务器上,再解压就没有问题了。
使用Xshell本地传送JDK到服务器上:
三台 hadoop 主机都需要按照下面步骤安装 JDK 环境
注:安装所需要的软件都在tgz目录下
1、首先执行 java -version 查看 jdk 是否已经安装,如果看到以下内容则表示
已经安装了则可以跳过这一步骤,进入环境部署环节,另外如果版本低于 java version "1.8.0_181"则需要升级到对应版本
[root@hadoop1]# java -version
2、进入软件包位置,将 jdk 安装包复制到/usr/lib/
[root@hadoop1 ~]# cd ~/tgz/
[root@hadoop1 tgz]# cp jdk-8u181-linux-x64.tar.gz /usr/lib
3、进入/usr/lib 目录并解压 jdk-8u181-linux-x64.tar.gz
[root@hadoop1 tgz]# cd /usr/lib
[root@hadoop1 lib]# tar -zxvf jdk-8u181-linux-x64.tar.gz
4、修改环境变量
[root@hadoop1 lib]# vim /etc/profile
添加以下内容:
export JAVA_HOME=/usr/lib/jdk1.8
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
5、更新环境变量
[root@hadoop1 lib]# source /etc/profile
6、执行 java -version 查看是否安装或者更新成功
[root@hadoop1]# java -version
2.hadoop集群环境部署
注:安装所需要的软件都在tgz目录下
2.1 安装 hadoop3.1.1
我们通过在hadoop1进行安装hadoop,然后配置相应的配置文件,最后将hadooop所有文件同步到其它 hadooop 节点(hadoop2、hadoop3)。Hadoop 路径配置为/opt/hadoop-3.1.1
在 hadoop1 执行以下操作:
1、 首先进入软件包目录
[root@localhost ~]# cd /opt/tgz/
2、通过 cp 命令将 hadoop 安装包(hadoop-3.1.1.tar.gz)复制到/opt 目录下
[root@localhost tgz]# cp hadoop-3.1.1.tar.gz /opt/
3、 进入/opt 目录,并解压 hadoop-3.1.1.tar.gz 压缩包
[root@localhost tgz]# cd /opt/
[root@localhost opt]# tar -zxvf hadoop-3.1.1.tar.gz
2.2 配置 hadoop 配置文件
2.2.1 修改 core-site.xml 配置文件
通过 vi 命令修改 core-site.xml 配置文件,在
中间添加以下命令,fs.defaultFS 是用来定义 HDFS 的默认名
称节点路径。就是我们将来访问 HDFS 文件时,如果没有指定路径,就会联系这
里定义的路径的主机,去联系这台主机去寻找其路径。
1、打开 core-site.xml 配置文件命令:
[root@hadoop1]# vim /opt/hadoop-3.1.1/etc/hadoop/core-site.xml
2、添加内容:
fs.defaultFS
hdfs://hadoop1:9000
hadoop.tmp.dir
/opt/hadoop-3.1.1/tmp
2.2.2 修改 hdfs-site.xml 配置文件
通过 vi 命令修改 hdfs-site.xml 配置文件,在
中间添加第 2 步的内容
1、打开 hdfs-site.xml 配置文件:
[root@hadoop1]# vim /opt/hadoop-3.1.1/etc/hadoop/hdfs-site.xml
2、添加内容:
dfs.replication
3
dfs.namenode.name.dir
file:///opt/hadoop-3.1.1/hdfs/name
dfs.datanode.data.dir
file:///opt/hadoop-3.1.1/hdfs/data
dfs.namenode.secondary.http-address
hadoop2:9001
2.2.3 修改 workers 配置文件
通过 vi 命令修改 workers 配置文件,将第一行的localhost改成hadoop1,并在第二行中加入 hadoop2 和 hadoop3
1、打开 workers 配置文件
[root@hadoop1]# vim /opt/hadoop-3.1.0/etc/hadoop/workers
2、添加内容
hadoop1
hadoop2
hadoop3
2.2.4 修改 mapred-site.xml 配置文件
通过 vi 命令修改 mapred-site.xml 配置文件,在
中间添加第 2 步的内容
1、打开 mapred-site.xml 配置文件命令:
[root@hadoop1]# vim /opt/hadoop-3.1.0/etc/hadoop/mapred-site.xml
2、添加内容
mapreduce.framework.name
yarn
mapreduce.application.classpath
/opt/hadoop-3.1.1/etc/hadoop,
/opt/hadoop-3.1.1/share/hadoop/common/*,
/opt/hadoop-3.1.1/share/hadoop/common/lib/*,
/opt/hadoop-3.1.1/share/hadoop/hdfs/*,
/opt/hadoop-3.1.1/share/hadoop/hdfs/lib/*,
/opt/hadoop-3.1.1/share/hadoop/mapreduce/*,
/opt/hadoop-3.1.1/share/hadoop/mapreduce/lib/*,
/opt/hadoop-3.1.1/share/hadoop/yarn/*,
/opt/hadoop-3.1.1/share/hadoop/yarn/lib/*
2.2.5 修改 yarn-site.xml 配置文件
通过 vi 命令修改 yarn-site.xml 配置文件,在
中间添加第 2 步的内容
1、打开 yarn-site.xml 配置文件命令:
[root@hadoop1]# vim /opt/hadoop-3.1.1/etc/hadoop/yarn-site.xml
2、添加内容
yarn.resourcemanager.hostname
hadoop1
yarn.nodemanager.aux-services
mapreduce_shuffle
取消yarn运行模式的运行内存检测,这样就算内存达不到要求也不会kill掉任务
yarn.nodemanager.pmem-check-enabled
false
yarn.nodemanager.vmem-check-enabled
false
2.2.6 修改 hadoop-env.sh 配置文件
通过 vi 命令修改 hadoop-env.sh 配置文件,在第二行中添加第 2 步的内容
1、打开 hadoop-env.sh 配置文件命令:
[root@hadoop1]# vim /opt/hadoop-3.1.1/etc/hadoop/hadoop-env.sh
2、添加内容
export JAVA_HOME=/usr/lib/jdk1.8
4、更新配置文件
[root@hadoop1 ~]# source /opt/hadoop-3.1.0/etc/hadoop/hadoop-env.sh
2.2.7 修改 start-dfs.sh 和 stop-dfs.sh 配置文件
1、打开 start-dfs.sh 配置文件,在第二行中添加以下命令
[root@localhost ~]# vi /opt/hadoop-3.1.1/sbin/start-dfs.sh
添加内容:
export HDFS_NAMENODE_SECURE_USER=root
export HDFS_DATANODE_SECURE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
2、打开 stop-dfs.sh 配置文件,在第二行中添加以下命令
[root@localhost ~]# vi /opt/hadoop-3.1.1/sbin/stop-dfs.sh
添加内容:
export HDFS_NAMENODE_SECURE_USER=root
export HDFS_DATANODE_SECURE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
2.2.8 修改 start-yarn.sh 和 stop-yarn.sh 配置文件
1、打开 start-yarn.sh 配置文件,在第二行中添加以下命令
[root@localhost ~]# vi /opt/hadoop-3.1.1/sbin/start-yarn.sh
添加内容:
export YARN_RESOURCEMANAGER_USER=root
export HADOOP_SECURE_DN_USER=root
export YARN_NODEMANAGER_USER=root
2、打开 stop-yarn.sh 配置文件,在第二行中添加以下命令
[root@localhost ~]# vi /opt/hadoop-3.1.1/sbin/stop-yarn.sh
添加内容:
export YARN_RESOURCEMANAGER_USER=root
export HADOOP_SECURE_DN_USER=root
export YARN_NODEMANAGER_USER=root
2.2.9 取消打印警告信息
由于系统预装的 glibc 库时 2.12 版本,而 hadoop3.1.0 期待的是 2.14 版本,所
以后期启动服务的时候会打印报警信息,我们可以配置取消打印警告信息
1、打开 log4j.properties 配置文件,在首行中添加第 2 步的内容
[root@hadoop1 ~]# vim /opt/hadoop-3.1.1/etc/hadoop/log4j.properties
2、添加内容
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
2.2.10 同步 hadoop1 配置到 hadoop2 和 hadoop3 中
1、同步已经配置好的 hadoop 文件到 hadoop2 上
[root@hadoop1 ~]# cd /opt/
[root@hadoop1 opt]# scp -r hadoop-3.1.1root@hadoop2:/opt/
2、同步已经配置好的 hadoop 文件到 hadoop3 上
[root@hadoop1 ~]# cd /opt/
[root@hadoop1 opt]# scp -r hadoop-3.1.0 root@hadoop3:/opt/
2.2.11 配置三台 hadoop 主机的 profile 文件
1、打开 profile 文件,在最后面添加第 2 步的参数内容
[root@hadoop1 ~]# vim /etc/profile
2、添加内容
#SET HADOOP
HADOOP_HOME=/opt/hadoop-3.1.1
PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_HOME PATH
4、更新环境变量
[root@localhost ~]# source /etc/profile
[root@localhost ~]# source /opt/hadoop-3.1.0/etc/hadoop/hadoop-env.sh
2.3 格式化 HDFS 文件系统
在 hadoop1 上通过 hdfs namenode -format 命令来格式化 HDFS 文件系统
[root@hadoop1 ~]# hdfs namenode -format
表示格式化 HDFS 文件系统完成
3.启动集群
3.1 启动集群
1、启动 hadoop 集群验证是否能正常启动,进入到/opt/hadoop-3.1.1/sbin/目
录下通过./start-all.sh 命令执行启动
[root@hadoop1 ~]# cd /opt/hadoop-3.1.1/sbin/
[root@hadoop1 sbin]# ./start-all.sh
2、在各 hadoop 节点上执行 jps 命令查看 hadoop 进程
[root@hadoop1 ~]# jps
3、通过 web 访问 HDFS 文件系统和 yarn
可以通过以下链接访问 hdfs 和 yarn
公网ip:8088或ip:9870
http://47.101.62.158:8088/cluster
http://47.101.62.158:9870
1.基础环境准备
2.环境部署
2.1 安装 zookeeper3.4.10
2.1.1 首先进入软件包目录
[root@hadoop1 ~]# cd tgz/
2.1.2 把 zookeeper 安装包(zookeeper-3.4.10.tar.gz)解压到/opt 目录下
[root@hadoop1 tgz]# tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/
2.1.3 解压完成后在环境变量中添加 Zookeeper 的安装路径,更新配置文件,使变量生效。
[root@hadoop1 tgz]# vi /etc/profile
添加以下内容:
#SET ZOOKEEPER
export ZOOKEEPER_HOME=/opt/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin
退出后执行 source /etc/profile 命令更新环境变量
[root@hadoop1 opt]# source /etc/profile
2.2 配置 zookeeper 配置文件
1、进入 zookeeper 配置文件目录:
[root@hadoop1]# cd /opt/zookeeper-3.4.10/conf
2、复制 zoo_sample.cfg 文件为 zoo.cfg
[root@hadoop1]# cp zoo_sample.cfg zoo.cfg
3、创建存放数据的文件夹:
[root@hadoop1 conf]# mkdir /opt/zookeeper-3.4.10/data
4、创建 myid 文件,并加入数字 0 (主节点为 0,从节点分别为 1,2)
[root@hadoop1 conf]# vi /opt/zookeeper-3.4.10/data/myid
5、修改 zoo.cfg 配置文件
[root@hadoop1 conf]# vi /opt/zookeeper-3.4.10/conf/zoo.cfg
将配置文件中 dataDir 的路径改为/opt/zookeeper-3.4.10/data
并在底部中加入以下参数:
server.0=hadoop1:2888:3888
server.1=hadoop2:2888:3888
server.2=hadoop3:2888:3888
zoo.cfg 各语句的含义
tickTime:服务器与客户端之间交互的基本时间单元(ms)
initLimit:允许 follower 连接并同步到 leader 的初始化时间,它以 tickTime
的倍数来表示。当超过设置倍数的 tickTime 时间,则连接失败
syncLimit:Leader 服务器与 follower 服务器之间信息同步允许的最大时间间
隔,如果超过次间隔,默认 follower 服务器与 leader 服务器之间断开链接
dataDir:保存 zookeeper 数据路径
clientPort:客户端访问 zookeeper 时经过服务器端时的端口号
2.2.2 文件同步
1、将 hadoop1 上配置好的 zookeeper 文件同步到 haoop2、hadoop3 节点上:
[root@hadoop1]# scp -r /opt/zookeeper-3.4.10/ root@hadoop2:/opt
[root@hadoop1]# scp -r /opt/zookeeper-3.4.10/ root@hadoop3:/opt
2、将 hadoop1 的环境变量同步到 haoop2、hadoop3 节点上::
[root@hadoop1]# scp -r /etc/profile/ root@hadoop2:/etc/profile
[root@hadoop1]# scp -r /etc/profile/ root@hadoop3:/etc/profile
3、在其它节点上使环境生效:
[root@hadoop2]# source /etc/profile
[root@hadoop3]# source /etc/profile
4、修改 hadoop2 和 hadoop3 上的 myid
在 hadoop2 上将 myid 修改为 1
命令如下:
[root@hadoop2]# vi /opt/zookeeper-3.4.10/data/myid
hadoop1 下的 myid:
hadoop2 下的 myid
hadoop3 下的 myid
启动 zookeeper 集群并测试
3.1 启动 zookeeper
1、分别启动 hadoop1、hadoop2、hadoop3 节点的 zookeeper 集群命令
[root@hadoop1]# zkServer.sh start
[root@hadoop2]# zkServer.sh start
[root@hadoop3]# zkServer.sh start
2、查看是否启动成功命令:
[root@hadoop1]# zkServer.sh status
问题:
1.执行zkServer.sh start 后显示:
JMX enabled by default Using config:/home/hadoop/app/zookeeper-3.4.5/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
2.jps后发现没有QuorumPeerMain进程
3.查看zookeeper-3.4.5/data下的zookeeper-3.4.5.out,如果提示 binding to port 0.0.0.0/0.0.0.0:2181
ERROR [main:QuorumPeerMain@89] - Unexpected exception, exiting abnormally java.net.BindException: Address already in use
说明2181端口被占用,通过netstat -nltp | grep 2181检查是否已被占用,如果有则把对应的进程kill掉(kill 进程的pid),然后再启动zookeeper
4..jps后发现有QuorumPeerMain进程,然后执行zkServer.sh status,如果显示:
JMX enabled by default Using config: /home/hadoop/app/zookeeper-3.4.5/bin/../conf/zoo.cfg Error contacting service. It is probably not running.
说明未启动成功,通过查看zookeeper-3.4.5.out,如果提示
Cannot open channel to 1 at election address hadoop05/10.37.129.105:3888 java.net.NoRouteToHostException: No route to host,说明无法连接远程电脑10.37.129.105:3888,很有可能开启了防火墙
通过sudo service iptables status检查,如果确实开启,则通过sudo service iptables stop将其关闭,最后再查看状态zkServer.sh status
此时,基本都能够正常启动了,提示:
JMX enabled by default Using config: /home/hadoop/app/zookeeper-3.4.5/bin/../conf/zoo.cfg Mode: leader(或follower)
#查看端口有没有被占用
netstat -ntpl | grep 端口号
Top查看进程
Kill -9 进程
1.1 解压安装包 hbase
1.1.1 首先进入软件包目录
[root@hadoop ~]# cd tgz/
1.1.2 解压安装压缩包 将 hbase 安装包(hbase-1.2.7-bin.tar.gz)解压缩到 /opt 目录下
[root@hadoop tgz]# tar -zxvf hbase-1.2.7-bin.tar.gz -C /opt
1.1.3 进入到/opt 目录
[root@hadoop ~]# cd /opt
1.1.4 将解压的安装包重命名
[root@hadoop ~]# mv hbase-1.2.7 /opt/hbase
1.1.5 配置环境变量 加入 hbase 的安装路径
[root@hadoop conf]# vi /etc/profile
在文件的最底部加入下面内容
export HBASE_HOME=/opt/hbase
export PATH=$PATH:$HBASE_HOME/bin
配置如图:
退出后执行 source /etc/profile 命令更新环境变量
[root@hadoop conf]# source /etc/profile
1.2:搭建 Hbase 伪分布模式
hadoop1
NameNode
DataNode
NodeManager
ResourceManager
SecondaryNameNode
HMaster
QuorumPeerMain
HRegionServer
1.2.1 按照上述 1.1 解压缩后进入到配置文件 conf 目录
[root@hadoop opt]# cd /opt/hbase/conf/
1.2.2 编辑 hbase-site.xml
[root@hadoop conf]# vi hbase-site.xml
添加内容
hbase.rootdir
hdfs://localhost:9000/hbase
hbase.cluster.distributed
true
配置参数说明:
hbase.rootdir:该参数制定了 HReion 服务器的位置,即数据存放的位置。主要端口
号要和 Hadoop 相应配置一致。
hbase.cluster.distributed:HBase 的运行模式。false 是单机模式,true 是分布式模式。
若为 false, HBase 和 Zookeeper 会运行在同一个 JVM 里面。默认为 false。
1.2.3 编辑 hbase-env.sh 设置 JAVA_HOME
[root@hadoop conf]# vi hbase-env.sh
修改 export JAVA_HOME=/usr/lib/jdk1.8/
修改后如下:
1.2.4 启动 hbase
进入到 hbase 的 bin 目录
[root@hadoop conf]# cd /opt/hbase/bin/
启动 hbase
[root@hadoop bin]# ./start-hbase.sh
1.3:搭建 Hbase 完全分布模式
序号 主机 角色 Ip 主机名 账户 密码
hadoop1
NameNode
ResourceManager
HMaster
QuorumPeerMain
hadoop2
DataNode
NodeManager
HRegionServer
QuorumPeerMain
hadoop3
NodeManager
DataNode
HRegionServer
QuorumPeerMain
1.3.1 完全配置好的 hadoop 集群(需要启动)
参考 hadoop 完全分布式搭建
1.3.2 完全配置好的 zookeeper 集群(需要启动)
参考 zookeeper 完全分布式搭建
1.3.3 按照上述 1.1 解压缩后进入到配置文件 conf 目录
[root@hadoop1 opt]# cd /opt/hbase/conf/
如上图:需要修改 hbase-site.xml、regionservers、hbase-env.sh 三个配置文件
1.3.4 编辑 hbase-site.xml
[root@hadoop1 conf]# vi hbase-site.xml
加入下面内容
hbase.rootdir
hdfs://hadoop1:9000/hbase
hbase.cluster.distributed
true
hbase.zookeeper.quorum
hadoop1,hadoop2,hadoop3
配置参数说明:
在上面的配置文件中,第一个属性指定本机的 hbase 的存储目录;第二个属性指定 hbase 的运行
模式,true 代表全分布模式;第三属性是关于 Zookeeper 集群的配置。我的 Zookeeper 安装在 hadoop1
和 hadoop2、hadoop3 上。
1.3.5 修改 regionservers
[root@hadoop1 conf]# vi regionservers
在 regionservers 文件中添加如下内容 (删除原来里面的 localhost)
hadoop2
hadoop3
1.3.7 编辑 hbase-env.sh 设置 JAVA_HOME
[root@hadoop conf]# vi hbase-env.sh
修改 export JAVA_HOME=/usr/lib/jdk1.8/
修改 export HBASE_MANAGES_ZK=false (使用我们自己搭建的 zookeeper 集群)
1.3.8 将在 hadoop1 上配置好的安装包分发到 hadoop2 和 hadoop3 上
scp -r /opt/hbase/ hadoop2:/opt
scp -r /opt/hbase/ hadoop3:/opt
1.3.9 启动 hbase 集群
在 hadoop1 上进入到 hbase 的 bin 目录
[root@hadoop conf]# cd /opt/hbase/bin/
启动 hbase
[root@hadoop bin]# ./start-hbase.sh
在每个节点上分别用 jps 查看进程
hadoop1 上 HMaster
hadoop2 上 HRegionServer
hadoop3 上 HRegionServer
2:Hbase 基本操作
2.1、Hbase Shell 命令
使用 hbase shell 命令来连接正在运行的 Hbase 实例 按照上述 1 步骤配置好环境变量
后可以直接在命令行输入 hbase shell 来启动 hbase
启动成功如下:
2.2:显示 HBase Shell 帮助文档
输入 help 并按 Enter 键,可以显示 HBase Shell 的基本使用信息
2.3:退出 HBase Shell
使用 quit 命令,退出 HBase Shell 并且断开和集群的连接,但此时 HBase 仍然在后台运
行,也可以直接 ctrl+c
2.4:查看 HBase 状态 直接输入 status 回车
3、hbase 数据定义(DDL)操作
3.1:创建新表
使用 create 命令来创建一个新的表。在创建的时候,必须指定表名和列族名。
create 'user', 'info '
3.2: 列举表信息
使用 list 命令
list 'user'
3.3:获取表描述
使用 describe 命令
describe 'user'
3.4:检查表是否存在
使用 exists 命令
exists 'user'
操作结果图如下:
3.5:删除表
删除表之前,先 disable 表,再使用 drop 命令实现删除表的功能
drop 'user'
操作结果图如下:
4、数据管理(DML)操作
4.1:在上述步骤 3 中删除了 user 表,重新创建一张 user 表
create 'user', 'info'
4.2:向表中插入数据
使用 put 命令,将数据插入表中:
put 'user', 'row1', 'info:a', 'value1'
4.3:一次性扫描全表数据
一种获取 HBase 数据的方法是扫描,使用 scan 命令来扫描表的数据。(可以限制扫描的
范围)
scan 'user'
4.4:获取一个行数据
使用 get 命令来获得某一行的数据:
get 'user', 'row1'
4.5:禁用一个表
如果你想要删除一个表或是修改它的设置,或者是其它的情况,都需要首先禁用该表。
使用 disable 命令禁用表,enable 命令重新启用表。
disable 'user'
enable 'user'
如下图所示:
6:删除数据
删除行中的某个列值
# 语法:delete
, , ,
delete 'user','rowkey001','info:a'
删除行
# 语法:deleteall
, , ,
deleteall 'user','row1'
删除表中的所有数据
# 语法: truncate
truncate 'user'
1.1首先进入软件包目录
[root@hadoop1 ~]# cd tgz/
1.2解压缩mysql到/usr/local目录
[root@hadoop1 haoodp-install]# tar -zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
1.3进入到/usr/local目录并重命名
[root@hadoop1 haoodp-install]# cd /usr/local/
[root@hadoop1 local]# mv mysql-5.6.40-linux-glibc2.12-x86_64 mysql
1.4添加组用户
[root@hadoop1 local]# groupadd mysql
添加用户mysql 到用户组mysql
[root@hadoop1 local]# useradd -g mysql mysql
1.5安装mysql
Centos7将默认数据库mysql替换成了Mariadb
[root@localhost ~]# rpm -qa|grep mariadb // 查询出来已安装的mariadb
[root@localhost ~]# rpm -e --nodeps 文件名 // 卸载mariadb,文件名为上述命令查询出来的文件
yum remove mariadb
rm -rf /etc/my.cnf
rm -rf /var/lib/mysql/
yum --setopt=tsflags=noscripts remove MariaDB-client.x86_64;
删除etc目录下的my.cnf
1.5.1进入到安装包目录
[root@hadoop1 local]# cd /usr/local/mysql
1.5.2创建data目录下mysql文件夹
[root@hadoop1 mysql]# mkdir ./data/mysql
cd data
chown -R mysql:mysql mysql
依赖问题:
yum install -y perl perl-devel autoconf
yum install -y libaio.so.1
yum remove libnuma.so.1
yum -y install numactl.x86_64
1.5.3授权并执行脚本
[root@hadoop1 mysql]# chown -R mysql:mysql ./
[root@hadoop1 mysql]# chown -R mysql:mysql /usr/local/mysql
[root@hadoop1 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql
如果报错进行如下操作yum install -y perl-Module-Install.noarch,然后在./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql
1.5.4复制mysql服务文件到/etc/init.d目录下并重命名
[root@hadoop1 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
1.5.5修改服务文件权限
[root@hadoop1 mysql]# chmod 777 /etc/init.d/mysqld
1.5.6复制mysql的配置文件并重命名
[root@hadoop1 mysql]# cp support-files/my-default.cnf /etc/my.cnf
1.5.7修改mysql启动脚本
[root@hadoop1 mysql]# vi /etc/init.d/mysqld
修改下面内容
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
1.5.8配置环境变量 加入mysql的安装路径
[root@hadoop1 conf]# vi /etc/profile
在文件的最底部加入下面内容
export PATH=$PATH:/usr/local/mysql/bin
退出后执行source /etc/profile命令更新环境变量
[root@hadoop1 conf]# source /etc/profile
1.5.10给mysql添加远程登录
[root@hadoop1 mysql]# vi /etc/my.cnf
在[mysqld]下面加
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
server_id=1
socket=/tmp/mysql.sock
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
1.5.11初始化mysql
[root@hadoop1 mysql]# /usr/local/mysql/scripts/mysql_install_db --user=mysql
1.5.12启动mysql服务
[root@hadoop1 mysql]# service mysqld start
查看mysql服务状态
[root@hadoop1 ~]# service mysqld status
1.5.13登录mysql
[root@hadoop1 ~]# mysql -u root -p
第一次登录不需要密码,直接回车
1.5.14设置本机mysql用户名和密码
mysql> use mysql;
mysql> update user set password =password('root') where user ='root';
1.5.15添加远程登录用户
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
1.5.14创建hive数据库,来存储hive元数据信息
mysql>create database hive;
可以直接Ctrl+c 退出mysql或者exit
2.安装Hive
2.1首先进入软件包目录
[root@hadoop ~]# cd tgz/
2.2解压安装压缩包 将hive安装包(apache-hive-2.3.3-bin.tar.gz)解压缩到/opt目录下
[root@hadoop tgz]# tar -zxvf apache-hive-2.3.3-bin.tar.gz -C /opt
2.3进入到/opt目录
[root@hadoop ~]# cd /opt
2.4将解压的安装包重命名
[root@hadoop opt]# mv apache-hive-2.3.3-bin hive
2.5配置环境变量 加入hive的安装路径
[root@hadoop conf]# vi /etc/profile
在文件的最底部加入下面内容
export HIVE_HOME=/opt/hive
export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH
退出后执行source /etc/profile命令更新环境变量
[root@hadoop conf]# source /etc/profile
2.6.配置hive
2.6.1 进入到hive的配置文件目录
[root@hadoop opt]# cd /opt/hive/conf/
2.6.2 复制hive-env.sh.template 一份并重命名为hive-env.sh
[root@hadoop conf]# cp hive-env.sh.template hive-env.sh
修改hive-env.sh,设置加入HADOOP_HOME=/opt/hadoop-3.1.1
[root@hadoop conf]# vi hive-env.sh
2.6.3 新建hive-site.xml
[root@hadoop conf]# vi hive-site.xml
需要在 hive-site.xml 文件中配置 MySQL 数据库连接信息 复制下面内容到新建文件中
javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
root
2.6.4 配置mysql的驱动 将mysql驱动放到hive安装路径的lib目录下
[root@hadoop1]# cp tgz/mysql-connector-java-5.1.47.jar /opt/hive/lib/
2.6.5 hive在启动前到进行元数据初始化
[root@hadoop1 conf]# schematool -dbType mysql -initSchema
看到schemaTool completed 则初始化完成
检测hive 是否成功 直接在命令行输入hive即可hive (需要hadoop安装并启动)
启动成功如下:
scala下载: https://www.scala-lang.org/download/
https://downloads.lightbend.com/scala/2.12.7/scala-2.12.7.tgz
解压到/opt下
vim /etc/profile
export PATH=$PATH:/opt/scala/bin
source /etc/profile
$ scala
安装前提
Java1.8 zookeeper hadoop Scala
集群规划
二 集群安装
1 解压缩
tar zxvf spark-2.3.1-bin-hadoop2.7.tgz -C /opt/
mv spark-2.3.1-bin-hadoop2.7 spark
2 修改配置文件
(1)进入配置文件所在目录cd /opt//spark/conf/
(2)复制spark-env.sh.template并重命名为spark-env.sh
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
编辑并在文件末尾添加如下配置内容
export JAVA_HOME=/usr/lib/jdk1.8
#指定默认master的ip或主机名
export SPARK_MASTER_HOST=hadoop1
#指定master提交任务的默认端口为7077
export SPARK_MASTER_PORT=7077
#指定master节点的webui端口
export SPARK_MASTER_WEBUI_PORT=8080
#每个worker从节点能够支配的内存数
export SPARK_WORKER_MEMORY=1g
#允许Spark应用程序在计算机上使用的核心总数(默认值:所有可用核心)
export SPARK_WORKER_CORES=1
#每个worker从节点的实例(可选配置)
export SPARK_WORKER_INSTANCES=1
#指向包含Hadoop集群的(客户端)配置文件的目录,运行在Yarn上配置此项
export HADOOP_CONF_DIR=/opt/hadoop-3.1.1/etc/hadoop
#指定整个集群状态是通过zookeeper来维护的,包括集群恢复
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=hadoop1:2181,hadoop2:2181,hadoop3:2181
-Dspark.deploy.zookeeper.dir=/spark"
cd /opt/spark/conf
cp log4j.properties.template log4j.properties
Log4j.rootCategory=INFO, console修改为
Log4j.rootCategory=WARN, console
(3)复制slaves.template成slaves,并修改配置内容
cp slaves.template slaves
vi slaves
修改从节点
hadoop1
hadoop2
hadoop3
(4)将安装包分发给其他节点
修改hadoop2节点上conf/spark-env.sh配置的MasterIP为SPARK_MASTER_IP=hadoop2
修改hadoop3节点上conf/spark-env.sh配置的MasterIP为SPARK_MASTER_IP=hadoop3
3 配置环境变量
所有节点均要配置
vi /etc/profile
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HDFS_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
source /etc/profile
三 启动集群
1 启动zookeeper集群
所有zookeeper节点均要执行
zkServer.sh start
2 启动Hadoop集群
3 启动Spark集群
启动spark:启动master节点:sbin/start-master.sh 启动worker节点:sbin/start-slaves.sh
或者:sbin/start-all.sh
注意:备用master节点hadoop2,hadoop3需要手动启动
sbin/start-master.sh
4 查看进程
启动spark
cd /opt/spark/bin
./pyspark
./spark-shell
1.解压缩
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt/
cd /opt/
重命名mv sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop
2.修改环境变量vi /etc/profile
export SQOOP_HOME=/opt/sqoop
export PATH=$SQOOP_HOME/bin:$PATH
source /etc/profile
3.将MySQL的驱动拷贝到lib下
4.修改sqoop-env-template.sh,配置HADOOP_HOME、HBASE_HOME、HIVE_HOME路径
vim sqoop-env-template.sh
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=
#set the path to where bin/hbase is available
export HBASE_HOME=
#Set the path to where bin/hive is available
export HIVE_HOME=
5.修改$SQOOP_HOME/bin/configure-sqoop
注释掉HCatalog,Accumulo检查(除非你准备使用HCatalog,Accumulo等HADOOP上的组件)
## Moved to be a runtime check in sqoop.
#if [ ! -d "${HCAT_HOME}" ]; then
# echo "Warning: $HCAT_HOME does not exist! HCatalog jobs willfail."
# echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'
#fi
#if [ ! -d "${ACCUMULO_HOME}" ];then
# echo "Warning: $ACCUMULO_HOME does not exist! Accumulo imports willfail."
# echo 'Please set $ACCUMULO_HOME to the root of your Accumuloinstallation.'
#fi
执行:sqoop version
测试连接:显示mysql数据库列表:
sqoop list-databases --connect jdbc:mysql://ip:3306/ --username hive --password hive
显示数据库里所有表:
sqoop list-tables --connect jdbc:mysql://ip:3306/hive --username hive --password hive
环境
centos:7.3
JDK:1.8
Flume:1.8
一、Flume 安装
1、下载
wget http://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.8.0/apache-flume-1.8.0-bin.tar.gz
2、解压
tar –zxvf apache-flume-1.8.0-bin.tar.gz
mv apache-flume-1.8.0-bin /usr/local/flume
3、设置环境变量
export FLUME_HOME=/opt/flume
export PATH=$FLUME_HOME/bin:$PATH
Source /etc/profile
4、配置java_home
cp flume-env.sh.template flume-env.sh
vim flume-env.sh
export JAVA_HOME=/usr/lib/jdk1.8
export HADOOP_HOME=/opt/hadoop-3.1.1
查看版本:flume-ng version
至此大数据环境平台基本搭建完成,各环节具体配置文件还需视情况而配。此文仅供参考,如有错误,望指出。感激不尽!
业务搭载离不了云服务器,选择合适的平台最重要!
从目前国内云计算市场的格局来看,国内云计算前三强分别是阿里云、腾讯云和华为云,阿里云、腾讯云作为背靠互联网平台的企业,更偏向于B端用户;华为与作为传统的通信巨头,更偏向于G端。
本人从事云计算相关工作至今已有多年,国内主流的云平台都接触过,包括他们的销售及技术团队,对各家的产品也小有了解,并且指导过数百家企业迁移上云,对云平台选择也有一定的发言权!
网上有很多评测,评测数据也五花八门,说谁好的都有,这个两篇博文分析汇总的非常详细,分享给大家,文档地址:
博文1:云服务器哪家好!阿里云、腾讯云、华为云的服务器配置及价格对比?
博文2:阿里云服务器突发型t6、n4、s6、c5、c6怎么选?和腾讯云服务器标准型s3、sn3ne、s4、s5、sa2相比哪家好?全面解析
如果是高并发,高IO业务场景,需要确定服务器规格,可让业务应用性能发挥到最佳,参考官方文档:
阿里云服务器规格:规格实例族 - 云服务器 ECS
腾讯云服务器规格:规格实例族 - 云服务器CVM
你可能感兴趣的:(腾讯云,服务器,云计算)
Ubuntu终端跑colmap实验记录——生成sparse和poses_bounds.npy
Yunni_root
3D Gaussian && Unity ubuntu bad-nerf 实验 colmap 经验分享 计算机视觉 nerf
目录前言:colmap生成sparse1.打开工程进行自动重建(不需要)——just避雷!2.单步重建——生成sparse图像2.1提取特征点2.2特征点匹配2.3稀疏重建3.使用LLFF生成poses_bounds.npy前言:我一直习惯使用autodl的服务器,在上面配置了nerfstudio的环境,详细可以看我的这篇博客:Windows&&Linux跑通BAD-RFs实战__无数踩坑坑坑记录
springboot/ssm教学资源管理系统web在线课程教学视频Java代码编写
Java学长-kirito
java spring boot spring
springboot/ssm教学资源管理系统web在线课程教学视频Java代码编写基于springboot(可改ssm)+vue项目开发语言:Java框架:springboot/可改ssm+vueJDK版本:JDK1.8(或11)服务器:tomcat数据库:mysql5.7(或8.0)数据库工具:Navicat/sqlyog开发软件:eclipse/idea依赖管理包:Maven代码+数据库保证完
SaaS架构详解
Rainbow酱
架构 sass paas
SaaS架构详解架构图IaaS层定义基础设施即服务(Infrastructure-as-a-Service),指把IT基础设施作为一种服务通过网络对外提供,并根据用户对资源的实际使用量或占用量进行计费的一种服务模式。作用在这种服务模型中,普通用户不用自己构建一个数据中心等硬件设施,而是通过租用的方式,利用Internet从IaaS服务提供商获得计算机基础设施服务,包括服务器、存储和网络等服务。内容
SaaS架构设计
frank3G
框架相关 saas 架构设计 数据库 应用服务器 session 扩展
对于SaaS应用的可伸缩,最理想的情况:随着用户数的增大,系统架构不用做调整,而仅需要增加/增强相应的硬件设备(应用服务器、数据库服务器)即可。而通常强调的应用架构具有可伸缩性,一般指的是可以实现”Scaleout”,即水平扩展或者向外扩展。而”Scaleup”通常为垂直扩展或者向上扩展,也就是增强硬件设备,这种方式几乎是任何应用架构普遍适用的,但是通常都会面临高成本的问题。1、应用服务器层的水平
《SaaS架构设计》试读
DavyYew
11)SaaS与Cloud saas 架构设计 云计算 salesforce 互联网 数据库
SaaS基础架构—云计算今天的互联网业界对云计算的关注程度,已经不亚于对一次革命。微软、谷歌、Salesforce、Amazon等国外软件巨头纷纷推出了自己的云计算系统,意图领导这一轮的软件新浪潮。国内的阿里巴巴也已经投入大量资源进入云计算这片新的海洋。基于互联网的软件系统需要承担海量的数据、文件、数据库里的数据,等等。这就必然需要可扩充的、廉价的、可靠的和高性能的网络硬盘来提供图片、视频、博客等
笔记系列----逻辑备份和恢复 imp/exp/impdp/expdp
柠檬
oracle 数据库 sql
注:需要打开监听1.传统的导入导出exp/imp传统的导入导出程序是exp/imp,用于实施数据库的逻辑备份和恢复导出程序exp将数据库的对象定义和数据被分到一个二进制文件中导入程序imp将二进制中的对象定义和数据导入到数据库中导入导出程序特点:1)按时间保存2)允许导出指定表,并重新导入新的数据库中3)可以把数据库迁移到另外一台异构服务器上4)在2个不同版本的oracle之间的数据传输数据5)在
CDN的回源原理和操作
@CLoudbays_Martin11
服务器 网络
CDN(ContentDeliveryNetwork,内容分发网络)的回源原理是指,当CDN节点(边缘服务器)无法命中缓存或缓存过期时,它会向源站请求数据的过程。回源的方式、触发条件和优化策略对于CDN的性能和稳定性至关重要。以下是回源的主要原理和关键点:1.CDN回源的触发条件CDN回源通常在以下情况下发生:缓存未命中:用户请求的资源在CDN节点上不存在(如首次请求)。缓存过期:资源已经过期且未
蜗牛星际b款装服务器系统,记录下蜗牛星际更换系统硬盘重新安装系统的一番折腾...
轻喘
蜗牛星际b款装服务器系统
前言大概是去年双十一前的日子,终于想折腾下NAS,找了个廉价矿渣产品:蜗牛星际A款。到手的机器商家已经给装好了黑群辉,刚上手不适应,也就懒得折腾,网上找了下资料,同局域网电脑上下载了群辉助手,就开始用了然后闲鱼上买了个二手1T硬盘存无关紧要的电影之类的,某东上买了个6T企业级数据盘存重要的,迫于穷,没按照设想的计划买2块6T做raid。机器配置:J3455四核cpu,4G内存,i211单口网卡1G
玩转数据库:Docker来安装MariaDB实录
shelby_loo
数据库 docker mariadb
各位,今天我来和大家分享一下在三丰云的Ubuntu系统下,使用Docker来安装MariaDB数据库服务的方法。首先,三丰云提供的这台1C1G10G5M的免费服务器,对我们开展实验来说已经足够了。能在云端运行环境,省去了买实体服务器的开销,对我们这些技术迷来说实在太方便了。使用Docker安装和运行MariaDB的步骤如下:拉取MariaDB镜像:dockerpullmariadb创建数据卷和启动
Windows下Go语言环境搭建和使用
go语言学习基地
GO语言学习 golang windows 开发语言
简介go语言是一种开源的、语法精简的静态编程语言,它的开源社区比较庞大,应用场景非常广范。可以用于系统监控、容器技术(Docker)、大数据、存储技术、分布式系统(HyperledgerFabric)、消息系统(Kafka客户端)、服务器管理、安全工具、Web工具等。这里介绍在Linux上安装并配置go。下载go安装包到GoLang中国:https://golang.google.cn/dl/下载
Serverless-架构的兴起
TE-茶叶蛋
架构知识 serverless 架构 java
文章目录前言一、物理机器时代二、虚拟机时代虚拟化技术的发展催生了云计算服务的不同模式三、容器时代四、Serverless核心特点:应用场景:挑战:前言通过服务器架构的发展了解Serverless-架构的兴起一、物理机器时代物理服务器,也称为独立服务器,是指一台完整的实体机器,用户拥有对硬件和软件的完全控制权。它们在信息技术的早期阶段非常普遍,至今仍在某些场景下使用。以下是物理服务器在“物理机时代”
推荐开源项目:simple_http_server — 简单易用的HTTP服务器
孔芝燕Pandora
推荐开源项目:simple_http_server—简单易用的HTTP服务器simple_http_serversimplehttpserverforuploadanddownload项目地址:https://gitcode.com/gh_mirrors/si/simple_http_server在编程世界中,快速搭建一个本地HTTP服务器进行测试或演示是一个常见的需求。今天,我们要向您推荐一个轻
推荐:轻量级静态文件服务器——static-file-server
温宝沫Morgan
推荐:轻量级静态文件服务器——static-file-serverstatic-file-serverTiny,simplestaticfileserverusingenvironmentvariablesforconfiguration项目地址:https://gitcode.com/gh_mirrors/st/static-file-server在快速发展的Web服务领域,简单高效的解决方案总
使用 HTTP::Server::Simple 实现轻量级 HTTP 服务器
lingllllove
http 服务器 网络协议
在Perl中,HTTP::Server::Simple模块提供了一种轻量级的方式来实现HTTP服务器。该模块简单易用,适合快速开发和测试HTTP服务。本文将详细介绍如何使用HTTP::Server::Simple模块创建和配置一个轻量级HTTP服务器。安装HTTP::Server::Simple首先,需要确保安装了HTTP::Server::Simple模块。如果尚未安装,可以使用以下命令通过CP
多租户架构未提供统一的安全策略和框架,导致安全策略不一致
图幻未来
网络安全
多租户架构下的网络安全分析与AI技术应用在云计算和大数据技术的快速发展背景下,多租户架构已成为企业应用的首选。多租户架构允许多个独立的应用共享同一套基础架构和资源池,从而降低了企业的运营成本。然而,多租户架构在给企业带来便利的同时,也面临着一系列安全挑战。本文将围绕多租户架构未提供统一的安全策略和框架导致安全策略不一致的问题展开分析,并探讨AI技术在网络安全领域的应用场景。一、多租户架构下的安全挑
Mac 与 Linux 之间传输文件
幻清
笔记 linux macos 服务器
方法一:scpMac上传文件到Linux服务器语法:scp文件名用户名@服务器ip:目标路径上传本地/opt/soft/目录下的文件nginx-0.5.38.tar.gz到远程IP地址为10.10.10.10的opt/soft/scptest目录$scp/opt/soft/
[email protected] :/opt/soft/scptest2.Mac上传文件夹
SpringBoot 整合 SpringMvc 流程以及原理
一枚务实的码农
ssm spring boot mvc spring 框架 java
通过SpringBoot整合各个框架是越来越方便了,整合SpringMVC只需要添加对应的starer依赖即可。org.springframework.bootspring-boot-starter-web而且还配备了Tomcat的starterorg.springframework.bootspring-boot-starter-web这样,只需要根据自身需求,设置配置文件。启动web服务器只需
mac连接linux服务器
会飞的爱迪生
mac 服务器 macos linux
1、mac连接linux服务器#
[email protected] 、mac指定密码连接linux服务器(1)先安装sshpass,下载后解压执行./configure&&make&&makeinstallhttps://sourceforge.net/projects/sshpass/(2)连接linux#sshpass-p\/\\\[\!\'\@wen12\$ssh-p22roo
构建一个运维助手Agent:提升运维效率的实践
人工智能机器学习
在上一篇文章中,我们讨论了如何构建一个研发助手Agent。今天,我想分享另一个实际项目:如何构建一个运维助手Agent。这个项目源于我们一个大型互联网公司的真实需求-提升运维效率,保障系统稳定。从运维痛点说起记得和运维团队讨论时的场景:小王:我们每天要处理大量的告警,很多都是重复性的工作小李:是啊,而且经常要半夜起来处理问题我:主要是哪些运维场景?小王:服务器监控、日志分析、故障处理这些我:这些场
计算机基础---HTTP缓存机制
淡写青春209
http 缓存 网络协议
HTTP缓存机制一、HTTP/1.0的缓存机制If-Modified-Since:客户端在首次请求资源时,服务器会在响应头中返回资源的最后修改时间。后续客户端再次请求该资源时,会在请求头中带上If-Modified-Since,其值为上次服务器返回的资源最后修改时间。服务器接收到请求后,会比较资源的实际最后修改时间与If-Modified-Since的值。如果资源没有被修改,服务器返回304Not
计算机基础---从输入 URL 到页面展示到底发生了什么?
淡写青春209
java
从输入URL到页面展示到底发生了什么?基础版本:在浏览器中输入指定网页的URL。浏览器通过DNS协议,获取域名对应的IP地址。[[八股文复习(总)#DNS解析的过程是什么样的?]]浏览器根据IP地址和端口号,向目标服务器发起一个TCP连接请求。[[#建立连接-TCP三次握手]]浏览器在TCP连接上,向服务器发送一个HTTP请求报文,请求获取网页的内容。服务器收到HTTP请求报文后,处理请求,并返回
第一期:Serverless基础
牛肉胡辣汤
harmonyos
应用架构的演进依次经历了微服务架构、单体架构、Serverless架构等阶段。FalseServerless是云计算下一代的默认计算范式。True业界认为Serverless=IaaS+PaaS。False云计算的演进依次经历了虚拟机、容器化、Serverless等阶段。True----以下哪个服务是云数据库和云存储中数据访问权限控制所依赖的基础服务?C.认证服务以下哪个服务不是华为Serverl
Nonebot2部署 QQ机器人成品一键部署
影心_
windows python 机器人 virtualenv
前言想在服务器上搞个机器人玩玩,发现这个派蒙的还挺不错,算是一键部署级别的机器人了,内置的功能比较多也比较方便还可以去添加插件,就选择这个来部署,本文记录一下安装的过程,方便自己以后看的同时也尽可能的写的详细一点方便有相同想法但没什么基础的朋友们参考一下资源需求所需资源:python3.8.0安装包、vs_buildtools、git、ffmpeg.zip、go-cqhttp、qsign服务器、j
麒麟服务器上执行可执行脚本报错:bash: ./xx: Permission denied(完整版)
iteapoy
❤️ debug之路 服务器 bash 运维
前情提要本来都好好的,我重启了服务器以后就开始报这个错了,而我的麒麟服务器目前是这个情况:已经在服务器上配置好了ssh免密登录,在命令行里执行
[email protected] 可以正常登录可执行文件存在于/tmp中查看可执行文件目录的权限,发现权限是drwxrwxr-x,而可执行文件的权限是-rwxr-xr-x,对于u
Linux服务器CPU性能,服务器cpu硬件性能测试
六间仓库的仓老师
Linux服务器CPU性能
相关资源下载Cpu-Z是一款家喻户晓的CPU检测软件,是检测CPU使用程度最高的一款软件,除了使用Intel或AMD自己的检测软件之外,我们平时使用最多的此类软件就数它了。它支持的CPU种类相当全面,软件的启动速度及检测速度都很快。另外,它还能检测主板和内存的相关信息,其中就有我们常用的内存双通道检测功能。当然,对于CPU的鉴别我们还是最好使用原厂软件。使用这个软件可以查看CPU的信息。软件使用十
Perf-linux服务器性能测试
进阶的小猫
压测和性能测试 linux 运维 python
1.压测基础数据准备:压测的环境:2.压测时关注服务端性能内存:50%以下CPU:一般小于75%,平均每核CPU的load小于1网络带宽:磁盘:IO:数据库:JVM:小于80%fullGC频率:小于半小时一次响应时间:小于期望值20,30,50,100ms错误率:低于0.5‰如何做服务器压测-入门级-简书https://www.jianshu.com/p/0b1f2f3b4bbd实现一个简单的压测
解决国内服务器 npm install 卡住的问题
Along丶WG
nodejs npm 前端 node.js
在使用国内云服务器时,经常会遇到npminstall命令执行卡住的情况。本文将分享一个典型案例以及常见的解决方案。问题描述在执行以下命令时:mkdirtest-npmcdtest-npmnpminit-ynpminstalllodash--verbose安装过程会卡在这个状态:(⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂)⠙idealTree:test-npm:sillidealTreebuildDep
Docker Ubuntu 20.04执行CI任务交叉编译riscv64-linux-gcc时no such file or directory
Wentao Wu
第一次接触rsicv64的交叉编译环境(其他交叉编译环境也基本没接触过,只是知道概念和原理),目前的需求是需要在gitlab上给一套rsicv64-linux-gcc执行CI任务,默认直接在本地服务器执行交叉编译,需要经常清理服务器文件,且成熟的开发环境不适合作为测试环境来运行,因此考虑将CI任务直接在Docker中执行,也需要配置最小化且测试环境最干净的Docker镜像。手工在服务器执行,全套流
CentOS7部署ceph
假面生
存储 linux
CEPH简介不管你是想为云平台提供Ceph对象存储和/或Ceph块设备,还是想部署一个Ceph文件系统或者把Ceph作为他用,所有Ceph存储集群的部署都始于部署一个个Ceph节点、网络和Ceph存储集群。Ceph存储集群至少需要一个CephMonitor和两个OSD守护进程。而运行Ceph文件系统客户端时,则必须要有元数据服务器(MetadataServer)。CephOSDs:CephOSD守
Centos 7下 ceph的安装
村口树下
《技术人生》系列 ceph
文章目录ceph安装环境准备工作1、安装ceph-deploy2、配置时间同步3、配置节点间ssh无密码登录4、防火墙配置5、安装包管理器部署ceph集群1、创建ceph操作目录(node-1)2、创建集群3、安装ceph4、安装monitor5、安装ceph-mgr6、创建osd7、创建元数据服务器mds8、扩展集群8.1、增加monitor8.2、增加manager8.3、创建RGW实例8.4
C/C++Win32编程基础详解视频下载
择善Zach
编程 C++ Win32
课题视频:C/C++Win32编程基础详解
视频知识:win32窗口的创建
windows事件机制
主讲:择善Uncle老师
学习交流群:386620625
验证码:625
--
Guava Cache使用笔记
bylijinnan
java guava cache
1.Guava Cache的get/getIfPresent方法当参数为null时会抛空指针异常
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。
实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。
2.Guava
解决ora-01652无法通过128(在temp表空间中)
0624chenhong
oracle
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。
分析过程:
既然是temp表空间有问题,那当
Struct在jsp标签
不懂事的小屁孩
struct
非UI标签介绍:
控制类标签:
1:程序流程控制标签 if elseif else
<s:if test="isUsed">
<span class="label label-success">True</span>
</
按对象属性排序
换个号韩国红果果
JavaScript 对象排序
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
大数据分析让个性化的客户体验不再遥远
蓝儿唯美
数据分析
顾客通过多种渠道制造大量数据,企业则热衷于利用这些信息来实现更为个性化的体验。
分析公司Gartner表示,高级分析会成为客户服务的关键,但是大数据分析的采用目前仅局限于不到一成的企业。 挑战在于企业还在努力适应结构化数据,疲于根据自身的客户关系管理(CRM)系统部署有效的分析框架,以及集成不同的内外部信息源。
然而,面对顾客通过数字技术参与而产生的快速变化的信息,企业需要及时作出反应。要想实
java笔记4
a-john
java
操作符
1,使用java操作符
操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不用,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。
操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的
从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
aijuans
嵌入式学习
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。
笔者因此写上自己的学习心得,希望能给和我一样转变
在springmvc中解决FastJson循环引用的问题
asialee
循环引用 fastjson
我们先来看一个例子:
package com.elong.bms;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import co
ArrayAdapter和SimpleAdapter技术总结
百合不是茶
android SimpleAdapter ArrayAdapter 高级组件基础
ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果
ArrayAdapter;的数据可以是数组或者是队列
// 获得下拉框对象
AutoCompleteTextView textview = (AutoCompleteTextView) this
九封信
bijian1013
人生 励志
有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿别人看到自己的伤口。有时候,走过熟悉的街角,看到熟悉的背影,突然想起一个人的脸。有时候,发现自己一夜之间就长大了。 2014,写给人
Linux下安装MySQL Web 管理工具phpMyAdmin
sunjing
PHP Install phpMyAdmin
PHP http://php.net/
phpMyAdmin http://www.phpmyadmin.net
Error compiling PHP on CentOS x64
一、安装Apache
请参阅http://billben.iteye.com/admin/blogs/1985244
二、安装依赖包
sudo yum install gd
分布式系统理论
bit1129
分布式
FLP
One famous theory in distributed computing, known as FLP after the authors Fischer, Lynch, and Patterson, proved that in a distributed system with asynchronous communication and process crashes,
ssh2整合(spring+struts2+hibernate)-附源码
白糖_
eclipse spring Hibernate mysql 项目管理
最近抽空又整理了一套ssh2框架,主要使用的技术如下:
spring做容器,管理了三层(dao,service,actioin)的对象
struts2实现与页面交互(MVC),自己做了一个异常拦截器,能拦截Action层抛出的异常
hibernate与数据库交互
BoneCp数据库连接池,据说比其它数据库连接池快20倍,仅仅是据说
MySql数据库
项目用eclipse
treetable bug记录
braveCS
table
// 插入子节点删除再插入时不能正常显示。修改:
//不知改后有没有错,先做个备忘
Tree.prototype.removeNode = function(node) {
// Recursively remove all descendants of +node+
this.unloadBranch(node);
// Remove
编程之美-电话号码对应英语单词
bylijinnan
java 算法 编程之美
import java.util.Arrays;
public class NumberToWord {
/**
* 编程之美 电话号码对应英语单词
* 题目:
* 手机上的拨号盘,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,
* 要求对一段数字,输出其代表的所有可能的字母组合
jquery ajax读书笔记
chengxuyuancsdn
jQuery ajax
1、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
JWFD工作流拓扑结构解析伪码描述算法
comsci
数据结构 算法 工作 活动 J#
对工作流拓扑结构解析感兴趣的朋友可以下载附件,或者下载JWFD的全部代码进行分析
/* 流程图拓扑结构解析伪码描述算法
public java.util.ArrayList DFS(String graphid, String stepid, int j)
oracle I/O 从属进程
daizj
oracle
I/O 从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O.例如,磁带设备(相当慢)就不支持异步I/O.通过使用I/O 从属进程,可以让磁带机模仿通常只为磁盘驱动器提供的功能。就好像支持真正的异步I/O 一样,写设备的进程(调用者)会收集大量数据,并交由写入器写出。数据成功地写出时,写入器(此时写入器是I/O 从属进程,而不是操作系统)会通知原来的调用者,调用者则会
高级排序:希尔排序
dieslrae
希尔排序
public void shellSort(int[] array){
int limit = 1;
int temp;
int index;
while(limit <= array.length/3){
limit = limit * 3 + 1;
初二下学期难记忆单词
dcj3sjt126com
english word
kitchen 厨房
cupboard 厨柜
salt 盐
sugar 糖
oil 油
fork 叉;餐叉
spoon 匙;调羹
chopsticks 筷子
cabbage 卷心菜;洋白菜
soup 汤
Italian 意大利的
Indian 印度的
workplace 工作场所
even 甚至;更
Italy 意大利
laugh 笑
m
Go语言使用MySQL数据库进行增删改查
dcj3sjt126com
mysql
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
http://code.google.c...o-mysql-dri
git命令
shuizhaosi888
git
---------------设置全局用户名:
git config --global user.name "HanShuliang" //设置用户名
git config --global user.email "
[email protected] " //设置邮箱
---------------查看环境配置
git config --li
qemu-kvm 网络 nat模式 (四)
haoningabc
kvm qemu
qemu-ifup-NAT
#!/bin/bash
BRIDGE=virbr0
NETWORK=192.168.122.0
GATEWAY=192.168.122.1
NETMASK=255.255.255.0
DHCPRANGE=192.168.122.2,192.168.122.254
TFTPROOT=
BOOTP=
function check_bridge()
不要让未来的你,讨厌现在的自己
jingjing0907
生活 奋斗 工作 梦想
故事one
23岁,他大学毕业,放弃了父母安排的稳定工作,独闯京城,在家小公司混个小职位,工作还算顺手,月薪三千,混了混,混走了一年的光阴。 24岁,有了女朋友,从二环12人的集体宿舍搬到香山民居,一间平房,二人世界,爱爱爱。偶然约三朋四友,打扑克搓麻将,日子快乐似神仙; 25岁,出了几次差,调了两次岗,薪水涨了不过百,生猛狂飙的物价让现实血淋淋,无力为心爱银儿购件大牌
枚举类型详解
一路欢笑一路走
enum 枚举详解 enumset enumMap
枚举类型详解
一.Enum详解
1.1枚举类型的介绍
JDK1.5加入了一个全新的类型的”类”—枚举类型,为此JDK1.5引入了一个新的关键字enum,我们可以这样定义一个枚举类型。
Demo:一个最简单的枚举类
public enum ColorType {
RED
第11章 动画效果(上)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
Eclipse中jsp、js文件编辑时,卡死现象解决汇总
ljf_home
eclipse jsp卡死 js卡死
使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下:
1、取消验证
windows–>perferences–>validation
把 除了manual 下面的全部点掉,build下只留 classpath dependency Valida
MySQL编程中的6个重要的实用技巧
tomcat_oracle
mysql
每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");
zoj 3820 Building Fire Stations(二分+bfs)
阿尔萨斯
Build
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。 判断函数里面做了3次bfs,但是每次bfs节点最多