【MapReduce打包成jar上传到集群运行】http://t.csdn.cn/2gK1d
【Xshell7/Xftp7 解决强制更新问题】http://t.csdn.cn/rxiBG
这里的打包是打包整个项目,后期等学会怎么打包单个指定的mapreduce程序再来更新博客。

注意:
这个时候已经在 target 目录下打包好了一个jar包:
我们可以直接使用这个来执行 ,而且这个jar包非常的轻量级只有几十KB,但是如果你有一些依赖项是hadoop集群中没有的,那么在这一步结束后,你就接着用我下面的这种方式打包吧:
必须在第一步的基础上进行,因为我们的代码总是要经过编译的,不然你修改不编译无效。


生成一个out目录 里面有我们打包好的jar包(默认名称就是我们的项目名.jar)

这种方式打包的是我们整个Maven项目的源代码(不包括依赖项),所以我们的集群中必须有相关的依赖,这种方式最轻量级。
在集群下运行的时候,必须指定运行的类的全限定名!
hadoop jar wc.jar com/lyh/mapreduce/wordcount2/WordCountRunner /wcinput /wcoutput
这种不需要指定运行类的全限定名:
hadoop jar wc.jar /wcinput /wcoutput
但就是空间太大,一个wordcount几十MB呢。
- @echo off
- color 3e
- title Xshell启动器
- %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit
-
- ::获取Xshell启动程序路径
- ::set Xshell="D:\Program Files (x86)\NetSarang\Xshell 7\Xshell.exe"
- set Xshell=
- ::如果上边未设置Xshell变量值,那么会自动去查找当前已安装的Xshell路径
- if not defined Xshell (
- for /F "delims=" %%T in ('where Xshell') do set Xshell="%%T"
- )
- ::如果上边两处都没有得到Xshell路径,那么就由用户手动输入
- if not defined Xshell (
- echo 请提供Xshell启动程序路径
- set /P Xshell=
- )
- if not defined Xshell (
- echo 拜拜我不干了!
- exit
- )
-
- ::在更改系统日期前,先获取系统当前日期
- set cTime=%date:~0,4%-%date:~5,2%-%date:~8,2%
- ::修改系统日期,这里获取Xshell.exe的创建时间作为设置的系统日期
- for /F "delims=" %%S in ('dir ^/TC %Xshell% ^| findstr "Xshell.exe"') do set Ftime=%%S
- set fctime=%Ftime:~0,4%-%Ftime:~5,2%-%Ftime:~8,2%
- date %fctime%
- echo 修改系统日期完成
-
- ::启动Xshell程序
- start "" %Xshell%
- echo 等待Xshell启动中
- ::等待xshell启动完成
- timeout /T 10 /NOBREAK
- ::ping 0.0.0.0 -n 5> nul
- echo Xshell启动完成
-
- ::恢复系统日期
- echo 恢复系统日期
- date %cTime%
- ::ping 0.0.0.0 -n 5> null
-
- ::第二部分,为当前脚本创建.lnk快捷方式,放到用户桌面
- ::把原有的lnk快捷方式删掉,注意有的是在public桌面,有的是在当前user桌面
- if exist "%PUBLIC%\Desktop\Xshell 7.lnk" (del /f /q "%PUBLIC%\Desktop\Xshell 7.lnk")
- if exist "%USERPROFILE%\Desktop\Xshell 7.lnk" (del /f /q "%USERPROFILE%\Desktop\Xshell 7.lnk")
-
- ::由Xshell.bat创建的快捷方式,不存在才创建
- set Desktop=%PUBLIC%\Desktop
- if exist %Desktop%\Xshell.lnk goto:EOF
- ::切换到Xshell.bat脚本所在目录
- cd /d %~dp0
-
- ::创建一个临时的vbs脚本, 写入以下内容.
- ::创建一个 wscript.shell 对象.
- echo set wshell = WScript.CreateObject("WScript.Shell") > create_shortcut.vbs
- ::在 vbs 脚本中声明快捷方式路径及名称,放到用户桌面
- echo file_lnk = "%Desktop%\Xshell.lnk" >> create_shortcut.vbs
- ::创建一个 shortcut 对象.
- echo set shortcut = wshell.CreateShortcut(file_lnk) >> create_shortcut.vbs
- ::下面开始设置 shortcut 对象的属性.
- ::1. 将目标路径设置为当前批处理脚本 Xshell7.bat
- echo shortcut.TargetPath = "%cd%\Xshell7.bat" >> create_shortcut.vbs
- ::2. 为 Xshell.bat 设置参数(当然这里不需要)
- :: echo shortcut.Arguments = "A B C" >> create_shortcut.vbs
- ::3. 将 "Xshell.bat所在目录" 设置为起始目录
- :: 注意这里双写百分号用来避免百分号被转义 (即双写百分号表示单个 "%").
- echo shortcut.WorkingDirectory = "%%cd%%" >> create_shortcut.vbs
- ::4. 添加快捷方式描述 (可选).
- echo shortcut.Description = "Powerful TELNET/SSH terminal emulator" >> create_shortcut.vbs
- ::5. 添加快捷方式图标 (可选).
- echo shortcut.IconLocation = %Xshell% >> create_shortcut.vbs
- ::6. 保存 vbs 脚本.
- echo shortcut.Save >> create_shortcut.vbs
- ::执行vbs脚本.
- cscript create_shortcut.vbs
- ::删除临时的vbs脚本.
- del /f /q create_shortcut.vbs
- exit
- @echo off
- color 3e
- title Xftp启动器
- %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit
-
- ::获取Xftp启动程序路径
- set Xftp="D:\Program Files (x86)\NetSarang\Xftp 7\Xftp.exe"
- ::set Xftp=
- ::如果上边未设置Xftp变量值,那么会自动去查找当前已安装的Xftp路径
- if not defined Xftp (
- for /F "delims=" %%T in ('where Xftp') do set Xftp="%%T"
- )
- ::如果上边两处都没有得到Xftp路径,那么就由用户手动输入
- if not defined Xftp (
- echo 请提供Xftp启动程序路径
- set /P Xftp=
- )
- if not defined Xftp (
- echo 拜拜我不干了!
- exit
- )
-
- ::在更改系统日期前,先获取系统当前日期
- set cTime=%date:~0,4%-%date:~5,2%-%date:~8,2%
- ::修改系统日期
- for /F "delims=" %%S in ('dir ^/TC %Xftp% ^| findstr "Xftp.exe"') do set Ftime=%%S
- set fctime=%Ftime:~0,4%-%Ftime:~5,2%-%Ftime:~8,2%
- date %fctime%
- echo 修改系统日期完成
-
- ::启动Xftp程序
- start "" %Xftp%
- echo 等待Xftp启动中
- ::等待Xftp启动完成
- timeout /T 10 /NOBREAK
- ::ping 0.0.0.0 -n 5> nul
- echo Xftp启动完成
-
- ::恢复系统日期
- echo 恢复系统日期
- date %cTime%
- ::ping 0.0.0.0 -n 5> null
-
- ::第二部分,为当前脚本创建.lnk快捷方式,放到用户桌面
- ::把原有的lnk快捷方式删掉,注意有的是在public桌面,有的是在当前user桌面
- if exist "%PUBLIC%\Desktop\Xftp 7.lnk" (del /f /q "%PUBLIC%\Desktop\Xftp 7.lnk")
- if exist "%USERPROFILE%\Desktop\Xftp 7.lnk" (del /f /q "%USERPROFILE%\Desktop\Xftp 7.lnk")
-
- ::由Xftp.bat创建的快捷方式,不存在才创建
- set Desktop=%PUBLIC%\Desktop
- if exist %Desktop%\Xftp.lnk goto:EOF
- ::切换到Xftp.bat脚本所在目录
- cd /d %~dp0
-
- ::创建一个临时的vbs脚本, 写入以下内容.
- ::创建一个 wscript.shell 对象.
- echo set wshell = WScript.CreateObject("WScript.Shell") > create_shortcut.vbs
- ::在 vbs 脚本中声明快捷方式路径及名称,放到用户桌面
- echo file_lnk = "%Desktop%\Xftp.lnk" >> create_shortcut.vbs
- ::创建一个 shortcut 对象.
- echo set shortcut = wshell.CreateShortcut(file_lnk) >> create_shortcut.vbs
- ::下面开始设置 shortcut 对象的属性.
- ::1. 将目标路径设置为当前批处理脚本 Xftp7.bat
- echo shortcut.TargetPath = "%cd%\Xftp7.bat" >> create_shortcut.vbs
- ::2. 为 Xftp.bat 设置参数(当然这里不需要)
- :: echo shortcut.Arguments = "A B C" >> create_shortcut.vbs
- ::3. 将 "Xftp.bat所在目录" 设置为起始目录
- :: 注意这里双写百分号用来避免百分号被转义 (即双写百分号表示单个 "%").
- echo shortcut.WorkingDirectory = "%%cd%%" >> create_shortcut.vbs
- ::4. 添加快捷方式描述 (可选).
- echo shortcut.Description = "Xftp: Secure file transfer software for MS Windows Platform." >> create_shortcut.vbs
- ::5. 添加快捷方式图标 (可选).
- echo shortcut.IconLocation = %Xftp% >> create_shortcut.vbs
- ::6. 保存 vbs 脚本.
- echo shortcut.Save >> create_shortcut.vbs
- ::执行vbs脚本.
- cscript create_shortcut.vbs
- ::删除临时的vbs脚本.
- del /f /q create_shortcut.vbs
- exit
只需要替换脚本中的 XShell7和Xftp7的安装目录(XShell.exe和Xftp的目录)即可。
完了直接桌面点击脚本文件。