首页 文章 精选 留言 我的

精选列表

搜索[搭建],共10000篇文章
优秀的个人博客,低调大师

opencv 人脸识别 环境搭建---java版-----1

代码下载地址http://download.csdn.net/detail/u013378306/9656546 1.首先下载OpenCV2.4.6,下载的时候,选择windows版的。然后安装 2.其实安装的过程就是解压的过程,并没有什么安装向导之类的,安装完成后,我们最关心的是这个目录:opencv\build\java 如下图所示 注意:opencv-246.jar是需要在opencv的java类库,但是,真正的实现是opencv_java246.dll(X86和X64之分,关键看你的计算机是多少位的) 3.建立一个Java项目 4.新建一个Java类,代码如下: packagecom.njupt.zhb.test; importorg.opencv.core.CvType; importorg.opencv.core.Mat; publicclassMain{ /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub System.loadLibrary("opencv_java246"); Matm=Mat.eye(3,3,CvType.CV_8UC1); System.out.println("m="+m.dump()); } } 5.引入所需要的jar包,即:opencv-246.jar 6.设置项目的native库,即opencv_java246.dll所在的路径 7.运行结果为:

优秀的个人博客,低调大师

iOS - XMPP Openfire 服务器的搭建

前言 提前下载好相关软件,且安装目录最好安装在全英文路径下。如果路径有中文名,那么可能会出现一些莫名其妙的问题。 提前准备好的软件: jdk-8u91-macosx-x64.dmg mysql-5.7.17-macos10.12-x86_64.dmg mysql-workbench-community-6.3.9-osx-x86_64.dmg openfire_4_1_1.dmg Openfire 官网 MySQL 官网 JDK 官网 在安装配置 Openfire 或其他 xmpp 服务器前,需要先安装 MySQL 数据库。 MySQL 安装具体讲解见 iOS - MySQL 的安装配置。 1、下载安装 Openfire 在 Openfire 官网下载最新的 Mac 版本 Openfire 安装包。 下载完后双击安装包,点击 pkg 文件,在安装引导下进行傻瓜式安装。安装完成后,进入系统偏好设置,点击 Openfire 图标。 进入 Openfire 偏好设置界面。点击 Start Openfire,让 OpenFire 服务开始启动(默认是启动的),启动完毕后,我们就可以点击 Administration 下的按钮,进入服务器后台,然后会要求输入管理员账号密码。 Openfire 服务启动不了问题解决 安装好之后,第一次是可以启动 openfire 服务器的,但是电脑重启后,就再也不能启动服务器了,每次一点击 “Start Openfire”,然后加载一下,状态还是 “Start Openfire” 没变化,有时甚至还会跳出错误提示框,提示 “Could not start the Openfire server”。 解决方案如下: 1)首先需要确认是否已经安装了 Java 的运行环境,以及 JAVA jdk 是否与当前 OS 系统版本,Openfire 版本成对应,如果不是,就请先安装相匹配对应的软件。 在终端中输入 java -version,就可以查看电脑有没有安装 JAVA 运行环境。 2)如果软件,环境对应的,最终的解决办法是 打开终端,输入以下命令: // 获取 Openfire 目录的访问权限 sudo chmod -R 777 /usr/local/openfire/bin // 以超级管理员的权限运行脚本 sudo su cd /usr/local/openfire/bin // 设置 Java 的环境变量 export JAVA_HOME=`/usr/libexec/java_home` // 输出检验环境变量的值 echo $JAVA_HOME 输入上面的命令后回车,就会出现后面的这些语句 /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home 接着在终端,输入以下命令: cd /usr/local/openfire/bin // 运行 Openfire shell 脚本 ./openfire.sh 输入上面的命令后回车,就会出现后面的这些语句 Openfire 4.1.2 [2016-2-21 2:47:51] 管理平台开始监听: http://jhq0228-macbookair.local:9090 https://jhq0228-macbookair.local:9091 Successfully loaded plugin 'admin'. 执行完这些命令之后,服务器就可以启动了,每次开机后,都启动不了的话,都试下这个方法。 2、配置 Openfire 在 Openfire 偏好设置界面中,点击 Open Admin Console,进入 web 配置页面,开始配置 Openfire 服务器。 2.1 选择语言 简体中文 2.2 服务器设置 域:如果只是本地机器上登录,可以设置为本地的域 127.0.0.1。需要远端登录的话,设置为相应的 IP 地址或域名即可。此处设置为 Mac 的机器名。 Server Host Name (FQDN):服务器名,不能为 IP 地址。 2.3 数据库设置 1、选择数据库 如果要设置外部数据库(推荐,比如:MySQL),选择标准数据库连接。 前期 MySQL 数据库准备工作 MySQL 安装具体讲解见 iOS - MySQL 的安装配置。 1)设置 /usr/local/openfire 文件夹的访问权限为可读写 方法1:在 finder 中前往文件夹 /usr/local/,右键 openfire 文件夹,显示简介,点击如图右下角中的锁图标解锁,并设置权限为可以读写。 方法2:打开终端,输入如下命令 $ sudo chmod 777 /usr/local/openfire 其中 777 表示授权可读写权限,000 表示无访问权限。 2)在终端中登陆 MySQL,输入以下命令,然后输入数据库的 root 密码登录 $ mysql -u root -p 回车后,终端输出 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 946 Server version: 5.7.17 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 3)在终端输入以下命令,创建数据库 openfire create database openfire; 回车后,终端输出 Query OK, 1 row affected (0.03 sec) 4)在终端输入以下命令,导入 openfire 资源文件夹 resources/database 下的数据表 use openfire; source /usr/local/openfire/resources/database/openfire_mysql.sql 在终端出现一排导入过程 5)在终端输入以下命令,刷新权限 flush privileges; 回车后,终端输出 Query OK, 0 rows affected (0.07 sec) 6)在终端输入以下命令,退出 MySQL exit 2、设置数据库连接 设置标准数据库连接 1)数据库驱动选项 选择 MySQL,前提是已安装 MySQL。 2)JDBC 驱动程序类 默认不变,默认为: com.mysql.jdbc.Driver 3)数据库 URL 形式如下: jdbc:mysql://你的主机名:端口号/数据库名称 jdbc:mysql://[host-name]:3306/[database-name]?rewriteBatchedStatements=true [host-name] :主机名 [database-name]:数据库名称 这里设置为: jdbc:mysql://localhost:3306/openfire 其中主机名 [host-name] 改为 localhost。 其中数据库名称 [database-name] 改为 openfire。 解决数据库字符编码问题,可以在后面加 ?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8 最终的 url 形式是 jdbc:mysql://localhost:3306/openfire?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8 注意:前提是已存在一个名为 openfire 的数据库,否则会报如下错误,连接配置不成功。openfire 数据库的创建具体见前面所讲的 “前期 MySQL 数据库准备工作”。 The Openfire database schema does not appear to be installed. Follow the installation guide to fix this error. 4)用户名和密码 这里的用户名密码,是访问 MySQL 数据库时使用的帐号:root,和安装 MySQL 设置的 root 密码。 2.4 特性设置 如果不打算使用 LDAP,则保持默认设置即可。 特性设置时出错问题解决 解决方法 在 OpenFire 偏好设置中重启 OpenFire,然后重新进入 OpenFire web 配置页面,重新开始配置 Openfire 服务器即可。 2.5 管理员账户设置 可以随便填写一个管理员邮箱,输入要设置的密码即可。管理员账号默认为 "admin",如果不设置密码,则默认密码为 "admin"。 自定义管理员账户名方法 在终端输入以下命令,输入数据库的 root 密码,登陆具体的数据库(openfire) mysql -u root -p openfire 删除表 “ofUser” 中的 admin 帐户 delete from ofUser where username = 'admin'; 创建自定义管理员(用户名:qianchia,密码:123456) insert into ofUser (username, plainPassword, encryptedPassword, name, email, creationDate, modificationDate) values('qianchia','123456','123456','Administrator','qianchia@icloud.com','0','0'); 查看用户 select * from ofUser; 如果可以往数据库里插入用户但是在用户摘要却没有数据,这是因为 openfire 的数据库驱动包太旧了,而安装的数据库太新了,把 openfire 里的驱动包换成新的就行了,路径:/usr/local/openfire/lib。 2.6 登陆管理控制台 完成安装后可以输入用户名和密码登陆管理控制台 默认的管理员帐号是 “admin”,默认管理员密码 “admin”,如果上面设置了新密码,则管理员密码是新密码。如果重设了用户名,必须重启 openfire 服务器。 无法登录管理控制平台问题解决 安装 Openfire 后 admin 无法登录管理控制平台。登录时提示:Login failed:make sure your username and password are correct and that you’re an admin or moderator。 解决方案如下: 1)使用 MySQL 查看工具进入数据库,进入表 “ofuser”,将该表清空,然后执行该 SQL INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate) VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0'); 2)关闭 Openfire 服务,就是从其控制台 stop 然后再 start,再用用户名:admin,密码:admin 登录即可。 每次重启 Mac 电脑都需要重新配置 Openfire 问题解决 解决方法: 打开 /usr/local/openfire/conf/ 文件夹。 将 openfire.xml 和 security.xml 两个文件的权限设置为读与写。 重新完成 Openfire 配置。 3、卸载 Openfire 方法 1、卸载之前首先要停止 Openfire 服务。 系统偏好中点击 Openfire 图标,如下图 在 Openfire 偏好设置界面中,点击 Stop Openfire。 2、删除 Openfire 文件。 在终端里,输入以下三条命令执行即可。 sudo rm -rf /Library/PreferencePanes/Openfire.prefPane 以上执行后需要输入管理员密码。 sudo rm -rf /usr/local/openfire sudo rm /Library/LaunchDaemons/org.jivesoftware.openfire.plist 4、测试服务器 4.1 添加测试账户 服务器配置完成之后,我们可以创建几个用户,然后客户端可以使用这些用户信息登录,互相传输消息。 4.2 XMPP 客户端设置与使用 有许多通信聊天客户端可以支持 XMPP 协议,比如,Mac 电脑就自带了一个 “信息” app,“信息” app 就支持 jabber 通信协议(XMPP 的别名)。 打开 Mac 的 “信息” app,点击菜单 信息 -> 添加账户,选择其他 “信息” 账户... 选择 jabber 账户类型,填写相关信息 账户类型:Jabber 用户名:上边添加的测试账户名,格式必须为:名称@openfire服务器名称 密码:用户名对应的密码 服务器:openfire 服务器地址,可以使用自动查找服务器和端口 端口:openfire 服务器客户端端口 然后,提示验证证书,选择继续。 登录成功。 登录成功后在 openfire 服务器端可以看到用户的登录状态。

