mapreduce程序部署

一、打包

mapreduce程序打包有多种方式,使用fatjar的方式最简单方便。

在pom文件插件中加入生成fatjar的插件:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <archive>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- 指定在打包节点执行jar包合并操作 -->
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

使用mvn package命令打包,即可生成xxx-1.0.0-jar-with-dependencies.jar文件。

二、测试jar运行

上传jar文件到hadoop服务器上,使用hadoop jar命令启动mapreduce。

hadoop jar /home/hadoop/application/bds/xxx-1.0.0-jar-with-dependencies.jar com.whty.bds.hadoop.Main hdfs://192.168.5.174:9000/flume

hadoop jar命令的第一个参数为jar包路径,第二个参数为main函数的路径,后面的参数为自定义参数,可以在程序中自定义。
本例中第三个参数为输入路径(input path)

三、定时执行

在公司的项目中mapreduce需要每天晚上定时执行,采用crontab命令定时启动mapreduce。
1、shell文件
因为crontab命令使用自己的环境变量,可以为crontab命令配置全局环境变量或在shell文件中自行引入,建议采用自行引入的方式。
以下为启动的shell文件:

#!/bin/sh

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export FLUME_HOME=/home/hadoop/application/flume
export PATH=$PATH:$FLUME_HOME/bin
ZOOKEEPER_HOME=/home/hadoop/application/zookeeper
export ZOOKEEPER_HOME
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf
export HADOOP_HOME=/home/hadoop/application/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HBASE_HOME=/home/hadoop/application/hbase
export PATH=$PATH:$HBASE_HOME/bin
export REDIS_HOME=/application/redis
export PATH=$PATH:$REDIS_HOME/bin
JAVA_HOME=/usr/java/jdk1.7.0_79
export JAVA_HOME
JRE_HOME=/usr/java/jdk1.7.0_79/jre
export JRE_HOME
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export CLASSPATH
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:.
export PATH

/home/hadoop/application/hadoop/bin/hadoop jar /home/hadoop/application/bds/xxx-1.0.0-jar-with-dependencies.jar com.whty.bds.hadoop.Main hdfs://192.168.5.174:9000/flume

环境变量配置和linux环境变量(/ect/profile)相同,然后在末尾加入hadoop jar命令,最好采用完整路径
shell文件编写完成后可以执行./run.sh测试一下。
如果出现#!/bin/sh无法解析的错误,可以尝试使用dos2unix命令格式化文编码。

2、crontab配置

输入crontab -e
在vi编辑器中输入定时执行的命令,参考以下格式
保存退出,输入crontab -l检查是否启动成功

0 3 * * * /bin/sh   /home/hadoop/application/bds/run.sh  >/dev/null 2 >&1
阅读更多
文章标签: hadoop mapreduce 部署
个人分类: 大数据
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