tez on hive 安装部属

来源:互联网 发布:中国经济畸形 知乎 编辑:程序博客网 时间:2024/05/28 15:49

编译tez:



 

目前最新的Tez版本是0.8,但还不是稳定版,所以大家还是先下载0.7用吧 
下载地址: wget http://archive.apache.org/dist/tez/0.7.0/apache-tez-0.7.0-src.tar.gz 


由于编译Tez-UI模块,需要使用nodejs,所以建议还是 
提前安装nodejs 和npm工具,安装方式,可以下载源码安装 
也可以yum安装,安装步骤: 

(1)安装nodejs镜像 
sudo curl --silent --location https://rpm.nodesource.com/setup | sudo bash - 
(2)yum安装nodejs,前提是你已经安装了 
yum -y install gcc-c++ make 
yum -y install nodejs 

(3)查看版本: 
node -v 
npm -v 
没有问题即可 

(4)解压tez到某个目录,然后进入根目录,修改pom.xml文件: 
升级frontend版本为0.0.23 

Xml代码  收藏代码
  1. <plugin>  
  2.           <groupId>com.github.eirslett</groupId>  
  3.           <artifactId>frontend-maven-plugin</artifactId>  
  4.           <version>0.0.23</version>  
  5.         </plugin>  


进入tez ui的模块下,修改pom.xml文件,在 
grunt build 和 Bower install下面的configuration下面增加下面一个段配置,允许以root权限执行构建 

Xml代码  收藏代码
  1. <arguments>  
  2.                 <argument>node_modules/bower/bin/bower</argument>  
  3.                 <argument>install</argument>  
  4.                 <argument> --allow-root</argument>  
  5.                 <argument>--remove-unnecessary-resolutions=false</argument>  
  6. </arguments>  


然后执行命令:mkdir -p  apache-tez-0.7.0-src/tez-ui/src/main/webapp/dist创建一个 
dist目录,否则最后,会报一个dist目录不存在的错误,导致编译失败 

另外需要注意的是,在tez-ui编译的时候,需要大量下载npm nodejs相关的包,如果没有下载可以执行 
npm install xxx 进行下载安装, 
除以之外还有一个错误,就是有些依赖模块,会报一个 error use strict model 异常,导致tez-ui无法正常 
编译通过,解决办法,下载低版本的依赖包,即可,目前发现两个依赖出现此种问题: 

解决办法:先卸载原来版本的,然后重新安装低版本,如果提示权限不够,就在命令前面加上sudo 
npm uninstall qs 
npm uninstall hawk 
npm install qs@5.2 
npm  install hawk@0.6.1 

博客地址:http://qindongliang.iteye.com/ 

最后看以下,编译过程中,nodejs依赖的所有包: 
执行命令:ll node_modules/ | gawk '{print $9}' 