优秀的个人博客,低调大师

CentOS下LVS DR模式详细搭建过程

1、LVS环境组网 由于是使用的VM环境,自己PC当作客户机(即公网地址),调度器与服务器都是VM中虚拟机,所以客户和所有服务器之间都是物理直接相连网络,逻辑拓扑图如下: 2、ipvsadm安装前准备 外部IP地址 内部IP地址 角色 10.211.55.16/24 192.168.1.3/24 LVS调度器(虚拟机) 10.211.55.15/24 192.168.1.4/24 RS1(虚拟机) 10.211.55.14/24 192.168.1.5/24 RS2(虚拟机) 10.211.55.19/24 无 客户机(自己电脑) 注:实际应用中RS1 RS2没有外部地址,当前环境中,没有物理双网卡环境,都采用一个网卡配置多个IP地址。 例: [root@LVS1~]#cp/etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-eth0:0 [root@LVS1~]#vi/etc/sysconfig/network-scripts/ifcfg-eth0:0#修改后保存退出 DEVICE=eth0:0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.3 NETMASK=255.255.255.0 [root@LVS1~]#/etc/init.d/networkrestart 3、httpd与ipvsadm下载 1)在各服务器上关闭防火墙和修改主机名: [root@LVS1~]#serviceiptablesstop [root@LVS1~]#hostnameLVS1 [root@RS1~]#serviceiptablesstop [root@RS1~]#hostnameRS1 [root@RS2~]#serviceiptablesstop [root@RS2~]#hostnameRS2 2)在RS1 RS2上安装httpd服务 [root@RS2~]#yuminstallhttpd&ndash;y [root@RS2~]#/etc/init.d/httpdstart [root@RS2~#ps-ef|grephttpd [root@RS1~]#yuminstallhttpd&ndash;y [root@RS1~]#/etc/init.d/httpdstart [root@RS1~#ps-ef|grephttpd<==查看httpd服务是否起来 [root@RS1~]#cat/etc/httpd/conf/httpd.conf|grepDocumentRoot<==查找系统站点目录路径 #DocumentRoot:Thedirectoryoutofwhichyouwillserveyour DocumentRoot"/var/www/html" #ThisshouldbechangedtowhateveryousetDocumentRootto. #DocumentRoot/www/docs/dummy-host.example.com [root@RS1~]#echo"RS1">/var/www/html/index.html [root@RS2src]#echo"RS2">/var/www/html/index.html Httpd服务测试: 3)下载ipvsadm wgethttp://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz ln 我所使用的源包下载目录/usr/local/src 我的LVS环境: [root@LVS1~]#yum-yinstallkernel-develgccc++ [root@RS1src]#cat/etc/redhat-release CentOSrelease5.8(Final) [root@RS1src]#uname-rm 2.6.18-308.el5x86_64 ipvsadm-1.26对内核有要求,要求内核版本在2.6.28及以后的版本,如果符合了系统环境,还要安装依赖包yum install libnlpopt-y。 我的内核版本不满足,使用ipvsadm-1.24。 [root@LVS1src]#tar-zxfipvsadm-1.24.tar.gz [root@LVS1src]#ln-s/usr/src/kernels/2.6.18-348.12.1.el5-x86_64/usr/src/linux<==编译有使用的路径为/usr/src/linux,可在Makefile中查看,如果不做链接,会编译失败 [root@LVS1src]#ll/usr/src/ total16 drwxr-xr-x2rootroot4096May112011debug drwxr-xr-x3rootroot4096Aug503:53kernels lrwxrwxrwx1rootroot43Aug503:56linux->/usr/src/kernels/2.6.18-348.12.1.el5-x86_64<==要使用ll/usr/src/查看,如果软链接一闪一闪的,代表链接失败 [root@LVS1src]#cdipvsadm-1.24 [root@LVS1ipvsadm-1.24]#make&&makeinstall<==如果编译失败,请按上面步骤一步一步排错。 [root@LVS1ipvsadm-1.24]#lsmod|grepip_vs<==查看内核模块是否有ipvsadm [root@LVS1ipvsadm-1.24]#ipvsadm IPVirtualServerversion1.2.1(size=4096) ProtLocalAddress:PortSchedulerFlags ->RemoteAddress:PortForwardWeightActiveConnInActConn 还有一种加载ipvsadm方法,用modprobe ip_vs [root@LVS1 ipvsadm-1.24]# lsmod |grep ip_vs <==查看内核模块,有代表ipvsadm加载进内核当中,此时LVS安装完毕ip_vs 122113 0 4、LVS负载均衡配置 1)配置VIP和DIP IP配置参考步骤2安装准备 [root@LVS1~]#ifconfigeth010.211.55.16netmask255.255.255.0#VIP [root@LVS1~]#ifconfigeth0:1192.168.1.3netmask255.255.255.0#DIP 2)添加真实服务器 [root@LVS1~]#ipvsadm&ndash;C<==手工清空原来表内容 [root@LVS1~]#ipvsadm--set30560<==设置连接超时值 [root@LVS1~]#ipvsadm-A-t10.211.55.16:80-swrr-p20<==-A添加地址,-t指定VIPTCP端口,-s指定调度算法–p会话保持时间 [root@LVS1~]#ipvsadm-L-n<==查看表内容,添加了一组VIP地址和端口 IPVirtualServerversion1.2.1(size=4096) ProtLocalAddress:PortSchedulerFlags ->RemoteAddress:PortForwardWeightActiveConnInActConn TCP10.211.55.16:80wrrpersistent20 [root@LVS1~]#ipvsadm-a-t10.211.55.16:80-r192.168.1.4:80-g-w1<==-a指定真实服务器,-tlvs上VIP,-r真实服务器ip及端口,-w权重值,-g先择DR模式(-m为NAT模式) [root@LVS1~]#ipvsadm-a-t10.211.55.16:80-r192.168.1.5:80-g-w1 [root@LVS1~]#ipvsadm-L-n<==查看表内容,添加了两台负载转发的真实服务器 IPVirtualServerversion1.2.1(size=4096) ProtLocalAddress:PortSchedulerFlags ->RemoteAddress:PortForwardWeightActiveConnInActConn TCP10.211.55.16:80wrrpersistent20 ->192.168.1.4:80Route100 ->192.168.1.5:80Route100 如果添加服务器地址写错了,可用如下命令删除,即大A添加改为大D删除,小a添加改为小d删除 ipvsadm&ndash;D&ndash;t10.211.55.16:80&ndash;swrr ipvsadm&ndash;d&ndash;t10.211.55.16:80&ndash;r192.168.1.4:80 5、真实WEB服务器配置及arp抑制 [root@RS1~]#ifconfigeth0|grep"inetaddr"<==此地址用来自己电脑用CRT软件登陆设备,同时也用来发送arp请求客户机MAC(因为是直接返回页面给客户机,而当前网络是同一物理网段,必须同网段才正常)。 inetaddr:10.211.55.15Bcast:10.211.55.255Mask:255.255.255.0 [root@RS1~]#ifconfigeth0:0192.168.1.4netmask255.255.255.0<==配置内部IP地址 [root@RS1~]#ifconfiglo10.211.55.16netmask255.255.255.255<==每台真实服务器都需要配置VIP 为什么要绑定VIP呢?因为DR模式原理是LVS调度器修改mac地址为真实服务器地址,报文的目的IP还是VIP没修改,,网卡只会把目的MAC和目的IP都是自己的报文上送CPU,所以真实服务器上必须配置VIP! 为什么使用lo口呢?因为lo口为本地环回口,防止本地局域网IP地址冲突! [root@RS2src]#ifconfieth0|grep"inetaddr"<==此地址用来自己电脑用CRT软件登陆设备,同时也用来发送arp请求客户机MAC(因为是直接返回页面给客户机,而当前网络是同一物理网段,必须同网段才正常)。 inetaddr:10.211.55.14Bcast:10.211.55.255Mask:255.255.255.0 [root@RS2src]#ifconfigeth0:0192.168.1.5netmask255.255.255.0<==配置内部IP地址 [root@RS2src]#ifconfiglo10.211.55.16netmask255.255.255.255 此时配置完成,只是测试时出现一个问题,再次登陆CRT中 10.211.55.16地址时,登陆到RS1上去了,再刷新,登陆到RS2上去了。怎么解决呢? 通过分析,得出,访问10.211.55.16时,会发送arp请求10.211.55.16的mac,而这个网络中有3个10.211.55.16地址,此时,那谁给的arp回应到客户机,访问的就是谁了。如果RS1的arp回应先到,就访问的RS1了 解决方法: 抑制ARP响应 该抑制只在真实服务器上配置 [root@RS1~]#echo"1">/proc/sys/net/ipv4/conf/lo/arp_ignore [root@RS1~]#echo"2">/proc/sys/net/ipv4/conf/lo/arp_announce [root@RS1~]#echo"1">/proc/sys/net/ipv4/conf/all/arp_ignore [root@RS1~]#echo"2">/proc/sys/net/ipv4/conf/all/arp_announce [root@RS2src]#echo"1">/proc/sys/net/ipv4/conf/lo/arp_ignore [root@RS2src]#echo"2">/proc/sys/net/ipv4/conf/lo/arp_announce [root@RS2src]#echo"1">/proc/sys/net/ipv4/conf/all/arp_ignore [root@RS2src]#echo"2">/proc/sys/net/ipv4/conf/all/arp_announce 1 2都代表什么内容,可在最后附录中查看,也可自己网上搜索 显示的值是RS1,则此时该链接是分配到192.168.1.4上 我们使用的是wrr调度算法,该算法中,谁的权重值高,会优先分配给谁 查看配置,发现权重值一样 [root@LVS1~]#ipvsadm-L-n IPVirtualServerversion1.2.1(size=4096) ProtLocalAddress:PortSchedulerFlags ->RemoteAddress:PortForwardWeightActiveConnInActConn TCP10.211.55.16:80wrrpersistent20 ->192.168.1.4:80Route100 ->192.168.1.5:80Route100 由于有会话保持功能,接下来修改权重值 [root@LVS1~]#ipvsadm-d-t10.211.55.16:80-r192.168.1.5:80<==删除原来配置 [root@LVS1~]#ipvsadm-a-t10.211.55.16:80-r192.168.1.5:80-g-w2<==重新配置权重值为2 [root@LVS1~]#ipvsadm-L-n IPVirtualServerversion1.2.1(size=4096) ProtLocalAddress:PortSchedulerFlags ->RemoteAddress:PortForwardWeightActiveConnInActConn TCP10.0.0.30:80wrrpersistent20 ->192.168.1.5:80Route200 ->192.168.1.4:80Route100 再次进行测试: 7、附:arp抑制参数 arp响应限制 1)arp_ignore: 定义对目标地址为本地IP的ARP询问不同的应答模式0 0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求 1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求 2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内 3 - 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应 4-7 - 保留未使用 8 -不回应所有(本地地址)的arp查询 2)arp_announce: 对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口 0 - (默认) 在任意网络接口(eth0,eth1,lo)上的任何本地地址 1 -尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理. 2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.

