Blog

一、内容概览 本篇将介绍EntityFramework(以下简称EF)CodeFirst中在SQL Server、Oracle中的不同数据关系(一对一、一对多、多对多)的配置方式及效果。 本篇主要目的用于效果演示,所以在代码在编写上无任何实际参考意义。 二、测试环境 1、程序包版本 <?xml version="1.0" encoding="utf-8"?> <packages> <package id="EntityFramework" version="6.2.0" targetFramework="net471" /> <package id="Oracle.ManagedDataAccess" version="12.2.1100" targetFramework="net471" /> <package id="Oracle.ManagedDataAccess.EntityFramework" version="12.2.1100" targetFramework="net471" /> </packages> 2、Oracle版本:Oracle 12c 标准版 3、SqlServer版本:SqlServer […]

READ MORE

一、内容概览 在搭建Hive环境中,我们对Hive有了一个初步的、表面的认识:Hive有点像一个数据库,因为它可以执行SQL脚本;它又有点像MapReduce程序,因为它的执行过程就是一个MapReduce的过程。那么Hive到底是什么?它能给我们解决哪些问题?我们为什么要用Hive?Hive又有哪些基本概念? 阅读前提:稍微了解Hadoop MapReduce概念和数据库基本知识。 二、Hive是什么 说到Hive就不得不提到针对大数据的计算模型——MapReduce:它可以将计算任务分割成多个处理单元,然后分散到许多普通服务器上,从而降低成本并提供足够的横向扩展性。 不过,还有一个问题,那就是用户如何从一个现有的数据基础架构转移到Hadoop上,而这个基础架构是基于传统关系型数据库和SQL的。对于大量的SQL用户(DBA、程序员等)来说,这个问题如何面对? Hive就因此而生。Hive提供了一种Hive查询语言(HiveQL或HQL)的SQL语言,用于查询存储在Hadoop集群中的数据。 即便是一些常见的数据运算,编写底层MapReduce程序对经验丰富的Java开发工程师来说也是非常麻烦的。而Hive可以解决这个痛点。开发或分析人员只需要集中精力关注查询本身就可以了。Hive会在底层将大多数的查询转换为MapReduce任务,这不仅简化了数据分析的操作,同时也提高了Hadoop的可扩展性。 三、Hive的使用场景 No Silver Bullet Hive最适合于数据仓库应用程序,使用这类程序进行相关的静态数据分析,不需要快速反馈结果,而且数据本身也不会经常发生变化。 Hive不是一个完整的数据库。Hive的查询时基于MapReduce任务的,而MapReduce任务的启动过程需要消耗较长的时间,所以Hive查询耗时比较严重。传统数据库秒级可以完成的查询,在Hive中可能都需要几十秒(在搭建Hive环境)的简单例子的输出结果中可以看出来。而且Hive是不支持事物的。 因此,Hive最适合数据仓库应用程序,它可以维护海量数据,并对数据进行分析挖掘,最终形成结果或分析报告等。 传统的数据仓库应用程序中,大多数是基于使用SQL的关系数据库实现的,所以Hive降低了将这些应用程序一直到Hadoop上的难度。 不过,需要注意的是与大多数关系数据库提供的SQL语言一样,HiveQL也没有完全遵守ANSI SQL标准,它和SQL Server、Oracle、MySQL的语法多少都存在差异(与MySQL语法最接近)。 四、Hive体系结构 首先从一张图来了解一下Hive的体系结构: Hive在结构上主要由三块构成:Hive服务、Hive客户端和Hive存储与计算。 4.1 Hive服务 Hive的服务有很多种(通过hive --service --help命令可查),这里只介绍一部分常用的服务。 1、前面我们直接在shell环境下操作Hive,这个shell环境就是Hive服务中的一种:CLI服务,这也是Hive启动时默认的服务。 2、Hive可以承载一个Thrift服务,允许用不同语言编写的客户端对其访问。这就是hiveserver2服务。 […]

READ MORE

一、Hadoop 搭建Hadoop伪分布式 HADOOP完全分布式搭建 HADOOP在WINDOWS开发机调式运行错误 二、Hive 搭建Hive环境 Hive基础知识和体系结构 HIVE错误整理

READ MORE

搭建Hive环境

By : -

一、内容概览 Hive是Hadoop生态系统中必不可少的一个工具,它提供了一种SQL(结构化查询语句)方言,可以查询存储在Hadoop分布式系统(HDFS)中的数据或其他和Hadoop集成的文件系统,如MapR-FS、Amazon的S3和像HBase(Hadoop数据库)和Cassandra这样的数据库中的数据。 本篇介绍如何在Hadoop集群上(这里我有一个现成的Hadoop集群环境,所以这整个过程是在Hadoop集群环境上操作的)搭建一个Hive环境并简单了解一下Hive能做什么。 二、下载安装Hive 首先在http://www.apache.org/dyn/closer.cgi/hive/下载一个Hive的二进制tar包。这里我选择的版本是2.2.0。 在/usr/local/hive位置解压tar包 打开/etc/profile在文件底部添加如下内容配置环境变量 export HIVE_HOME=/usr/local/hive export PATH=$HIVE_HOME/bin:$PATH 执行source /etc/profile使配置生效。 此时Hive就安装好了。 三、运行Hive 在运行Hive之前,让我们再执行一个命令:schematool -initSchema -dbType derby,该命令为了初始化Hive的元数据存储服务数据库。 注意,该命令和启动Hive的命令的执行都会在工作路径下生成一个metastore_db目录,所以如果在不同目录下执行该命令会产生多个metastore_db目录,这里建议测试时选择一个统一的路径。本例只适用于测试,后面会有更通用的方式介绍。 初始化metastore完成后就可以真正的启动Hive了。 3.1 Hive的shell环境 在命令行里输入hive即可启动Hive的shell环境: [root@hadoop-namenode-01 ~]# hive which: no hbase […]

