第五周----上课 Hbase shell

2019-10-20 09:11:57


image.png


深圳塑胶模具厂,深圳市模具厂,深圳模具厂,深圳模具,深圳塑胶模具


#hbase shell   

  进入 Hbase 的操作界面


- 创建表 :    creat  ‘表名称’ , ‘列名称1’,‘列名称2’,‘列名称n'

-添加记录:   put  ’表名称‘,’行名称‘,’列名称‘,’值‘

-查看记录: get '表名称’,‘行名称’

-删除记录: delete  ‘表名称’,‘行名称’,‘列名称’

-删除一张表: 分布式数据库需要多步完成  

                         1、  disable  '表名称’

                         2、 drop ‘表名称’

-查看所有的记录:                               scan  ’表名称‘

-查看某个表,某个列的所有数据:      scan  ’表名称‘,{’列名称‘}


一般操作:

1、  启动 Hbase     #Hbase shell

2、  看有多少内容    > list

3、  看状态               > status

4、  Hbase 的版本    > version

5、 要处理增删改查的操作:

                                                  创建           > create ‘member','member_id','address','info'

                                                  查询           > describe 'member'

     面向列族的,可以添加列族                   > alter 'member','id' 

     修改一个列族     > alter 'member',{NAME=>'member_id',method=>'delete'}                     删除一个列族     > delete 'member' ,' debugo','info:age'  

     查看列的信息     >  get 'member','debugo','info:age'

     删除整行信息     > deleteall 'member',’debugo‘

     查看整行信息     >  get  ’member','debugo' 

 查看是不是被禁用  >  is_enabled 'menber'

                                     is_disabled 'member'

 判断是不是存在表  > exists 'member'   

    删除表                 >disbale 'member'

                                   drop 'member'


9、插入数据          >  put 'member' ,'debugo','id','11'

                              >  put 'member' ,'debugo','info:age','27'

                              > put  'member'.'debugo','info:birthday','1987-04-04'

                              > put  'member'.'debugo','info:industry','it'

                              > put  'member'.'debugo','info:city','beijin'

                              .........        表              行            列族:列名称

                                              表             行            列族:


10、 统计行数      > count ‘member’

11、获取一个ID的所有数据:    > get  'member','sariel'

12、查询 一个ID 的一个列族中的所有信息    > get 'member','sariel','info‘

13、查询整个表格的所有信息   > scan  ’member'

14、扫描整个列族  scan  ‘member',{column=>'info'}  

15、指定扫描整个列            scan  ‘member',{column=>'info:birthday'}


对于 Hbase 中的    增                              删                      改                    查                        统计

                           create文件              delete记录          alter记录          list文件                  count 

                             put 记录               disable文件                                  get记录

                                                           drop文件                                   scan记录

                                                                                                             status系统

                                                                                                            version系统

                                                                                                            describe记录

                                                                                                               exists文件

 

hbase中没有rename,所以改表名要很复杂,重命名主要通过hbase的快照功能来实现。

-------------------------------------------------------------------------------------------------------------

10:30-11:15 休息       这一节: 

https://pan.baidu.com/s/1u1B8fnMgVGJK5eZdoiXpqg      下载

scala-2.11.8.msi   jdk-7windowx


安装  


image.png

JAVA 环境变量设置


image.png



下载软件, 安装到C盘   prografile /java  


目前学习 Scala  的软件, 安装和配置 


image.png


image.png

image.png


image.png

image.png




Spark  的源码, 全部都是   Scala来写的。

Scala 也是面对函数的,面对对象的。

          java  要写  200-300行 ,  而 scala 只需要 2行, 也可以调取Java的接口。


Scala 语法 :      


VAL 声明是不可变的变量,

VAR 声明是可变的变量。


DOS>      scala> val content:String = "hello world"

                           val x,y =100

                           不可变的变量。


      在 Scala中 一切都可以看作是对象。


