Tez环境搭建


编译Tez

由于在Tez-Yarn的官网上并没有关于hadoop3.1.2对应的Tez-Yarn安装包,所以我们进行针对性的编译。先检测Maven是否安装了。

修改pom.xml

spark一定会比tez快吗 spark tez_apache

编译modules,将tez-ui注释掉,不需要编译tez-ui。

检测Maven是否安装

1、在app-11上,使用hadoop用户登录。

命令:su - hadoop

spark一定会比tez快吗 spark tez_spark一定会比tez快吗_02

2、检测Maven是否安装。

命令:mvn -version

spark一定会比tez快吗 spark tez_apache_03

3、进入cd/hadoop/tools/目录下。

命令:cd /hadoop/tools/

spark一定会比tez快吗 spark tez_spark_04

4、这里没有Maven,下载Maven。

命令:wget http://archive.apache.org/dist/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz

spark一定会比tez快吗 spark tez_apache_05

5、解压。

命令:tar -xf apache-maven-3.6.0-bin.tar.gz

spark一定会比tez快吗 spark tez_spark_06

6、在环境变量中加入MAVEN_HOME路径。

命令:vi ~/.bashrcexportMAVEN_HOME=/hadoop/tools/apache-maven-3.6.0

export PATH=${MAVEN_HOME}/bin:$PATH

spark一定会比tez快吗 spark tez_spark_07

7、将新添加的环境变量生效。

命令:source ~/.bashrc、echo $PATH

spark一定会比tez快吗 spark tez_大数据_08

8、查看Maven是否安装成功。

命令:mvn -version

spark一定会比tez快吗 spark tez_spark_09

下载编译程序

9、切到tmp目录下。

命令:cd /tmp/

spark一定会比tez快吗 spark tez_spark_10

10、创建tez文件。

命令:mkdir tez

spark一定会比tez快吗 spark tez_spark一定会比tez快吗_11

11、进入Spark-stack/Tez目录下。

命令:cd Spark-stack/Tez

spark一定会比tez快吗 spark tez_spark一定会比tez快吗_12

12、将buildTez下的内容拷贝到tez目录下。