优秀的个人博客,低调大师

Hive基本原理及环境搭建

今天我主要是在折腾这个Hive,早上看了一下书,最开始有点凌乱,后面慢慢地发现,hive其实挺简单的,以我的理解就是和数据库有关的东西,那这样的话对我来说就容易多啦,因为我对sql语法应该是比较熟悉了,而这个是HQL的,其实很多都差不多。先来看一下Hive的基本介绍: 一、Hive基本原理 hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 Hive将元数据存储在数据库(RDBMS)中,比如MySQL、Derby中。Hive有三种模式连接到数据,其方式是:单用户模式,多用户模式和远程服务模式。(也就是内嵌模式 、本地模式、远程模式)。 1.1 Hive体系结构: Hive体系结构图:主要分为:用户接口、Thrift服务器、元数据存储、解析器、Hadoop 1.2 Hive数据类型 Hive的存储是建立在Hadoop文件系统之上的,它本身没有专门的数据存储格式,其主要包括四类数据模型: 表(Table) 分区(Partition) 桶(Bucket) 外部表(External Table) Hive的内置数据类型可以分为两大类:(1)、基础数据类型;(2)、复杂数据类型。其中,基础数据类型包括:TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY,TIMESTAMP,DECIMAL,CHAR,VARCHAR,DATE。 1.3Hive的执行流程要点 操作符(Operator)是Hive的最小处理单位; 每个操作符处理代表HDFS操作或MR作业; 编译器把Hive SQL转换成一组操作符; Hive通过ExecMapper和ExecReducer来执行MapReduce任务; 执行MapReduce时有两种模式:本地模式和分布式模式; 常见的Hive操作符(部分)如下: 1.4 Hive的HQL操作 hive基本的运行操作其实和sql差不多,例如: select u.name, o.orderid from order o join user u on o.uid = u.uid; select dealid, count(distinct uid), count(distinct date) from order group by dealid; 简单Hive表语句: create table student ( name string, sex string, age int ); 二、Hive基本配置 1、从apache官网的hadoop找到hive,目前最新版本是2.0.1,我下的就是这个,http://hive.apache.org/downloads.html, 2、下载mysql驱动,目前是5.1.38的 ,我已经把这需要的两个整理好一个压缩包了,可以通过以下链接下载:(我后续贴出) 3、分别解压到你需要的目录中,我是放置在/home/admin1/下载/hive-2.0.1中的,把mysql驱动也放到hive的这个lib包中,然后在hive-2.0.1/conf中对以下文件进行配置: 新建一个文件hive-env.sh 把里面的目录改成你的hadoop放置的目录就可以了。 export HIVE_HOME=/home/admin1/下载/hive-2.0.1 export PATH=$PATH:$HIVE_HOME/bin HADOOP_HOME=/home/admin1/下载/hadoop-2.5.2 export HIVE_CONF_DIR=/home/admin1/下载/hive-2.0.1/conf export HIVE_AUX_JARS_PATH=/home/admin1/下载/hive-2.0.1/lib 还需要新建一个hive-site.xml: 这里我用的是mysql的账号和密码来配置的,其他的你也可以参照配置。 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <!--<value>jdbc:derby:;databaseName=metastore_db;create=true</value>--> <value>jdbc:mysql://localhost:3306/hive?=createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBCmetastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <!--<value>org.apache.derby.jdbc.EmbeddedDriver</value>--> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBCmetastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> <description>username to use against metastoredatabase</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>a</value> <description>password to use against metastoredatabase</description> </property> </configuration> 启动:在/home/admin1/下载/hive-2.0.1中执行: bin/hive 若无法初始化,则: bin/schematool -dbType mysql -initSchema 在hive2.0以上版本都需要initSchema一下,否则会报错,我也是因为这个问题折腾了好几个小时,最后发现很简单就解决了。 最后说一下的就是在安装mysql的时候,你可以直接用ubuntu里面的uk软件下载就可以了,在里面搜索mysql,然后下载mysql的服务器,客户端和工作平台就可以了,这里不再重复啰嗦了,就是需要在控制台创建一下新用户: mysql -uroot create user 'hive' identified by 'a'; create database hive; grant all privileges on *.* to 'hive'@'%' identified by 'a'; flush privileges 然后可以通过hive账号进行登陆就可以了, mysql -u hive -p 然后输入密码hive就成功登陆,把这个登陆信息配置到hive-site.xml中就可以了。 接下来就可以愉快的进行hive的使用了,创建表等。记得要把hadoop的服务打开哦 , sbin/start-all.sh 总结:今天遇到的两个主要问题就是,1:bin/hive后一直报错,最后初始化之后就可以了。2、在linux中的sublim-text无法输入中文,且无法下载gpk解决,无法编译sublime_imfix.c,后来通过在github上面发现已经编译好的库,然后导入,经过一系列复杂的操作最后成功解决了这个问题。找对方法,找对工具。

