<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[千里冰封]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dingyuanpu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dingyuanpu]]></copyright><item><title><![CDATA[mysql打开远程连接]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52783099</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52783099</guid><author>dingyuanpu</author><pubDate>Mon, 10 Oct 2016 23:31:40 +0800</pubDate><description><![CDATA[1.     使用
        GRANT ALL PRIVILEGESON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
         命令可以更改远程连接的设置。





2.     使用
        flush privileges;
        命令刷新刚才修改的权限，使其生效。]]></description><category></category></item><item><title><![CDATA[Phoenix4.8与Hive整合]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52694733</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52694733</guid><author>dingyuanpu</author><pubDate>Wed, 28 Sep 2016 22:45:03 +0800</pubDate><description><![CDATA[站位]]></description><category></category></item><item><title><![CDATA[Phoenix4.8整合Spark]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52623655</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52623655</guid><author>dingyuanpu</author><pubDate>Thu, 22 Sep 2016 16:05:43 +0800</pubDate><description><![CDATA[本文使用SparkSQL shel操作phoenix
通过phoenix提供的包来操作hbase比直接使用jdbc的方式更高效（因为比jdbc的方式更细粒度化的调度）


1、在phoenix中建表
CREATE TABLE TABLE1 (ID BIGINT NOT NULL PRIMARY KEY, COL1 VARCHAR);
UPSERT INTO TABLE1 (ID, COL]]></description><category></category></item><item><title><![CDATA[Phoenix4.8安装]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52618172</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52618172</guid><author>dingyuanpu</author><pubDate>Thu, 22 Sep 2016 10:01:30 +0800</pubDate><description><![CDATA[环境：HDP-2.3.4、HBase1.1.2


HDP自带的phoenix4.4版本有些问题，比如命令行中表显示不全，本文安装的是phoenix4.8


1、安装
按照官方文档进行安装，参见：http://phoenix.apache.org/installation.html
1）下载phoenix-xx-bin.tar
2）讲phoenix-xx-server.jar拷]]></description><category></category></item><item><title><![CDATA[scala进阶32-用for实现map、flattop、filter]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52433264</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52433264</guid><author>dingyuanpu</author><pubDate>Sun, 04 Sep 2016 16:55:09 +0800</pubDate><description><![CDATA[object For_Advanced {


  def map1[A, B](list: List[A], f: A => B): List[B] =
    for(element <- list) yield f(element)

  def flatMap1[A, B](list: List[A], f: A => List[B]): List[B] =
    for(x <- li]]></description><category></category></item><item><title><![CDATA[scala进阶31-使用for做查询]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52433134</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52433134</guid><author>dingyuanpu</author><pubDate>Sun, 04 Sep 2016 16:36:11 +0800</pubDate><description><![CDATA[case class Book(title: String, authors: List[String])

object For_Query {
  def main(args: Array[String]): Unit = {
    val books: List[Book] = List (
      Book("book1", List("a", "b")),
      Book("]]></description><category></category></item><item><title><![CDATA[scala进阶30-for的生成器、定义、过滤器]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52432860</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52432860</guid><author>dingyuanpu</author><pubDate>Sun, 04 Sep 2016 15:57:23 +0800</pubDate><description><![CDATA[case class Person(name: String, isMale: Boolean, children: Person*)

object For_expressive {
  def main(args: Array[String]): Unit = {
    val lauren = Person("Lauren", false)
    val rocky = Person("]]></description><category></category></item><item><title><![CDATA[scala进阶29-for的强大表达力]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52432678</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52432678</guid><author>dingyuanpu</author><pubDate>Sun, 04 Sep 2016 15:33:02 +0800</pubDate><description><![CDATA[case class Person(name: String, isMale: Boolean, children: Person*)

object For_expressive {
  def main(args: Array[String]): Unit = {
    val lauren = Person("Lauren", false)
    val rocky = Person("]]></description><category></category></item><item><title><![CDATA[scala进阶28-实现List高效遍历]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52358238</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52358238</guid><author>dingyuanpu</author><pubDate>Tue, 30 Aug 2016 00:50:46 +0800</pubDate><description><![CDATA[object ListTest {
  def main(args: Array[String]): Unit = {
    val list = List(1, 3, 4, 5)
    increment(list)
    increment_MoreEffective(list)
    increment_MostEffective(list)
  }

  /**
    * 通过模]]></description><category></category></item><item><title><![CDATA[Scala进阶27-List中的上界、下界、逆变、协变]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52358134</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52358134</guid><author>dingyuanpu</author><pubDate>Tue, 30 Aug 2016 00:20:51 +0800</pubDate><description><![CDATA[abstract class Big_Data
class Hadoop extends Big_Data
class Spark extends Big_Data

/**
  * ::是中值表达式
  * def ::[B >: A] (x: B): List[B] =
  * new scala.collection.immutable.::(x, this)
  * A是以B为上界的，或者]]></description><category></category></item><item><title><![CDATA[scala进阶26-链式操作的背后]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52332514</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52332514</guid><author>dingyuanpu</author><pubDate>Fri, 26 Aug 2016 23:06:47 +0800</pubDate><description><![CDATA[import sun.awt.AWTIcon32_java_icon24_png

object Scala
class Java1

/**
  * 当子类创建对象是,调用method1,this即为子类对象
  * 因此,调用method1后可以调用method2,实现了链式操作
  */
class JVM {
  def method1: this.type = this
}
class ]]></description><category></category></item><item><title><![CDATA[scala进阶25-获取类型（类、对象、object、trait)]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52319903</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52319903</guid><author>dingyuanpu</author><pubDate>Fri, 26 Aug 2016 00:17:31 +0800</pubDate><description><![CDATA[import scala.reflect.runtime.universe._

class Spark
trait Hadoop
object Flink
class Java {
  class Scala
}

/**
  * 实例获取类用getClass
  * 类获取用classOf
  */
object Type_Advanced {
  def main(args: Array[S]]></description><category></category></item><item><title><![CDATA[scala进阶24-提取器与模式匹配]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52319483</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52319483</guid><author>dingyuanpu</author><pubDate>Thu, 25 Aug 2016 23:22:40 +0800</pubDate><description><![CDATA[/**
  * 定义析构器(解构器)
  * 析构的时候unapply回被调用
  * 传入的是要匹配的对象,返回的是要匹配出来的具体内容(解构后的元素)
  */
object :> {
  def unapply[A](list: List[A]) = {
    Some((list.init, list.last))//init是最后一个元素之前的元素
  }
}

object Extr]]></description><category></category></item><item><title><![CDATA[scala进阶24-赋值语句与模式匹配]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52319336</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52319336</guid><author>dingyuanpu</author><pubDate>Thu, 25 Aug 2016 23:02:15 +0800</pubDate><description><![CDATA[object Assinment_Internals {
  def main(args: Array[String]): Unit = {
    var a@b = 1000 //a是别名,b是个常量(a被绑定到b上),背后是模式匹配完成的
    b += 1 //a = 1000, b = 1001
    println("a = " + a + ", b = " + b)

    v]]></description><category></category></item><item><title><![CDATA[scala进阶23-for与模式匹配]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52305513</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52305513</guid><author>dingyuanpu</author><pubDate>Thu, 25 Aug 2016 00:21:05 +0800</pubDate><description><![CDATA[object For_Advanced {
  def main(args: Array[String]): Unit = {
    for (i <- List(1, 2, 3, 4, 5)) println(i)

    //index绑定了一个别名,叫Flink,内部是模式匹配,匹配到Flink后设置别名给index
    for(index@"Flink" <- List("Hado]]></description><category></category></item><item><title><![CDATA[scala进阶22-并发编程react、loop]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52305334</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52305334</guid><author>dingyuanpu</author><pubDate>Wed, 24 Aug 2016 23:51:29 +0800</pubDate><description><![CDATA[import java.net.{InetAddress, UnknownHostException}

import scala.actors.Actor
import scala.actors.Actor._

/**
  * 1、在Actor类的act方法中，可以使用react方法来替代receive方法进行消息的处理，
  * 使用react方法的好处是可以在一个线程中执行多个Actor的]]></description><category></category></item><item><title><![CDATA[scala进阶22-case class消息传递]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52295709</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52295709</guid><author>dingyuanpu</author><pubDate>Tue, 23 Aug 2016 23:56:31 +0800</pubDate><description><![CDATA[import scala.actors.Actor
import scala.actors.Actor._

case class Person(name: String, age: Int)

class HelloActor extends Actor {
  def act(): Unit = {
    while(true) {
      receive {
        case]]></description><category></category></item><item><title><![CDATA[scala进阶21-actor之消息传递]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52282608</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52282608</guid><author>dingyuanpu</author><pubDate>Tue, 23 Aug 2016 00:39:04 +0800</pubDate><description><![CDATA[import scala.actors.Actor
import scala.actors.Actor._

object Actor_Messages extends Actor {
  def act(): Unit = {
    while(true) {
      receive ({ //偏函数
        case msg => println("Message content]]></description><category></category></item><item><title><![CDATA[scala进阶20-基于Actor多并发编程]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52264705</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52264705</guid><author>dingyuanpu</author><pubDate>Sun, 21 Aug 2016 00:57:30 +0800</pubDate><description><![CDATA[import scala.actors.Actor
/**
  * scala中基于actor实现并发编程,不共享数据,依赖消息传递
  * pom文件中要引入scala-actors,否则找不到actors包
  */
object First_Actor extends Actor{
  override def act: Unit = {
    println(Thread.current]]></description><category></category></item><item><title><![CDATA[基于Flume的美团日志收集系统(二)改进和优化]]></title><link>https://blog.youkuaiyun.com/dingyuanpu/article/details/52264196</link><guid>https://blog.youkuaiyun.com/dingyuanpu/article/details/52264196</guid><author>dingyuanpu</author><pubDate>Sat, 20 Aug 2016 23:27:26 +0800</pubDate><description><![CDATA[基于Flume的美团日志收集系统(二)改进和优化

dju alex ·2013-12-09 22:35

转自：http://tech.meituan.com/mt-log-system-optimization.html


在《基于Flume的美团日志收集系统(一)架构和设计》中，我们详述了基于Flume的美团日志收集系统的架构设计，以及为什么做这样的设计。在本节中，我们将会讲]]></description><category></category></item></channel></rss>