• IDEA 打包MapReduce程序到集群运行的两种方式以及XShell和Xftp过期的解决


    参考博客

    MapReduce打包成jar上传到集群运行】http://t.csdn.cn/2gK1d

    Xshell7/Xftp7 解决强制更新问题】http://t.csdn.cn/rxiBG

    IDEA打包MapReduce程序(方式一)【轻量级打包】

    这里的打包是打包整个项目,后期等学会怎么打包单个指定的mapreduce程序再来更新博客。

    1、编译打包

    注意:

    这个时候已经在 target 目录下打包好了一个jar包:

    我们可以直接使用这个来执行 ,而且这个jar包非常的轻量级只有几十KB,但是如果你有一些依赖项是hadoop集群中没有的,那么在这一步结束后,你就接着用我下面的这种方式打包吧:

    IDEA打包MapReduce程序(方式二)【连依赖一起打包】

    必须在第一步的基础上进行,因为我们的代码总是要经过编译的,不然你修改不编译无效。

    2、File -> Project Structure -> Artifacts

    3、选择mapreduce程序的运行入口

    4、点击 ok  -> build -> build artifacts -> build

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

    5、使用Xftp把jar包传到 linux。

    两种打包方式集群下运行时的注意事项

    1、第一种打包方式(直接package编译打包)

    这种方式打包的是我们整个Maven项目的源代码(不包括依赖项),所以我们的集群中必须有相关的依赖,这种方式最轻量级。

    在集群下运行的时候,必须指定运行的类的全限定名!

    hadoop jar wc.jar com/lyh/mapreduce/wordcount2/WordCountRunner /wcinput /wcoutput

    2、第二种方式(build artifacts)

    这种不需要指定运行类的全限定名:

    hadoop jar wc.jar /wcinput /wcoutput
    

    但就是空间太大,一个wordcount几十MB呢。

    XShell7 和 Xftp7 的过期解决办法

    XShell.bat

    1. @echo off
    2. color 3e
    3. title Xshell启动器
    4. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit
    5. ::获取Xshell启动程序路径
    6. ::set Xshell="D:\Program Files (x86)\NetSarang\Xshell 7\Xshell.exe"
    7. set Xshell=
    8. ::如果上边未设置Xshell变量值,那么会自动去查找当前已安装的Xshell路径
    9. if not defined Xshell (
    10. for /F "delims=" %%T in ('where Xshell') do set Xshell="%%T"
    11. )
    12. ::如果上边两处都没有得到Xshell路径,那么就由用户手动输入
    13. if not defined Xshell (
    14. echo 请提供Xshell启动程序路径
    15. set /P Xshell=
    16. )
    17. if not defined Xshell (
    18. echo 拜拜我不干了!
    19. exit
    20. )
    21. ::在更改系统日期前,先获取系统当前日期
    22. set cTime=%date:~0,4%-%date:~5,2%-%date:~8,2%
    23. ::修改系统日期,这里获取Xshell.exe的创建时间作为设置的系统日期
    24. for /F "delims=" %%S in ('dir ^/TC %Xshell% ^| findstr "Xshell.exe"') do set Ftime=%%S
    25. set fctime=%Ftime:~0,4%-%Ftime:~5,2%-%Ftime:~8,2%
    26. date %fctime%
    27. echo 修改系统日期完成
    28. ::启动Xshell程序
    29. start "" %Xshell%
    30. echo 等待Xshell启动中
    31. ::等待xshell启动完成
    32. timeout /T 10 /NOBREAK
    33. ::ping 0.0.0.0 -n 5> nul
    34. echo Xshell启动完成
    35. ::恢复系统日期
    36. echo 恢复系统日期
    37. date %cTime%
    38. ::ping 0.0.0.0 -n 5> null
    39. ::第二部分,为当前脚本创建.lnk快捷方式,放到用户桌面
    40. ::把原有的lnk快捷方式删掉,注意有的是在public桌面,有的是在当前user桌面
    41. if exist "%PUBLIC%\Desktop\Xshell 7.lnk" (del /f /q "%PUBLIC%\Desktop\Xshell 7.lnk")
    42. if exist "%USERPROFILE%\Desktop\Xshell 7.lnk" (del /f /q "%USERPROFILE%\Desktop\Xshell 7.lnk")
    43. ::由Xshell.bat创建的快捷方式,不存在才创建
    44. set Desktop=%PUBLIC%\Desktop
    45. if exist %Desktop%\Xshell.lnk goto:EOF
    46. ::切换到Xshell.bat脚本所在目录
    47. cd /d %~dp0
    48. ::创建一个临时的vbs脚本, 写入以下内容.
    49. ::创建一个 wscript.shell 对象.
    50. echo set wshell = WScript.CreateObject("WScript.Shell") > create_shortcut.vbs
    51. ::在 vbs 脚本中声明快捷方式路径及名称,放到用户桌面
    52. echo file_lnk = "%Desktop%\Xshell.lnk" >> create_shortcut.vbs
    53. ::创建一个 shortcut 对象.
    54. echo set shortcut = wshell.CreateShortcut(file_lnk) >> create_shortcut.vbs
    55. ::下面开始设置 shortcut 对象的属性.
    56. ::1. 将目标路径设置为当前批处理脚本 Xshell7.bat
    57. echo shortcut.TargetPath = "%cd%\Xshell7.bat" >> create_shortcut.vbs
    58. ::2. 为 Xshell.bat 设置参数(当然这里不需要)
    59. :: echo shortcut.Arguments = "A B C" >> create_shortcut.vbs
    60. ::3. 将 "Xshell.bat所在目录" 设置为起始目录
    61. :: 注意这里双写百分号用来避免百分号被转义 (即双写百分号表示单个 "%").
    62. echo shortcut.WorkingDirectory = "%%cd%%" >> create_shortcut.vbs
    63. ::4. 添加快捷方式描述 (可选).
    64. echo shortcut.Description = "Powerful TELNET/SSH terminal emulator" >> create_shortcut.vbs
    65. ::5. 添加快捷方式图标 (可选).
    66. echo shortcut.IconLocation = %Xshell% >> create_shortcut.vbs
    67. ::6. 保存 vbs 脚本.
    68. echo shortcut.Save >> create_shortcut.vbs
    69. ::执行vbs脚本.
    70. cscript create_shortcut.vbs
    71. ::删除临时的vbs脚本.
    72. del /f /q create_shortcut.vbs
    73. exit

    Xftp7.bat

    1. @echo off
    2. color 3e
    3. title Xftp启动器
    4. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit
    5. ::获取Xftp启动程序路径
    6. set Xftp="D:\Program Files (x86)\NetSarang\Xftp 7\Xftp.exe"
    7. ::set Xftp=
    8. ::如果上边未设置Xftp变量值,那么会自动去查找当前已安装的Xftp路径
    9. if not defined Xftp (
    10. for /F "delims=" %%T in ('where Xftp') do set Xftp="%%T"
    11. )
    12. ::如果上边两处都没有得到Xftp路径,那么就由用户手动输入
    13. if not defined Xftp (
    14. echo 请提供Xftp启动程序路径
    15. set /P Xftp=
    16. )
    17. if not defined Xftp (
    18. echo 拜拜我不干了!
    19. exit
    20. )
    21. ::在更改系统日期前,先获取系统当前日期
    22. set cTime=%date:~0,4%-%date:~5,2%-%date:~8,2%
    23. ::修改系统日期
    24. for /F "delims=" %%S in ('dir ^/TC %Xftp% ^| findstr "Xftp.exe"') do set Ftime=%%S
    25. set fctime=%Ftime:~0,4%-%Ftime:~5,2%-%Ftime:~8,2%
    26. date %fctime%
    27. echo 修改系统日期完成
    28. ::启动Xftp程序
    29. start "" %Xftp%
    30. echo 等待Xftp启动中
    31. ::等待Xftp启动完成
    32. timeout /T 10 /NOBREAK
    33. ::ping 0.0.0.0 -n 5> nul
    34. echo Xftp启动完成
    35. ::恢复系统日期
    36. echo 恢复系统日期
    37. date %cTime%
    38. ::ping 0.0.0.0 -n 5> null
    39. ::第二部分,为当前脚本创建.lnk快捷方式,放到用户桌面
    40. ::把原有的lnk快捷方式删掉,注意有的是在public桌面,有的是在当前user桌面
    41. if exist "%PUBLIC%\Desktop\Xftp 7.lnk" (del /f /q "%PUBLIC%\Desktop\Xftp 7.lnk")
    42. if exist "%USERPROFILE%\Desktop\Xftp 7.lnk" (del /f /q "%USERPROFILE%\Desktop\Xftp 7.lnk")
    43. ::由Xftp.bat创建的快捷方式,不存在才创建
    44. set Desktop=%PUBLIC%\Desktop
    45. if exist %Desktop%\Xftp.lnk goto:EOF
    46. ::切换到Xftp.bat脚本所在目录
    47. cd /d %~dp0
    48. ::创建一个临时的vbs脚本, 写入以下内容.
    49. ::创建一个 wscript.shell 对象.
    50. echo set wshell = WScript.CreateObject("WScript.Shell") > create_shortcut.vbs
    51. ::在 vbs 脚本中声明快捷方式路径及名称,放到用户桌面
    52. echo file_lnk = "%Desktop%\Xftp.lnk" >> create_shortcut.vbs
    53. ::创建一个 shortcut 对象.
    54. echo set shortcut = wshell.CreateShortcut(file_lnk) >> create_shortcut.vbs
    55. ::下面开始设置 shortcut 对象的属性.
    56. ::1. 将目标路径设置为当前批处理脚本 Xftp7.bat
    57. echo shortcut.TargetPath = "%cd%\Xftp7.bat" >> create_shortcut.vbs
    58. ::2. 为 Xftp.bat 设置参数(当然这里不需要)
    59. :: echo shortcut.Arguments = "A B C" >> create_shortcut.vbs
    60. ::3. 将 "Xftp.bat所在目录" 设置为起始目录
    61. :: 注意这里双写百分号用来避免百分号被转义 (即双写百分号表示单个 "%").
    62. echo shortcut.WorkingDirectory = "%%cd%%" >> create_shortcut.vbs
    63. ::4. 添加快捷方式描述 (可选).
    64. echo shortcut.Description = "Xftp: Secure file transfer software for MS Windows Platform." >> create_shortcut.vbs
    65. ::5. 添加快捷方式图标 (可选).
    66. echo shortcut.IconLocation = %Xftp% >> create_shortcut.vbs
    67. ::6. 保存 vbs 脚本.
    68. echo shortcut.Save >> create_shortcut.vbs
    69. ::执行vbs脚本.
    70. cscript create_shortcut.vbs
    71. ::删除临时的vbs脚本.
    72. del /f /q create_shortcut.vbs
    73. exit

    只需要替换脚本中的 XShell7和Xftp7的安装目录(XShell.exe和Xftp的目录)即可。

    完了直接桌面点击脚本文件。

    运行命令

  • 相关阅读:
    [附源码]计算机毕业设计基于SpringBoot的校园报修平台
    [问题解决] no CUDA-capable device is detected
    火山引擎VeDI:如何高效使用A/B实验,优化APP推荐系统
    【开源打印组件】vue-plugin-hiprint初体验
    计算机Android毕业设计论文基于Uniapp+SSM实现的Android安全网购平台
    使用python自动监控程序运行过程数据
    PowerDotNet平台化软件架构设计与实现系列(13):应用监控平台
    导出execl,后端接口返回文件流
    物联网毕业设计 - 基于单片机的静脉输液流速流量监测系统
    网站被DDOS攻击怎么办?防护经验!
  • 原文地址:https://blog.csdn.net/m0_64261982/article/details/132818487