Tez在hadoop 2.2.0下的安装部署测试

来源:互联网 发布:在线编程 编辑:程序博客网 时间:2024/04/30 23:55


1.      我的安装环境:

a)        hadoop2.2.0

b)        probuf2.5.0  ,  probuf的安装可参考:http://blog.csdn.net/guoyilongedu/article/details/17093811

c)        Tez-0.2.0



2.      安装Tez,

a)        下载,Tez  http://tez.incubator.apache.org/install.html

b)        解压 ,tar –xvf tar -xvf tez-0.2.0-incubating.tar.gz.解压之后会得到目录tez-0.2.0-incubating,若不加特殊说明,下面的操作都是在这个目录下进行。

c)        编译,编译之前注意修改pom.xml中的相关配置,主要是把hadoop.version和protobuf.version修改成你环境下的版本号。

编译时执行:

 

mvn clean install -DskipTests=true-Dmaven.javadoc.skip=true

d)        编译完之后的需要将部分文件上传到hdfs,需要上传的文件在目录{YOUR_PATH}/tez-0.2.0-incubating/tez-dist/target/tez-0.2.0/tez-0.2.0下面,上传到hdfs的位置随意。

         比如如果我们上传到hdfs的位置是/tez-0.2.0,那么上传命令如下

hadoop fs –put /tez-dist/target/tez-0.2.0/tez-0.2.0  /tez-0.2.0

 

e)        新建tez-site.xml.添加如下配置:

其中value的内容为你刚才上传到hdfs上的位置,注意是两个path,用逗号隔开,一个是包含lib下jar的path,一个是包含lib和tez-api.jar的path。

<configuration>    <property>        <name>tez.lib.uris</name>       <value>/tez-0.2.0/lib,/tez-0.2.0/</value>    </property></configuration>


f)         修改hadoop的配置文件mapred-site.xml,修改mapreduce.framework.name的值yarn为yarn-tez

<property>        <name>mapreduce.framework.name</name>        <value>yarn-tez</value></property>


g)        修改hadoop的class path,添加以下两个路径:

                        i.             tez-site.site的路径

                      ii.             TEZ_JARSand TEZ_JARS/libs

一种设置hadoop classpath 的方法是,在hadoop-env.sh中添加:

export  CLASSPATH=${CLASSPATH}:$your-path



3. 运行测试:其中tez-mapreduce-examples-0.2.0.jar 在 tez-0.2.0-incubating/tez-mapreduce-examples/target目录下,下面语句也是在这个目录下执行的

   

  hadoop jar tez-mapreduce-examples-0.2.0.jar orderedwordcount <input> <output>

4.    相关说明:

a)      2.e步中,tez-site.xml文件是不存在的,需要自己创建,但是我按照上面的操作完成了之后,执行程序的时候会报错:

Exception in thread "main"org.apache.tez.dag.api.TezUncheckedException: Invalid configuration of tezjars, tez.lib.uris is not defined in the configurartion。


出现这个问题显然是因为tez没找到tez-site.xml文件的原因,我查了下hadoopclasspath,发现明明已经添加了路径,所以错误原因我也没搞清楚。

我的解决办法是,把tez-site.xml直接放到hadoop_conf_dir$HADOOP_PREFIX/etc/hadoop)下面,在执行的时候就不报错了。

 

b)     2.f步中,修改了mapred-site.xml文件,在没安装tez的机器上执行MR程序的时候会报错:

ERROR security.UserGroupInformation:PriviledgedActionException as:nyarn (auth:SIMPLE) cause:java.io.IOException:Cannot initialize Cluster. Please check your configuration formapreduce.framework.name and the correspond server addresses.


这属于正常现象,解决办法就是要不在这台机器上也配上tez,要不就把程序的执行语句放到年撞了Tez的机器上来运行。要注意的是,在有Tez的机器上仍然可以运行之前写过的MR程序。


c) 安装完成之后,再执行MR或者其他yarn上的程序,application type就会写成tez,如下图所示


0 0
原创粉丝点击