优秀的个人博客,低调大师

ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程

环境:OS X 10.10.5 + JDK 1.8 步骤: 一、下载ELK的三大组件 Elasticsearch下载地址: https://www.elastic.co/downloads/elasticsearch (目前最新版本:2.1.1) Logstash下载地址:https://www.elastic.co/downloads/logstash(目前最新版本:2.1.1) Kibana下载地址:https://www.elastic.co/downloads/kibana(目前最新版本:4.3.1) 下载后将其解压到某个目录即可,本文中的解压目录为: ~/app/elasticsearch-2.1.1 ~/app/logstash-2.1.1 ~/app/kibana-4.3.1-darwin-x64 注:这3个组件相互之间的关系及作用如下: Logstash(收集服务器上的日志文件) --》然后保存到 ElasticSearch(搜索引擎) --》Kibana提供友好的web界面(从ElasticSearch读取数据进行展示) 二、启动elasticsearch 2.1 进入elasticsearch目录\bin ./elasticsearch 顺利的话,启动成功后,在浏览器里输入http://localhost:9200/ 应该能看到类似下面的输出: 1 { 2 "name" : "Atalanta", 3 "cluster_name" : "elasticsearch", 4 "version" : { 5 "number" : "2.1.1", 6 "build_hash" : "40e2c53a6b6c2972b3d13846e450e66f4375bd71", 7 "build_timestamp" : "2015-12-15T13:05:55Z", 8 "build_snapshot" : false, 9 "lucene_version" : "5.3.1" 10 }, 11 "tagline" : "You Know, for Search" 12 } 2.2 安装kopf插件 先按Ctrl+C停止elasticsearch,接下来准备安装插件,elasticsearch有大量插件资源,用于增加其功能,bin目录下,输入 ./plugin list 可以查看当前安装的插件列表,我们刚刚全新安装,输出的是一个空列表,继续输入 ./plugin install lmenezes/elasticsearch-kopf 将会联网安装kopf插件,安装完成后,再次用./plugin list确认下: Installed plugins in /Users/yjmyzz/app/elasticsearch-2.1.1/plugins: - .DS_Store - kopf 如果输出上述类似,表明kopf安装成功。 然后重启elasticsearch,浏览器里输入http://localhost:9200/_plugin/kopf,将会看到类似下面的界面,可以很直观的看到elasticsearch的一些运行状况 以上操作都ok后,建议Ctrl+C关掉,改用nohup ./elasticsearch & 将其做为后台进程运行,以免退出。 三、logstash的启动与配置 3.1 新建索引配置文件 ~/app/logstash-2.1.1/bin 下 mkdir conf vi conf/logstash-indexer.conf 内容如下: 1 input { 2 file { 3 path => ["/var/opt/log/a.log","/var/opt/log/b.log"] 4 } 5 } 6 7 output { 8 elasticsearch { hosts => ["localhost:9200"] } 9 stdout { codec => rubydebug } 10 } 上面几个步骤的意思就是创建一个名为logstash-indexer.conf的配置文件,input{file{...}}部分指定的是日志文件的位置(可以多个文件),一般来说就是应用程序log4j输出的日志文件。output部分则是表示将日志文件的内容保存到elasticsearch,这里hosts对应的是一个数组,可以设置多个elasticsearch主机,相当于一份日志文件的内容,可以保存到多个elasticsearch中。 至于第9行的stdout,则表示终端的标准输出,方便部署时验证是否正常运行,验证通过后,可以去掉。 3.2 启动 继续保持在logstash的bin目录下,输入 ./logstash -f conf/logstash-indexer.conf 稍等片刻,如果看到Logstash startup completed,则表示启动成功。然后另开一个终端窗口,随便找个文本编辑工具(比如:vi),向/var/opt/log/a.log里写点东西,比如:hello world之类,然后保存。观察logstash的终端运行窗口,是否有东西输出,如果有以下类似输出: 1 { 2 "message" => "hello world", 3 "@version" => "1", 4 "@timestamp" => "2016-01-08T14:35:16.834Z", 5 "host" => "yangjunmingdeMacBook-Pro.local", 6 "path" => "/var/opt/log/a.log" 7 } 说明logstash工作正常,此时浏览http://localhost:9200/_search?pretty 也应该能看到一堆输出,表明elasticsearch接收到logstash的数据了。 四、kibana的配置及启动 4.1 修改配置文件 ~/app/kibana-4.3.1-darwin-x64/config 下有一个配置文件kibana.yml,大概在12行的位置,改成下面这样: 1 # The Elasticsearch instance to use for all your queries. 2 elasticsearch.url: "http://localhost:9200" 即:指定elasticsearch的访问位置 4.2 启动 ~/app/kibana-4.3.1-darwin-x64/bin 下,输入: ./kibana 注:如果启动不成功,请检查版本是否为4.3.1,kibana必须与elasticsearch的版本匹配,一般说来,都从官网下载最新版即可。 启动完成后,在浏览器里输入http://localhost:5601/ 即可看到kibana界面,首次运行,会提示创建index,直接点击Create按钮即可。 然后,就能看到类似下面的界面了: 参考文章: http://baidu.blog.51cto.com/71938/1676798?utm_source=tuicool&utm_medium=referral https://www.elastic.co/products http://www.cnblogs.com/yjf512/p/4199105.html http://kibana.logstash.es/content/

