AmosCloud

Library

Have a Question?

If you have any question you can ask below or enter what you are looking for!

SparkSQL

shell命令补充

  • nohup&

    • nohup 将输出打印到文件,默认打印到nohup.out文件,可以通过重定向指定输出的文件
    • &启动一个子shell,将命令在另外一个线程后台执行
  • 常见用法

    # 2指的是Linux运行程序时的错误输出
    # 1值得时Linux运行程序时的标准输出
    # 2>&1意思是将错误输出重定向到标准输出,将来标准输出和错误输出都是用相同的流输出到前面指定的日志文件
    nohup 执行的程序(命令) >> 日志文件 2>&1 &
    # /dev/null是Linux系统的特殊路径,重定向到/dev/null路径的数据,会直接消失
    nohup 执行的程序(命令) >> /dev/null 2>&1 &

SparkSQL

SparkSQL是什么

是Spark1.3.0添加的一个新模块,用于进行结构化数据处理。

特点

  1. 兼容SparkCore
    SparkSQL允许开发者使用Scala、Java、Python、R在原有的SparkCore程序中添加DataFrameApi进行SQL计算。

  2. 统一的数据访问方式
    SparkSQL提供了各种Hadoop生态、Hive生态的数据源访问方式
    所有数据源在读取时,都是用相同的API操作
    json、csv、jdbc数据的读取和解析,都被SparkSQL封装为高级API

  3. 完全兼容Hive
    SparkSQL支持Hive的所有功能,可以将SparkSQL运行在原有的Hive数据仓库之上,SparkSQL还提供了比Hive更强大的函数库和运算能力

    • 如果将已有的Hive中的hive-site.xml和mysql的驱动包添加到Spark安装目录中,SparkSQL就可以完全接管原来Hive的所有功能
  4. 与hive一样支持JDBC连接
    SparkSQL由于使用SparkCore作为引擎,比原来Hive的MR计算效率有很大提升,所以也更适合启动JDBC服务端,进行即席查询应用的开发
    SparkSQL中直接集成了Hivesever2

    • 启动hiveserver2

    nohup hiveserver2 &

    • 使用beeline作为hive2的客户端连接服务端
      beeline
      !connect jdbc:hive2://host:port
      # 默认没有用户名和密码
    • 如果遇到User: root is not allowed to impersonate root
      在hadoop的core-site.xml中添加如下配置并重启HDFS
<property>
 <name>hadoop.proxyuser.root.hosts</name>
 <value>*</value>
</property>
<property>
 <name>hadoop.proxyuser.root.groups</name>
 <value>*</value>
</property>