大数据学习--平台环境部署(详细)
本文利用云服务器对大数据平台进行环境部署,包含:服务器使用、环境准备、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:
http://www.apache.org/(Apache官网)
https://mirrors.tuna.tsinghua.edu.cn/apache/
Hadoop集群安装(伪|全)
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz
JDK安装
http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
如果用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安装
https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
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
至此大数据环境平台基本搭建完成,各环节具体配置文件还需视情况而配。此文仅供参考,如有错误,望指出。感激不尽!
你可能感兴趣的:(大数据学习 - 平台环境部署(详细))
如何在 Fork 的 GitHub 项目中保留自己的修改并同步上游更新?github_fork_update
iBaoxing
github
如何在Fork的GitHub项目中保留自己的修改并同步上游更新?在GitHub上Fork了一个项目后,你可能会对项目进行一些修改,同时原作者也在不断更新。如果想要在保留自己修改的基础上,同步原作者的最新更新,很多人会不知所措。本文将详细讲解如何在不丢失自己改动的情况下,将上游仓库的更新合并到自己的仓库中。问题描述假设你在GitHub上Fork了一个项目,并基于该项目做了一些修改,随后你发现原作者对
店群合一模式下的社区团购新发展——结合链动 2+1 模式、AI 智能名片与 S2B2C 商城小程序源码
说私域
人工智能 小程序
摘要:本文探讨了店群合一的社区团购平台在当今商业环境中的重要性和优势。通过分析店群合一模式如何将互联网社群与线下终端紧密结合,阐述了链动2+1模式、AI智能名片和S2B2C商城小程序源码在这一模式中的应用价值。这些创新元素的结合为社区团购带来了新的机遇,提升了用户信任感、拓展了营销渠道,并实现了线上线下的完美融合。一、引言随着互联网技术的不断发展,社区团购作为一种新兴的商业模式,在满足消费者日常需
抖音乐买买怎么加入赚钱?赚钱方法是什么
测评君高省
你会在抖音买东西吗?如果会,那么一定要免费注册一个乐买买,抖音直播间,橱窗,小视频里的小黄车买东西都可以返佣金!省下来都是自己的,分享还可以赚钱乐买买是好省旗下的抖音返佣平台,乐买买分析社交电商的价值,乐买买属于今年难得的副业项目风口机会,2019年错过做好省的搞钱的黄金时期,那么2022年千万别再错过乐买买至于我为何转到高省呢?当然是高省APP佣金更高,模式更好,终端用户不流失。【高省】是一个自
Python数据分析与可视化实战指南
William数据分析
python python 数据
在数据驱动的时代,Python因其简洁的语法、强大的库生态系统以及活跃的社区,成为了数据分析与可视化的首选语言。本文将通过一个详细的案例,带领大家学习如何使用Python进行数据分析,并通过可视化来直观呈现分析结果。一、环境准备1.1安装必要库在开始数据分析和可视化之前,我们需要安装一些常用的库。主要包括pandas、numpy、matplotlib和seaborn等。这些库分别用于数据处理、数学
网易严选官方旗舰店,优质商品,卓越服务
高省_飞智666600
网易严选官方旗舰店是网易旗下的一家电商平台,以提供优质商品和卓越服务而闻名。作为一名SEO优化师,我将为您详细介绍网易严选官方旗舰店,并重点强调其特点和优势。大家好!我是高省APP最大团队&联合创始人飞智导师。相较于其他返利app,高省APP的佣金更高,模式更好,最重要的是,终端用户不会流失!高省APP佣金更高,模式更好,终端用户不流失。【高省】是一个自用省钱佣金高,分享推广赚钱多的平台,百度有几
腾讯云技术深度探索:构建高效云原生微服务架构
我的运维人生
云原生 架构 腾讯云 运维开发 技术共享
腾讯云技术深度探索:构建高效云原生微服务架构在当今快速发展的技术环境中,云原生技术已成为企业数字化转型的关键驱动力。腾讯云作为行业领先的云服务提供商,不断推出创新的产品和技术,助力企业构建高效、可扩展的云原生微服务架构。本文将深入探讨腾讯云在微服务领域的最新进展,并通过一个实际案例展示如何在腾讯云平台上构建云原生应用。腾讯云微服务架构概览腾讯云微服务架构基于云原生理念,旨在帮助企业快速实现应用的容
PHP环境搭建详细教程
好看资源平台
前端 php
PHP是一个流行的服务器端脚本语言,广泛用于Web开发。为了使PHP能够在本地或服务器上运行,我们需要搭建一个合适的PHP环境。本教程将结合最新资料,介绍在不同操作系统上搭建PHP开发环境的多种方法,包括Windows、macOS和Linux系统的安装步骤,以及本地和Docker环境的配置。1.PHP环境搭建概述PHP环境的搭建主要分为以下几类:集成开发环境:例如XAMPP、WAMP、MAMP,这
直返最高等级与直返APP:无需邀请码的返利新体验
古楼
随着互联网的普及和电商的兴起,直返模式逐渐成为一种流行的商业模式。在这种模式下,消费者通过购买产品或服务,获得一定的返利,并可以分享给更多的人。其中,直返最高等级和直返APP是直返模式中的重要概念和工具。本文将详细介绍直返最高等级的概念、直返APP的使用以及与邀请码的关系。【高省】APP(高佣金领导者)是一个自用省钱佣金高,分享推广赚钱多的平台,百度有几百万篇报道,运行三年,稳定可靠。高省APP,
【加密社】Solidity 中的事件机制及其应用
加密社
闲侃 区块链 智能合约 区块链
加密社引言在Solidity合约开发过程中,事件(Events)是一种非常重要的机制。它们不仅能够让开发者记录智能合约的重要状态变更,还能够让外部系统(如前端应用)监听这些状态的变化。本文将详细介绍Solidity中的事件机制以及如何利用不同的手段来触发、监听和获取这些事件。事件存储的地方当我们在Solidity合约中使用emit关键字触发事件时,该事件会被记录在区块链的交易收据中。具体而言,事件
使用LLaVa和Ollama实现多模态RAG示例
llzwxh888
python 人工智能 开发语言
本文将详细介绍如何使用LLaVa和Ollama实现多模态RAG(检索增强生成),通过提取图像中的结构化数据、生成图像字幕等功能来展示这一技术的强大之处。安装环境首先,您需要安装以下依赖包:!pipinstallllama-index-multi-modal-llms-ollama!pipinstallllama-index-readers-file!pipinstallunstructured!p
利用Requests Toolkit轻松完成HTTP请求
nseejrukjhad
http 网络协议 网络 python
RequestsToolkit的力量:轻松构建HTTP请求Agent在现代软件开发中,API请求是与外部服务交互的核心。RequestsToolkit提供了一种便捷的方式,帮助开发者构建自动化的HTTP请求Agent。本文旨在详细介绍RequestsToolkit的设置、使用和潜在挑战。引言RequestsToolkit是一个强大的工具包,可用于构建执行HTTP请求的智能代理。这对于想要自动化与外
利用LangChain的StackExchange组件实现智能问答系统
nseejrukjhad
langchain microsoft 数据库 python
利用LangChain的StackExchange组件实现智能问答系统引言在当今的软件开发世界中,StackOverflow已经成为程序员解决问题的首选平台之一。而LangChain作为一个强大的AI应用开发框架,提供了StackExchange组件,使我们能够轻松地将StackOverflow的海量知识库集成到我们的应用中。本文将详细介绍如何使用LangChain的StackExchange组件
在一台Ubuntu计算机上构建Hyperledger Fabric网络
落叶无声9
区块链 超级账本 Hyperledger fabric 区块链 ubuntu 构建 hyperledger fabric
在一台Ubuntu计算机上构建HyperledgerFabric网络Hyperledgerfabric是一个开源的区块链应用程序平台,为开发基于区块链的应用程序提供了一个起点。当我们提到HyperledgerFabric网络时,我们指的是使用HyperledgerFabric的正在运行的系统。即使只使用最少数量的组件,部署Fabric网络也不是一件容易的事。Fabric社区创建了一个名为Cello
GitHub上克隆项目
bigbig猩猩
github
从GitHub上克隆项目是一个简单且直接的过程,它允许你将远程仓库中的项目复制到你的本地计算机上,以便进行进一步的开发、测试或学习。以下是一个详细的步骤指南,帮助你从GitHub上克隆项目。一、准备工作1.安装Git在克隆GitHub项目之前,你需要在你的计算机上安装Git工具。Git是一个开源的分布式版本控制系统,用于跟踪和管理代码变更。你可以从Git的官方网站(https://git-scm.
2022现在哪个打车软件比较好用又便宜 实惠的打车软件合集
高省APP珊珊
这是一个信息高速传播的社会。信息可以通过手机,微信,自媒体,抖音等方式进行传播。但同时这也是一个交通四通发达的社会。高省APP,是2022年推出的平台,0投资,0风险、高省APP佣金更高,模式更好,终端用户不流失。【高省】是一个自用省钱佣金高,分享推广赚钱多的平台,百度有几百万篇报道,也期待你的加入。珊珊导师,高省邀请码777777,注册送2皇冠会员,送万元推广大礼包,教你如何1年做到百万团队。高
Faiss Tips:高效向量搜索与聚类的利器
焦习娜Samantha
FaissTips:高效向量搜索与聚类的利器faiss_tipsSomeusefultipsforfaiss项目地址:https://gitcode.com/gh_mirrors/fa/faiss_tips项目介绍Faiss是由FacebookAIResearch开发的一个用于高效相似性搜索和密集向量聚类的库。它支持多种硬件平台,包括CPU和GPU,能够在海量数据集上实现快速的近似最近邻搜索(AN
node.js学习
小猿L
node.js node.js 学习 vim
node.js学习实操及笔记温故node.js,node.js学习实操过程及笔记~node.js学习视频node.js官网node.js中文网实操笔记githubcsdn笔记为什么学node.js可以让别人访问我们编写的网页为后续的框架学习打下基础,三大框架vuereactangular离不开node.jsnode.js是什么官网:node.js是一个开源的、跨平台的运行JavaScript的运行
穷人做什么生意最赚钱?10个适合穷人赚钱的路子?
氧惠爱高省
不管在什么地方,一般都是穷人占大量数,而富人只有少数,但是它们却掌握着大量的财富。对于穷人来说,想要买车、买房等奢侈品就难如登天,因为他们只能通过打工来赚取几千元的月薪。➤推荐网购返利app“氧惠”,一个领隐藏优惠券+现金返利的平台。氧惠只提供领券返利链接,下单全程都在淘宝、京东、拼多多等原平台,更支持抖音、快手电商、外卖红包返利等。(应用市场搜“氧惠”下载,邀请码:521521,全网优惠上氧惠!
【华为OD技术面试真题 - 技术面】-测试八股文真题题库(1)
算法大师
华为od 面试 python 算法 前端
华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选1.黑盒测试和白盒测试的区别2.假设我们公司现在开发一个类似于微信的软件1.0版本,现在要你测试这个功能:打开聊天窗口,输入文本,限制字数在200字以内。问你怎么提取测试点。功能测试性能测试安全性测试可用性测试跨平台兼容性测试网络环境测试3.接口测试的工具你了解哪些
闲鱼鱼小铺怎么开通?鱼小铺开通需要哪些流程?
高省APP大九
闲鱼鱼小铺是平台推出的一个专业程度的店铺,与普通店铺相比会有更多的权益,比如说发布的商品数量从50增加到500;拥有专业的店铺数据看板与分析的功能,这对于专门在闲鱼做生意的用户来说是非常有帮助的,那么鱼小铺每个人都能开通吗?大家好,我是高省APP联合创始人蓓蓓导师,高省APP是2021年推出的电商导购平台,0投资,0风险、高省APP佣金更高,模式更好,终端用户不流失。【高省】是一个可省钱佣金高,能
ARM驱动学习之5 LEDS驱动
JT灬新一
嵌入式 C 底层 arm开发 学习 单片机
ARM驱动学习之5LEDS驱动知识点:•linuxGPIO申请函数和赋值函数–gpio_request–gpio_set_value•三星平台配置GPIO函数–s3c_gpio_cfgpin•GPIO配置输出模式的宏变量–S3C_GPIO_OUTPUT注意点:DRIVER_NAME和DEVICE_NAME匹配。实现步骤:1.加入需要的头文件://Linux平台的gpio头文件#include//三
直返APP是什么?直返APP是干嘛的
氧惠帮朋友一起省
直返是一种电商购物模式,其核心特点是用户购买商品后可以获得直接返利。具体来说,用户在直返电商平台购买商品时,不仅可以获得商品本身的优惠,还可以获得一定的现金返利或者积分奖励。返利的金额可以提现到用户的账户余额,或者用于下次购物时抵扣。氧惠APP(带货领导者)——是与以往完全不同的抖客+淘客app!2023全新模式,我的直推也会放到你下面。主打:带货高补贴,深受各位带货团队长喜爱(每天出单带货几十万
直返的东西正品吗?直返APP安全吗?直返是正规平台吗?
氧惠购物达人
亲们,你们是不是经常在直返APP上买东西呀?但是,你们有没有想过,里面的东西到底是不是正品呢?这个APP安全吗?它是不是一个正规的平台呀?别着急,今天我就来给大家揭秘一下!氧惠APP(带货领导者)——是与以往完全不同的抖客+淘客app!2023全新模式,我的直推也会放到你下面。主打:带货高补贴,深受各位带货团队长喜爱(每天出单带货几十万单)。注册即可享受高补贴+0撸+捡漏等带货新体验。送万元推广大
福袋生活邀请码在哪里填写,福袋生活app邀请码使用教程
小小编007
很多人下载福袋生活后,注册使用时需要填写邀请码。因为福袋生活是注册邀请制,所以首次使用填写邀请码才可以正常登录使用。福袋生活是广州市福袋生活信息科技有限公司旗下一家多元化社交电商导购平台,以APP为载体,社群为媒介,汇集衣食住行、吃喝玩乐生活服务板块,使用福袋生活可以领到淘宝,拼多多等电商平台的商品优惠券和返利,还可以兼职去分享赚钱。我为什么从福袋生活转到果冻宝盒呢?当然是因为福袋生活返利更高,注
docker
igotyback
eureka 云原生
Docker容器的文件系统是隔离的,但是可以通过挂载卷(Volumes)或绑定挂载(BindMounts)将宿主机的文件系统目录映射到容器内部。要查看Docker容器的映射路径,可以使用以下方法:查看容器配置:使用dockerinspect命令可以查看容器的详细配置信息,包括挂载的卷。例如:bashdockerinspect在输出的JSON格式中,查找"Mounts"部分,这里会列出所有的挂载信息
18、架构-可观测性之聚合度量
大树~~
架构 java python 后端 架构
聚合度量聚合度量是指对系统运行时产生的各种指标数据进行收集、聚合和分析,以了解系统的健康状况和性能表现。聚合度量是可观测性的关键组成部分,通过对度量数据的分析,可以及时发现系统中的异常和瓶颈。以下是对聚合度量各个方面的详细解析,并结合具体的数据案例和技术支撑。指标收集收集系统运行时产生的各种指标数据是聚合度量的基础。常见的指标包括CPU使用率、内存使用率、请求处理时间、请求数、错误率等。以下是指标
4招写出高价值文章
zhiliner
文章写得泛泛是因为思考得不够深,思考得越深文章会越有价值。拿到一个主题一定要去深入挖掘事件背后的东西,比如人物困境以及趋势性的东西。写作过程中有几个深度思考的方法一、解剖,让旧素材焕发新意作为一个写作者,我们能够做的最大贡献,就是给出自己看世界的角度。解剖其实就是把这个话题相关的信息都列出来,详细的列出来,看清楚它的内部。我们看到一个老话题或者一段旧素材的时候,不要只看这个素材或者话题本身,一定要
ES聚合分析原理与代码实例讲解
光剑书架上的书
大厂Offer收割机 面试题 简历 程序员读书 硅基计算 碳基计算 认知计算 生物计算 深度学习 神经网络 大数据 AIGC AGI LLM Java Python 架构设计 Agent 程序员实现财富自由
ES聚合分析原理与代码实例讲解1.背景介绍1.1问题的由来在大规模数据分析场景中,特别是在使用Elasticsearch(ES)进行数据存储和检索时,聚合分析成为了一个至关重要的功能。聚合分析允许用户对数据集进行细分和分组,以便深入探索数据的结构和模式。这在诸如实时监控、日志分析、业务洞察等领域具有广泛的应用。1.2研究现状目前,ES聚合分析已经成为现代大数据平台的核心组件之一。它支持多种类型的聚
JVM、JRE和 JDK:理解Java开发的三大核心组件
Y雨何时停T
Java java
Java是一门跨平台的编程语言,它的成功离不开背后强大的运行环境与开发工具的支持。在Java的生态中,JVM(Java虚拟机)、JRE(Java运行时环境)和JDK(Java开发工具包)是三个至关重要的核心组件。本文将探讨JVM、JDK和JRE的区别,帮助你更好地理解Java的运行机制。1.JVM:Java虚拟机(JavaVirtualMachine)什么是JVM?JVM,即Java虚拟机,是Ja
linux 发展史
种树的猴子
内核 java 操作系统 linux 大数据
linux发展史说明此前对linux认识模糊一知半解,近期通过学习将自己对于linux的发展总结一下方便大家日后的学习。那Linux是目前一款非常火热的开源操作系统,可是linux是什么时候出现的,又是因为什么样的原因被开发出来的呢。以下将对linux的发展历程进行详细的讲解。目录一、Linux发展背景二、UINIX的诞生三、UNIX的重要分支-BSD的诞生四、Minix的诞生五、GNU与Free
Enum 枚举
120153216
enum 枚举
原文地址:http://www.cnblogs.com/Kavlez/p/4268601.html Enumeration
于Java 1.5增加的enum type...enum type是由一组固定的常量组成的类型,比如四个季节、扑克花色。在出现enum type之前,通常用一组int常量表示枚举类型。比如这样:
public static final int APPLE_FUJI = 0
Java8简明教程
bijian1013
java jdk1.8
Java 8已于2014年3月18日正式发布了,新版本带来了诸多改进,包括Lambda表达式、Streams、日期时间API等等。本文就带你领略Java 8的全新特性。
一.允许在接口中有默认方法实现
Java 8 允许我们使用default关键字,为接口声明添
Oracle表维护 快速备份删除数据
cuisuqiang
oracle 索引 快速 备份 删除
我知道oracle表分区,不过那是数据库设计阶段的事情,目前是远水解不了近渴。
当前的数据库表,要求保留一个月数据,且表存在大量录入更新,不存在程序删除。
为了解决频繁查询和更新的瓶颈,我在oracle内根据需要创建了索引。但是随着数据量的增加,一个半月数据就要超千万,此时就算有索引,对高并发的查询和更新来说,让然有所拖累。
为了解决这个问题,我一般一个月会进行一次数据库维护,主要工作就是备
java多态内存分析
麦田的设计者
java 内存分析 多态原理 接口和抽象类
“ 时针如果可以回头,熟悉那张脸,重温嬉戏这乐园,墙壁的松脱涂鸦已经褪色才明白存在的价值归于记忆。街角小店尚存在吗?这大时代会不会牵挂,过去现在花开怎么会等待。
但有种意外不管痛不痛都有伤害,光阴远远离开,那笑声徘徊与脑海。但这一秒可笑不再可爱,当天心
Xshell实现Windows上传文件到Linux主机
被触发
windows
经常有这样的需求,我们在Windows下载的软件包,如何上传到远程Linux主机上?还有如何从Linux主机下载软件包到Windows下;之前我的做法现在看来好笨好繁琐,不过也达到了目的,笨人有本方法嘛;
我是怎么操作的:
1、打开一台本地Linux虚拟机,使用mount 挂载Windows的共享文件夹到Linux上,然后拷贝数据到Linux虚拟机里面;(经常第一步都不顺利,无法挂载Windo
类的加载ClassLoader
肆无忌惮_
ClassLoader
类加载器ClassLoader是用来将java的类加载到虚拟机中,类加载器负责读取class字节文件到内存中,并将它转为Class的对象(类对象),通过此实例的 newInstance()方法就可以创建出该类的一个对象。
其中重要的方法为findClass(String name)。
如何写一个自己的类加载器呢?
首先写一个便于测试的类Student
html5写的玫瑰花
知了ing
html5
<html>
<head>
<title>I Love You!</title>
<meta charset="utf-8" />
</head>
<body>
<canvas id="c"></canvas>
google的ConcurrentLinkedHashmap源代码解析
矮蛋蛋
LRU
原文地址:
http://janeky.iteye.com/blog/1534352
简述
ConcurrentLinkedHashMap 是google团队提供的一个容器。它有什么用呢?其实它本身是对
ConcurrentHashMap的封装,可以用来实现一个基于LRU策略的缓存。详细介绍可以参见
http://code.google.com/p/concurrentlinke
webservice获取访问服务的ip地址
alleni123
webservice
1. 首先注入javax.xml.ws.WebServiceContext,
@Resource
private WebServiceContext context;
2. 在方法中获取交换请求的对象。
javax.xml.ws.handler.MessageContext mc=context.getMessageContext();
com.sun.net.http
菜鸟的java基础提升之道——————>是否值得拥有
百合不是茶
1,c++,java是面向对象编程的语言,将万事万物都看成是对象;java做一件事情关注的是人物,java是c++继承过来的,java没有直接更改地址的权限但是可以通过引用来传值操作地址,java也没有c++中繁琐的操作,java以其优越的可移植型,平台的安全型,高效性赢得了广泛的认同,全世界越来越多的人去学习java,我也是其中的一员
java组成:
通过修改Linux服务自动启动指定应用程序
bijian1013
linux
Linux中修改系统服务的命令是chkconfig (check config),命令的详细解释如下: chkconfig
功能说明:检查,设置系统的各种服务。
语 法:chkconfig [ -- add][ -- del][ -- list][系统服务] 或 chkconfig [ -- level <</SPAN>
spring拦截器的一个简单实例
bijian1013
java spring 拦截器 Interceptor
Purview接口
package aop;
public interface Purview {
void checkLogin();
}
Purview接口的实现类PurviesImpl.java
package aop;
public class PurviewImpl implements Purview {
public void check
[Velocity二]自定义Velocity指令
bit1129
velocity
什么是Velocity指令
在Velocity中,#set,#if, #foreach, #elseif, #parse等,以#开头的称之为指令,Velocity内置的这些指令可以用来做赋值,条件判断,循环控制等脚本语言必备的逻辑控制等语句,Velocity的指令是可扩展的,即用户可以根据实际的需要自定义Velocity指令
自定义指令(Directive)的一般步骤
&nbs
【Hive十】Programming Hive学习笔记
bit1129
programming
第二章 Getting Started
1.Hive最大的局限性是什么?一是不支持行级别的增删改(insert, delete, update)二是查询性能非常差(基于Hadoop MapReduce),不适合延迟小的交互式任务三是不支持事务2. Hive MetaStore是干什么的?Hive persists table schemas and other system metadata.
nginx有选择性进行限制
ronin47
nginx 动静 限制
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;...
server {...
location ~.*\.(gif|png|css|js|icon)$ {
java-4.-在二元树中找出和为某一值的所有路径 .
bylijinnan
java
/*
* 0.use a TwoWayLinkedList to store the path.when the node can't be path,you should/can delete it.
* 1.curSum==exceptedSum:if the lastNode is TreeNode,printPath();delete the node otherwise
Netty学习笔记
bylijinnan
java netty
本文是阅读以下两篇文章时:
http://seeallhearall.blogspot.com/2012/05/netty-tutorial-part-1-introduction-to.html
http://seeallhearall.blogspot.com/2012/06/netty-tutorial-part-15-on-channel.html
我的一些笔记
===
js获取项目路径
cngolon
js
//js获取项目根路径,如: http://localhost:8083/uimcardprj
function getRootPath(){
//获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp
var curWwwPath=window.document.locati
oracle 的性能优化
cuishikuan
oracle SQL Server
在网上搜索了一些Oracle性能优化的文章,为了更加深层次的巩固[边写边记],也为了可以随时查看,所以发表这篇文章。
1.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。(这点本人曾经做过实例验证过,的确如此哦!
Shell变量和数组使用详解
daizj
linux shell 变量 数组
Shell 变量
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:
your_name="w3cschool.cc"
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用ba
编程中的一些概念,KISS、DRY、MVC、OOP、REST
dcj3sjt126com
REST
KISS、DRY、MVC、OOP、REST (1)KISS是指Keep It Simple,Stupid(摘自wikipedia),指设计时要坚持简约原则,避免不必要的复杂化。 (2)DRY是指Don't Repeat Yourself(摘自wikipedia),特指在程序设计以及计算中避免重复代码,因为这样会降低灵活性、简洁性,并且可能导致代码之间的矛盾。 (3)OOP 即Object-Orie
[Android]设置Activity为全屏显示的两种方法
dcj3sjt126com
Activity
1. 方法1:AndroidManifest.xml 里,Activity的 android:theme 指定为" @android:style/Theme.NoTitleBar.Fullscreen" 示例: <application
solrcloud 部署方式比较
eksliang
solrCloud
solrcloud 的部署其实有两种方式可选,那么我们在实践开发中应该怎样选择呢? 第一种:当启动solr服务器时,内嵌的启动一个Zookeeper服务器,然后将这些内嵌的Zookeeper服务器组成一个集群。 第二种:将Zookeeper服务器独立的配置一个集群,然后将solr交给Zookeeper进行管理
谈谈第一种:每启动一个solr服务器就内嵌的启动一个Zoo
Java synchronized关键字详解
gqdy365
synchronized
转载自:http://www.cnblogs.com/mengdd/archive/2013/02/16/2913806.html
多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同步用以解决多个线程同时访问时可能出现的问题。
同步机制可以使用synchronized关键字实现。
当synchronized关键字修饰一个方法的时候,该方法叫做同步方法。
当s
js实现登录时记住用户名
hw1287789687
记住我 记住密码 cookie 记住用户名 记住账号
在页面中如何获取cookie值呢?
如果是JSP的话,可以通过servlet的对象request 获取cookie,可以
参考:http://hw1287789687.iteye.com/blog/2050040
如果要求登录页面是html呢?html页面中如何获取cookie呢?
直接上代码了
页面:loginInput.html
代码:
<!DOCTYPE html PUB
开发者必备的 Chrome 扩展
justjavac
chrome
Firebug:不用多介绍了吧https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifench
ChromeSnifferPlus:Chrome 探测器,可以探测正在使用的开源软件或者 js 类库https://chrome.google.com/webstore/detail/chrome-sniffer-pl
算法机试题
李亚飞
java 算法 机试题
在面试机试时,遇到一个算法题,当时没能写出来,最后是同学帮忙解决的。
这道题大致意思是:输入一个数,比如4,。这时会输出:
&n
正确配置Linux系统ulimit值
字符串
ulimit
在Linux下面部 署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题;这个值也会影响服务器的最大并发数,其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用 其实很容易就达到这个数量。下面说的是,如何通过正解配置来改正这个系统默认值。因为这个问题是我配置Nginx+php5时遇到了,所以我将这篇归纳进
hibernate调用返回游标的存储过程
Supanccy2013
java DAO oracle Hibernate jdbc
注:原创作品,转载请注明出处。
上篇博文介绍的是hibernate调用返回单值的存储过程,本片博文说的是hibernate调用返回游标的存储过程。
此此扁博文的存储过程的功能相当于是jdbc调用select 的作用。
1,创建oracle中的包,并在该包中创建的游标类型。
---创建oracle的程
Spring 4.2新特性-更简单的Application Event
wiselyman
application
1.1 Application Event
Spring 4.1的写法请参考10点睛Spring4.1-Application Event
请对比10点睛Spring4.1-Application Event
使用一个@EventListener取代了实现ApplicationListener接口,使耦合度降低;
1.2 示例
包依赖
<p