优秀的个人博客,低调大师

storm实时流式计算框架集群搭建过程

http://blog.csdn.net/comaple/article/details/7896167 这几天在其他同事的帮助下,调研了twitter的开源流式计算框架storm的使用,下面分享一下storm集群的安装配置过程。以作备忘之用。 我的实验机器为:195和196 如果转载请注明出处:comaple的博客 首先:安装依赖包 1, ZeroMQ 2.1.7 2, JZMQ 3, Java 4, Python 5, Unzip 这里只需要安装1,2就可以了。下面是遇到的一些问题: 安装zeroMQ 下载zeroMQ2.1.7 http://www.zeromq.org/area:download 解压:tar –xvf zeromq-2.1.7.tar.gz Cd 到bin目录: ./autogen.sh 如果没有找到configure文件时要运行这一步。 ./configure configure: error: cannot link with -luuid, install uuid-dev. 运行时如果报这个错解决方案如下: yum install uuid-dev 提示找不到该依赖包 yum install uuid* 直接用* ok ./configure 再次运行configure还是报错 configure: error: cannot link with -luuid, install uuid-dev.上网搜索可能是还缺另外一个包 yum install e2fsprogs* ok make install 安装JZMQ a)下载jzmq.zip https://github.com/nathanmarz/jzmq b)Cd到bin目录./autogen.sh c)./configure d) make install 安装storm集群 配置说明:10.10.249.195:nimbus 10.10.249.196: supervisor Storm集群需要zookeeper集群的支持所以应该先安装zookeeper集群。再配置storm集群,下面是storm集群的配置: 10.10.249.195上的配置: a)下载storm-0.7.4.zip https://github.com/nathanmarz/storm/downloads b)解压后修改conf/storm.yaml文件, storm.zookeeper.servers: - "10.10.249.195" - "10.10.249.196" c)# nimbus.host:"nimbus" 这个不用改,nimbus负责提交任务,分配任务。相当于namenode节点。 配置好以后到bin目录下: ./storm nimbus 启动storm主节点服务 ./storm ui 启动storm监控页面:监控地址:http://hostname:8080 10.10.249.196上的配置: 1,修改storm.yaml 文件: storm.zookeeper.servers: -"10.10.249.195" -"10.10.249.196" nimbus.host: "10.10.249.195" #这个是storm将要启动几个本地work,一个端口对应一个work。 supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 2,启动supervisor ./storm supervisor 提交任务: 10.10.249.195上面: ./storm jar stormWork.jar SearchKeywordTopNTopology"word-count" 这里有用到的jar文件大家可以试一试:stormWork.jar 监控storm运行情况:

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Eclipse

Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。