Scala>     a+b          =======      a.+(b)

                1 to 10     =======      1.to(10)                        这里的  。  指的就是对象

                a func b   =======       a.func(b)


                val x = if (a>0) 1 else -1

                val b =if (x>0) 1 esle "error"      这个数据类型不一致, 也可以

                逻辑判断的结果赋值给变量,


                val c = if (x>0) 1 else ()           

 

               for (i <- 0  to 5 )  println(i)    这样就可以打印出来。


               for(i<- 0 unitl 10) println(i)


               for (i <- 1 to 3; j<-1 to 3 if  i!=j) {pringtln((10*i+j)+" " }    循环增加条件变量


               for (i<-1 to 10 if i%2==0)yield i


               for (i<-1 to 10)yield i%3


--------  下午   

流程控制   

     1、条件判断      val a = if (x>0) 1 else -1

                               val b = if (x>0) 1 else "error"

                               val c = if (x>0) 1 esle ()

      2、for 循环      for (i <- 0 to 5 ) println(i)

                              for  (i <- 0 until 10) println(i)

                              for (i <- 0 to 3;j <-1 to 3 if  i != j ){pringln((10*i)+j)+" "}

                              for (i <-1 to 10 if i%2==0)yield i

                              for ( i <-1 to 10) yield i%3

这些是上午学习过的, 接下来,我们学习函数

image.png

          def  fun(x:int):int = X+1            这样就定义好了函数;

          def fun(a:int,b:int=100)=a+b        默认参数的定义;

          def sum(args : int*)={

                           var result = 0  

                           for (i<-args) result +=i 

                           result

                           }


image.png


def fun2 (x:int):unit=(

println(x)


image.png


没有返回值的函数。      

def  fac(n:int):int={if n <=0)1 else n*fac(n-1)

  

递归函数, 需要指定 输入的类型  以及 结果的类型。


注意:参数类型必须声明, 返回值类型可以不声明, 函数是递归的, 这必须声明返回值类型。


def fac(n:int):int= {

      if (n<=0) 1 else n*fac(n-1)

      }


scala 函数定义规则: 

  1、以 def 开头

  2、参数类型必须指定, 

   3、返回值的类型可以不指定。 


没有定义函数名字的函数, 这是匿名函数

     (x:int)=>x+1

可以将这个没有名字的函数赋值给一个变量  

val fun = (x:int) => x+1

image.png


接下来, 定义数组 

val  arr1 = new array[int](3)    定长数组

                                                字符串数组

image.png

image.png

可以修改数组中的值

arr3(1)="storm"      可以修改数组3种的 1单元的值 


变长数组   

image.png

先要做这个 插件引入。

image.png

没有 new  ,需要括号, 有new , 不需要括号。


image.png


image.png



image.png

 image.png

image.png

image.png


image.png

image.png


增强for循环, 更加简洁

image.png

image.png


通过 yield  赋值给 e

image.png


image.png

求和 ,   排序 , 最小值 ,  取值,  



正序

image.png

倒序

image.png



image.png


映射         Key   val      

image.png

image.png

两种方法的映射

image.png



取值:

image.png

image.png



末尾追加

image.png

image.png

删除

image.png


键值对的交换   , 得到 键和值  KEY -  VAL 的前后交换

image.png

image.png


元组  , 不同类型的元素集合

image.png

image.png


生成大小写分片元组

image.png


------继续   , 面向对象的 类的定义


image.png


image.png


重载的构造器image.png


有参和无参的构造器

image.png


接下来讲   :object  

--------------------------------------------------------------------------

image.png

可以使用 APPLY 实现。

object 对象   与  apply() 方法

image.png

这个是  scala实现的 单一模式  

image.png

这个是  伴生对象和单例模式结合起来的东西


样例类和模式匹配 , 这个是 scala独立的东西, 这个是可以用于模式匹配的。

样例对象是单例的, 也可以用于模式匹配。

类似与  java 中  switch-cash 的加强版。

image.png

case class user (name: string,psw:string){}

image.png

如下方式, 可以用于搜索引擎中,  是比较简单的

image.png





Option(T)类,  理解为一个容器 

image.png

还有一些高级特性, 比如说  高阶函数, 等于是函数的函数。 比如:

def fun(f:double =>double)={

f(100)

}

fun(X:double)=>28*x

fun(sqrt_)

val fun:int => (int,int)={

x=>(x,x*2)

}

fun(100)


Val fun:(x:double)=》(double,Int)={

(x,y)=>(y,x)

}

image.png

Scala 中特有的  柯里化

image.png

例子:

def  m(x:Int)=(y:int)=>x*y


Scala 中还有  隐式转换和隐式参数


其他:

包   的引入    import      , private    都是  Scala的内容





首页
产品
新闻
联系