———————————————————— 准备 Tez 编译环境 ————————————————————
1 需要的支持
tez0.7 需要 Hadoop 2.60 以上
2 需要的 linux 相关工具
// apt-get install g++
// apt-get install vim
// apt-get install make
// yum -y install gcc make gcc-c++ openssl
3 protobuf 安装
CDN 下载的 编译好的 protobuf 2.5.0
编译要很久的 并且需要提前安装好 2.5 版本的 protobuf。 如果安装2.6.1 也不用怕 删了重装即可
./configure
$ make
$ make check
$ make install
protoc --version
如果找不到 sodu 一下/etc/profile
4 下载 node.js
这个版本不行。 wget
tar -zxvf node-v0.10.26.tar.gz
make && make install
node -v v0.10.26
改下载 10.27
wget http://nodejs.org/dist/v0.10.27/node-v0.10.27.tar.gz tar -zxvf node-v0.10.27.tar.gz
make && make install
验证 node -v
5 安装npm
curl -L https://www.npmjs.com/install.sh | sh 验证 npm -v
6 maven 3.10 以上版本
镜像:
7 安装 git (linux 自带的就行 1.7.1)
1、新集群首先更新 yum
sudo yum update
2、依赖包
sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
3、git 下载
1.7.1
yum -y install git
————————————————————— 编译Tez —————————————————————
一 下载 0.70
wget
解压文件:
二 修改 pom.xml
1)需要编辑 tez 目录下 tez-ui 目录 中的 pom.xml 文件,添加红色部分
<arguments>
<argument>node_modules/bower/bin/bower</argument> <argument>install</argument> p<argument> --allow-root</argument> <argument>--remove-unnecessary-resolutions=false</argument></arguments>
2) hadoop.version 和 protobuf.version 修改成hadoop 和 protobuf.version 环境下的版本号。
本次环境是 hadoop2.6.0 和 protobuf.version 2.5 tez 0.7默认就是这俩所以不用改
3)升级frontend版本为0.0.23 (可以不升级先试试 如果能过不用管。)
com.github.eirslett frontend-maven-plugin 0.0.23
三 创建路径
mkdir -p apache-tez-0.7.0-src/tez-ui/src/main/webapp/dist 创建一个 dist目录
四 编译 TEZ (漫长等待,如果失败可以重新编译。 经常下载超时失败。)
mvn clean package -DskipTests=true -Dmaven.javadoc.skip=true
编译好的 tez 在根目录下 tez-dist/target 目录 tez-0.7.0.tar.gz 就是
五 为调配 Hadoop 做准备
成功后,在tez的根目录下创建tezlib文件夹: 执行输入命令,拷贝所有tez相关的jar到tezlib下面: find . -name "*jar" -print | cp -a `xargs` tezlib/
———————————————————— 调配 Hadoop ————————————————————
1 将 编译好的 TEZ .tar.gz 文件上传到 HDFS 中。
hdfs fs -put complete-tez-0.7.0.tar.gz /tez
2 解压 tez-0.7.0.tar.gz 后修改hadoop 的 mapred-site.xml
3 创建 tez-site.xml
需要在 hadoop 的 master 节点上面的 ${HADOOP_HOME}/etc/hadoop 目录下面创建一个 tez-site.xml 文件,里面填写如下内容
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>tez.lib.uris</name>
<value>(HDFS路径)+/tez/tez-0.7.0</value>
</property>
</configuration>
以上完成了tez的基本配置,接下来有 2 中方法使我们的任务运行在tez上,
export TEZ_HOME= /usr/local/opt/tez-0.7.0
for jar in `ls $TEZ_HOME |grep jar`; do
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/$jar
done
for jar in `ls $TEZ_HOME/lib`; do
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/lib/$jar
done
运行 TEZ 自己的 例子运行过程:
查看 HDFS 结果
运行 hadoop MR 例子过程:
结果一样的
明日检查性能