READ MORE

Hive错误整理

By : -

启动Hive CLI报错: Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:614) at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java:549) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:750) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:686) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) […]

READ MORE

某日打开浏览器发现会弹出很多乱七八糟的广告,第一感觉是运营商又fangjian了。仔细看了看广告内容感觉又不太像,运营商胆子没这么大,有些sax的广告也敢放。 观察广告的顶部都有一个Countflix的标识,于是网上找了一下。说可能是安装了什么被捆绑的软件导致的。于是找了下,还真找到个不认识的软件,卸载之。重启后发现还是有广告。 网上有人说是不是DNS已被篡改。于是打开DNS配置界面发现DNS服务器那里是空的,心想,果然是DNS的问题(果然,我还是太天真了),然后把DNS给加上了。可是问题依旧。 最后在cmd下面用ipconfig /all命令打了一下发现猫腻了 起作用的DNS其实是上面两个(82.163.143.176,82.163.142.178)[流汗]。 netsh interface ip set dns "以太网" static 114.114.114.114 ipconfig /flushdns 重启后打开浏览器,再无广告。VV

READ MORE

原文地址 随着Windows Server 2016添加对Docker容器支持,大家一定会想知道Windows容器和Linux容器之间的差别。这里做一个简单的概述。 为了简单起见,我们从这两者相似点和差异点来看: 相似点 Linux和Windows上的Docker容器有以下几点类似之处: 它们都被设计用于作为应用程序的容器。 运行不依赖于虚拟机管理程序或虚拟机。 都可以通过Docker进行管理(在Windows环境下可以使用PowerShell来管理)。 它们仅支持主机操作系统支持的应用程序。也就是说Windows上的Docker只能托管Windows应用程序,而Linux上的Docker仅支持Linux应用程序。 提供了相同的可移植性和模块化功能。 差异点 以下是Docker在Windows上的不同之处: Docker仅支持特定版本的Windows(目前为Windows Server 2016和Windows 10)。相比之下,Docker可以在任何类型的基于Linux(内核不低于3.13)的操作系统上运行。 即便是在Docker支持的Windows版本中,Windows对镜像的兼容性也有更严格的要求。更多相关信息在这里。 Windows上的容器尚不支持的一些Docker的网络功能。在这里的底部有详细说明。 Windows上不支持大多数用于Linux上Docker容器编排系统。Docker Swarm是个例外。(Windows也正在开发对k8s和mesos这类容器编排引擎的支持)。 非Docker容器和Windows 值得一提的是,Docker是目前唯一与Windows兼容的主要容器平台。其他类型的容器,例如OpenVZ和LXD仍然只能在Linux上运行,并且在可预见的将来也是如此。 由于这些容器平台相对于Docker有着不同类型的使用场景,因此Windows对这些容器的支持与否并不影响我们决定是在Windows还是Linux上运行Docker。尽管如此,Docker仍是Windows上唯一的容器选项,这一事实非常重要,因为这一点突出了Windows的容器生态系统现在比Linux容器世界要小得多。

READ MORE

一、内容概览 本篇介绍如何在Windows系统上搭建SSH Server,并打通一个对Windows系统的SSH反向隧道。 二、安装SSH Server 1、在https://github.com/PowerShell/Win32-OpenSSH/releases下载对应版本的程序。 2、解压压缩包到指定目录,并以管理员权限打开PowerShell执行install-sshd.ps1脚本。若出现以下内容则表示安装成功: [SC] SetServiceObjectSecurity SUCCESS [SC] ChangeServiceConfig SUCCESS Granting SeAssignPrimaryTokenPrivilege to NT SERVICE\SSHD ... successful sshd and ssh-agent services successfully installed 若出现 无法加载文件ps1,因为在此系统中禁止执行脚本。有关详细信息,请参阅 "get-help about_signing"提示则先执行set-executionpolicy […]

READ MORE

原文地址 Like I mentioned in my post “Microsoftie Perk #9 – Access to product team devs”, it is awesome to be able to ping the guys who build the tools […]

READ MORE

1、以管理员权限打开PowerShell,输入以下命令: Install-Module -Name DockerMsftProvider -Repository PSGallery -Force 出现以下提示信息 需要使用 NuGet 提供程序来继续操作PowerShellGet 需要使用 NuGet 提供程序“2.8.5.201”或更高版本来与基于 NuGet 的存储库交互。必须在“C:\ProgramFiles\PackageManagement\ProviderAssemblies”或“C:\Users\sunkang\AppData\Local\PackageManagement\ProviderAssemblies”中提供 NuGet 提供程序。也可以通过运行'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' 安装 NuGet提供程序。是否要让 PowerShellGet 立即安装并导入 NuGet 提供程序? [Y] […]

READ MORE
Scroll Up