命令:cp buildTez/* /tmp/tez/

spark一定会比tez快吗 spark tez_大数据_13

13、切换到tez目录下。

命令:cd /tmp/tez/

spark一定会比tez快吗 spark tez_大数据_14

14、解压apache-tez-0.9.0-src.tar.gz。

命令:tar -xf apache-tez-0.9.0-src.tar.gz

spark一定会比tez快吗 spark tez_spark_15

15、将pom.xml拷贝到源码目录下。
命令:cp pom.xml apache-tez-0.9.0-src

spark一定会比tez快吗 spark tez_spark_16

16、进入源码目录。

命令:cd apache-tez-0.9.0-src

spark一定会比tez快吗 spark tez_hadoop_17

编译

17、开始编译。
命令:mvn -X clean package -DskipTests=true -Dhadoop.version=3.1.2 -Phadoop28 -P\!hadoop27 -Dprotoc.path=/hadoop/tools/protobuf-2.5.0/bin/protoc -Dmaven.javadoc.skip=true

注:使用hadoop3.1.2版本,不使用2.7版本。同时在tools里面安装了protobuf组件,将path写在这个命令行上,并且不进行测试。编译的时间是9分钟。显示每个模块相关的编译耗时。

spark一定会比tez快吗 spark tez_spark_18

18、安装包在tez-dist目录下。
命令:cd tez-dist/

spark一定会比tez快吗 spark tez_spark一定会比tez快吗_19

19、进入target目录。
命令:cd target/注:有了tez-0.9.1-minimal.tar.gz和tez-0.9.1.tar.gz这两个包证明编译成功。

spark一定会比tez快吗 spark tez_大数据_20

安装有两种方式,第一种是先进行编译,将编译出来的安装包拷贝到集群上,命令:cp tez-0.9.1-minimal.tar.gz
tez-0.9.1.tar.gz /安装tez的路径。第二种是github上有对应的安装包,直接下载到对应的位置。

安装

修改hadoop-env.sh

spark一定会比tez快吗 spark tez_hadoop_21

增加了三个配置。

修改mapred-site.xml

spark一定会比tez快吗 spark tez_spark_22

将mapreduce框架改为yarn-tez。

spark一定会比tez快吗 spark tez_spark_23

增加tez-site.xml
tez.lib.uris指向/user/tez/tez-0.9.0.tar.gz。

下载安装包

1、返回根目录。

命令:cd

spark一定会比tez快吗 spark tez_spark_24

2、检查集群是否正常启动。

命令:jps

spark一定会比tez快吗 spark tez_大数据_25

3、在hadoop根目录下创建tez安装文件。

命令:mkdir /hadoop/Tez

spark一定会比tez快吗 spark tez_hadoop_26

4、进入Spark-stack/Tez目录下。

命令:cd /tmp/Spark-stack/Tez/

spark一定会比tez快吗 spark tez_大数据_27

5、这是直接在GitHub上下载安装包。Tez安装包在apache-tez-0.9.0-bin目录下,将该目录下的安装拷贝到安装Tez目录下。

命令:cp apache-tez-0.9.0-bin/* /hadoop/Tez/

spark一定会比tez快吗 spark tez_apache_28

6、进入安装Tez目录下。

命令:cd /hadoop/Tez/

spark一定会比tez快吗 spark tez_大数据_29

将tez-0.9.0.tar.gz上传到hdfs中

7、先创建tez目录。

命令:hdfs dfs -mkdir /user/tez

spark一定会比tez快吗 spark tez_hadoop_30

8、将安装包上传到tez目录下。

命令:hdfs dfs -put tez-0.9.0.tar.gz /user/tez/

spark一定会比tez快吗 spark tez_spark_31

9、查看是否上传成功。

命令:hdfs dfs -ls /user/tez/

spark一定会比tez快吗 spark tez_spark一定会比tez快吗_32

10、进入hadoop的配置文件。

命令:cd /hadoop/Hadoop/hadoop-3.1.2/etc/hadoop/

spark一定会比tez快吗 spark tez_apache_33

11、将mapred-site.xml和hadoop-env.sh文件删除。

命令:rm -rf mapred-site.xml hadoop-env.sh

spark一定会比tez快吗 spark tez_apache_34

将配置文件拷贝到集群的各个机器上

12、进入Spark-stack/Tez/目录下。

命令:cd /tmp/Spark-stack/Tez/

spark一定会比tez快吗 spark tez_spark一定会比tez快吗_35

13、将配置文件拷贝到hadoop的配置文件下。

命令:cp -r conf/* /hadoop/Hadoop/hadoop-3.1.2/etc/hadoop/

spark一定会比tez快吗 spark tez_apache_36

14、将配置也拷贝到app-12和app-13上。

命令:scp -r conf/* hadoop@app-12:/hadoop/Hadoop/hadoop-3.1.2/etc/hadoop/scp -r conf/* hadoop@app-13:/hadoop/Hadoop/hadoop-3.1.2/etc/hadoop/

注:因为scp是覆盖拷贝所以不需要删除。

spark一定会比tez快吗 spark tez_spark_37

解压tez-0.9.0-minimal.tar.gz

15、进入Tez安装目录。

命令:cd /hadoop/Tez/

spark一定会比tez快吗 spark tez_hadoop_38

16、创建tez-0.9.0-minimal。

命令:mkdir tez-0.9.0-minimal

spark一定会比tez快吗 spark tez_spark_39

17、将tez-0.9.0-minimal.tar.gz解压到tez-0.9.0-minimal。因为在hadoop-env.sh中添加的TEZ_JARS在tez-0.9.0-minimal目录下。

命令:tar -xf tez-0.9.0-minimal.tar.gz -C tez-0.9.0-minimal

spark一定会比tez快吗 spark tez_spark一定会比tez快吗_40

18、进入到tez-0.9.0-minimal目录下。

命令:cd tez-0.9.0-minimal

spark一定会比tez快吗 spark tez_spark_41

集群重启

19、先停止集群。

命令:stop-all.sh

spark一定会比tez快吗 spark tez_spark一定会比tez快吗_42

20、登录app-12上停止historyserver。

命令:ssh app-12 "mapred --daemon stop historyserver"

spark一定会比tez快吗 spark tez_大数据_43

21、检查启动的集群。

命令:jps注:除了zookeeper进程在启动没有其他进程。

spark一定会比tez快吗 spark tez_大数据_44

22、登录其他的机器确保只有zookeeper进程。

命令:ssh app-12 "jps"ssh app-13 "jps"

spark一定会比tez快吗 spark tez_apache_45

23、启动hadoop集群。

命令:start-all.sh

spark一定会比tez快吗 spark tez_大数据_46

24、重新启动app-12上的historyserver。

命令:ssh app-12 "mapred --daemon start historyserver"

spark一定会比tez快吗 spark tez_apache_47

25、使用jps检查集群。

命令:jps注:NameNode、NodeManager、ResourceManager均已经启动了。

spark一定会比tez快吗 spark tez_hadoop_48

测试

26、查看tez-0.9.0-minimal目录。

命令:ls注:用这里的example做测试。

spark一定会比tez快吗 spark tez_hadoop_49

27、查看hdfs的目录。

命令:hdfs dfs -ls/

spark一定会比tez快吗 spark tez_hadoop_50

28、做测试的输入是做hadoop安装时做测试的文件。这个文件在/installTest/hadoop/data目录下,先查看该目录的文件。

命令:hdfs dfs -ls /installTest/hadoop/data

spark一定会比tez快吗 spark tez_spark一定会比tez快吗_51

29、MapReduce测试。

命令:hadoop jar tez-examples-0.9.1.jar orderedwordcount /installTest/hadoop/data /installTest/hadoop/output3

注:hadoop jar运行tez-examples-0.9.1.jar然后运行tez-examples-0.9.1.jar里的orderedwordcount命令。orderedwordcount的含义是不仅要进行wordcount还要根据word进行排序。输出是/installTest/hadoop/data,输出是/installTest/hadoop/output3,确保输出文件不存在即可

spark一定会比tez快吗 spark tez_apache_52

30、查看输出的文件。

命令:hdfs dfs -ls /installTest/hadoop/data /installTest/hadoop/output3

spark一定会比tez快吗 spark tez_大数据_53

31、输出的结果在part-v002-o000-r-00000中。

命令:hdfs dfs -cat /installTest/hadoop/data /installTest/hadoop/output3/part-v002-o000-r-00000

注:结果是按照value排序的。

spark一定会比tez快吗 spark tez_hadoop_54

常见问题

spark一定会比tez快吗 spark tez_apache_55

问题解释:环境变量执行缓慢。

解决办法:多次进行source命令,更新环境变量。