Java代码  收藏代码
  1. abbrev  
  2. ansicolors  
  3. ansi-regex  
  4. ansistyles  
  5. aproba  
  6. archy  
  7. argparse  
  8. asn1  
  9. assert-plus  
  10. async  
  11. async-some  
  12. aws-sign2  
  13. balanced-match  
  14. bl  
  15. boom  
  16. brace-expansion  
  17. buffers  
  18. caseless  
  19. chainsaw  
  20. chownr  
  21. cli-color  
  22. cmd-shim  
  23. columnify  
  24. combined-stream  
  25. concat-map  
  26. config-chain  
  27. core-util-is  
  28. cryptiles  
  29. dashdash  
  30. debuglog  
  31. delayed-stream  
  32. dezalgo  
  33. ecc-jsbn  
  34. editor  
  35. end-of-stream  
  36. esprima  
  37. extsprintf  
  38. forever-agent  
  39. form-data  
  40. fstream  
  41. fstream-npm  
  42. fs-vacuum  
  43. fs-write-stream-atomic  
  44. glob  
  45. graceful-fs  
  46. has-unicode  
  47. hawk  
  48. hoek  
  49. hosted-git-info  
  50. http-signature  
  51. iferr  
  52. imurmurhash  
  53. inflight  
  54. inherits  
  55. ini  
  56. init-package-json  
  57. isarray  
  58. jodid25519  
  59. jsbn  
  60. json-schema  
  61. json-stringify-safe  
  62. jsprim  
  63. js-yaml  
  64. lockfile  
  65. lodash  
  66. lodash._baseindexof  
  67. lodash._baseuniq  
  68. lodash._bindcallback  
  69. lodash._cacheindexof  
  70. lodash.clonedeep  
  71. lodash._createcache  
  72. lodash._getnative  
  73. lodash.isarguments  
  74. lodash.isarray  
  75. lodash.isfunction  
  76. lodash.isobject  
  77. lodash.keys  
  78. lodash.now  
  79. lodash.restparam  
  80. lodash.union  
  81. lodash.uniq  
  82. lodash.without  
  83. mime-db  
  84. mime-types  
  85. minimist  
  86. mkdirp  
  87. mute-stream  
  88. node-gyp  
  89. node-uuid  
  90. nopt  
  91. normalize-git-url  
  92. normalize-package-data  
  93. npm-cache-filename  
  94. npm-install-checks  
  95. npmlog  
  96. npm-package-arg  
  97. npm-registry-client  
  98. npm-user-validate  
  99. oauth-sign  
  100. once  
  101. opener  
  102. osenv  
  103. osx-release  
  104. path-is-inside  
  105. process-nextick-args  
  106. qs  
  107. read  
  108. readable-stream  
  109. read-cmd-shim  
  110. readdir-scoped-modules  
  111. read-installed  
  112. readline2  
  113. read-package-json  
  114. read-package-tree  
  115. realize-package-specifier  
  116. request  
  117. retry  
  118. rimraf  
  119. rx  
  120. semver  
  121. sha  
  122. sigmund  
  123. slide  
  124. sntp  
  125. sorted-object  
  126. sprintf-js  
  127. sshpk  
  128. string_decoder  
  129. stringstream  
  130. strip-ansi  
  131. tar  
  132. text-table  
  133. through  
  134. tough-cookie  
  135. traverse  
  136. tunnel-agent  
  137. tweetnacl  
  138. uid-number  
  139. umask  
  140. unique-filename  
  141. unpipe  
  142. user-home  
  143. util-deprecate  
  144. uuid  
  145. validate-npm-package-license  
  146. validate-npm-package-name  
  147. verror  
  148. which  
  149. win-release  
  150. wordwrap  
  151. wrappy  
  152. write-file-atomic  
  153. xdg-basedir  
  154. xtend  



(5)最后在tez根目录下输入如下命令进行构建: 
mvn clean package -DskipTests=true -Dmaven.javadoc.skip=true 
大概10多分钟即可编译成功: 





成功后,在tez的根目录下创建tezlib文件夹: 
执行输入命令,拷贝所有tez相关的jar到tezlib下面: 
find . -name "*jar" -print | cp -a `xargs` tezlib/ 



部属tez:


 


基础环境 

Apache Hadoop2.7.1 
Centos6.5 
Apache Hadoop2.7.1 
Apache Hbase0.98.12 
Apache Hive1.2.1 
Apache Tez0.7.0 
Apache Pig0.15.0 
Apache oozie4.2.0 
Apache Spark1.6.0 
Cloudrea Hue3.8.1 

安装Tez,请参考上篇文章:http://qindongliang.iteye.com/blog/2271440 

安装成功之后,在hadoop/etc/hadoop/下面新建一个tez-site.xml,并配置tez的lib路径: 

Java代码  收藏代码
  1. <configuration>  
  2.     <property>  
  3.         <name>tez.lib.uris</name>  
  4.        <value>/user/tez</value>  
  5.     </property>  
  6. </configuration>  


然后执行命令hadoop fs -mkdir -p /user/tez 在HDFS上创建tez的目录 
接着执行hadoop fs -copyFromLocal tezlib/* /user/tez上面tez相关的所有jar到HDFS对应的路径下 

有一点需要注意,在实际交替运行pig on tez 和hive on tez时,发现hive报了一个异常: 






博客地址:http://qindongliang.iteye.com/ 
原始是tez编译出来的这个jar包,与hadoop的里面jar大小不一致,所以就报这个异常了,解决办法,统一按照hadoop里面这个jar包大小运行即可 

另外一点需要注意的是,如果集群中装有压缩功能,lzo或者snappy那么也需要将相关的jar包传到/user/tez里面 





设置tez模式,然后查询: 
set hive.execution.engine=tez; 
启动相关服务,在hue里面查询 
bin/hive --service metastore 
bin/hiveserver2 
而且,结果还支持图表展示: 



原创粉丝点击