020_自己编写的wordcount程序在hadoop上面运行,不使用插件hadoop-eclipse-plugin-1.2.1.jar
1、Eclipse中无插件运行MP程序
1)在Eclipse中编写MapReduce程序
2)打包成jar包
3)使用FTP工具,上传jar到hadoop 集群环境
4)运行
2、具体步骤
说明:该程序运行完被我删除了,具体添加哪些包不太清楚,但是最保险的是把有可能用到的都添加进去,添加情况如下:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAARQAAADzCAIAAADIJH6gAAAaeklEQVR4nO2dX2wUR57H54X3eUDa8HASl5BdopNCRCI/jHQkK61ic4nuVishRRFRwkNaiYiyt2i1OBIoAwvIGHLMEjtxdByYcBAnAccxoW8cYMEbcLwJSoa/mcMKtvlzGP8dbDzumbHpe+j5U91d1X9qpv/NfD8qRaa7qrraqa+rurp+3w7JAAAuQl43AICgAvEAwAnEAwAnEA8AnEA8AHDiL/EIq1Y6f5GBWCQUCoUE0flLgarGG/F8s6uumGRZ3lq/RJ8cuvRALALdgIpQlngePnxoekTPsbeWkf+89WPP1vol2fTXI30tu195XvnBOfGIQigSG3CoclBT8IvnwIEDGzduzOVyxSO5XG7jxo3t7e0Gpb7ZXieNtEkjbalkbCTRNHS2cWqwb2v9kpG+lkufR4VVK5UfIB7gfzjFMz8/v3Hjxueee66oH0U5ypH5+XlWwVPbV0qpfjK982/Pba1fsvuV54VVK5W0+5Xnt9YvYT//iEIoT0EGpSPEs4wohCKxmEDmJPJh6gbKhX/kyWazRbWk02mNllicenelNNJFpvn0YHHaJqxaaTZtE4WQZuhQHxGFgjBEoaiRgVikkAUjD6gUZT3zFEebF1980YpyFEb/fmD48JrRvx+QZfnYhhUGiVJY3/e1R4orAuSJgVgE4gEVptzVNnK2ZkU5siwPH14jz18ePrxGlmVpqI2aRhJNZYinOEeDeICDVGCpOpfLHTx4MJvNWsk8ena3lIz+dnlISkZHz74ny7KUbNIkpnJkmZyWybIYiw1Qpm0UmUA8oPK4/Z5n+PCaonjyg08iSiZD5ciyXHzJqVkbYCwYQDzAMVwVz/Dxxomzr0nJ6KX/WiUloxNnXrt5vFFKlJK5cgDwDe6K5/CahRtbJ/72x98uD0387Y8LP28dPrxmv/ArMrnZHgDKwVXx9G1/8uGtD1LJ2ImW36WSMfnmB33bn3SzAQBUEFfFc+fb9r7tT5LpzrdG2xEA8DP+2lUNQICAeADgBOIBgBOIBwBOIB4AOAmeeM6ITdTkdbtAzRE88Zw60ZzJzmvSle43facfIg7CSUQBsUkeETzx9HTv1ovn+ulNV/2mH4in2gmeeE507ZEy80qay+SkzPxcZn6of8/105uudL8hdv2H1w3U46jpCMTjGcETT9exvbNSblbKPdGwfv2Wj2bn5tdv+eiJhvWz0nxamu/u3Ot1A/VAPNVJ8MTz+acfzKRzM+nsjrbPn2hYP53OPdGwfkfb5zPp3Ew6d+zzVsPSFv0PlO4uCqV8+oJaSqESSj15yRD1m1U1EIsU21CIWxKFUCQm5qvOH9C2H+LxhuCJ5/AnH6Ue5FIPcqkHWUU2TzSsTz3IKkc6OtrYRa37HyhCYIUG0Xqr/nDpCHnOpKr8aVVIn9q+RFslxOMZARMP6X8wMZ0ffHa0fT4xnZmYzk5MZz/+7/9kFrbhf6Du1uTgVPqrXzxKdm2iOqp46FVp2kQeJptI/Rni8YyAiYf0PxhNZYojz2gqO5rKjKYy+z8+wCxsw/9AJx6ry2bKkBWJDbDFY1IVxBMYgiQevf/BEw3r705KioTuTmbuTmba9n/MrsC6/4FmQkUWlEWB1lkHYjGx8JNSljlt01Wlc8ZiWGVBPP4iSOLR+x+s3/LR7fGMstp2e0K6PS617DtsVIVV/wPd04h2NYBCqSKdZPKlS6OauqqCVggpF9cOIB7/EhjxUP0Pbo5JN0fnbo7NDY9Kw2Nzw6PSno86vG4pqBWCIx6a/8HQvbmhe3OD96TBe3OD9+aG7s3t/uAzr1sKaoXAiIfqf7C9pXNHS+f2li92tHTueL9zx/udO1uOet1SUCsERjzwPwB+IzDiAcBvQDwAcBIA8dyZQbKUgMtAPNWTgMtAPNWTgMsETzwsDwPP+67nCbhM8MRj4GFg1r3EtaFI9KJhnk4hVBc7n//nQLQuFAqF1nba78oXY0+bXqsCSVwbEg5BPB4RPPEYexhUUDznd0ZC60TObg3x1ADBE4+ph0GlxHNoXejpnQNl9++BaB3X2AXx+J7gicfUwwDiAe4QPPGYehiYiGdnIXKgNCUT15KxnXWx8zPyoXWlOIVDyhSO+Ke+cm2Gi7GnQ8Ihsua8JktHNMo8vzNSrPzQOqV54tpQJNoZezpUePTqFNRlIR4vCZ54TD0MDMVT0EzpmURcSywJHFoXoow8eSWwRwB9htIRcuQhhz7KiJS/Ymn0E9cWVafIptR4pXKIx0uCJB7ZmoeBychT6ruR6EXN8hpr2qYMF+SUrziAlBSoykAVT6fWwEA3LdTUQzaY+jPE4yUBE48VDwMHxFMaK0JGT01EBpZ4yGuxxkaIJyAERjyyZQ8De+JRTdsGonX0aVuUyEB5+tdnYE7byCli8eko3yrliud3RohpG8TjX4IkHoseBjbFQ86mItGd9JGntH7AePOjzUA8BeXXEpRqL+af/kvvXgviIR63BqJ1xIIBxONXAiMe6x4GbPFUeQIuExzxWPYw8LwTQzw1QmDEY93DwPNODPHUCIERD9XDwPP+6qsEXCY44kGCeHwGxFM9CbhMAMQDgD+BeADgBOIBgBOIBwBOfCSeVDI+1B5OJeMOXsOlz7uDmqAC4nn48GH5lciyPNQeTvUvH2oPm2dVfbJTLYbix92o2BCP/gOmAKgoVzyXLl06c+bMwsJC+U1JRMND7WFLgw+3eFT5jD4KRXweEQA6ZYnn4cOHZ86cOXLkiHX9hF6P123qXBE9vvzPPY/sOh/e892i1suh1+Nycdp2dvlQm9ng47R4BmKRSCxm/UukoCYpd+RZWFiwpZ9f1G+iJuVsIhpOnV2ajFVEPKIQisRi+XAD9bdGiU8pUvRRygTxAAMq8MxjVz9Ptr7GSsrMLRkzm7lZFQ/5eVD2F6oZdUM8wJjKrLZls9mjR48eOXLkypUrppkXRRsa45v0aVG0IZWMJ5rCI/GlySbDwcf6yDOgPmoqHqIQxAOM8WDkWRRtYCVZlhPR8Eh8aSJqJB7Nd6ZVGqDryqJ4iA9VG83rAJBl9595ejc8a5yUmVui0WDmplpvLn5zXZZl9foy18hDgJEHGOP2atvpN565fvAPrHT6jWdSyXh/Y3ik65H+Rsrgk3/SV/d64vGf7O7G4imMMmx9QDzAGLff84gvLbvS/IKSLqt/uNz8gvjSMlmWDcQDgH9we4dB1+rFSvpy9eKuhkJavbirIX9EluX+xrCSym8bAM7ho71tAAQLiAcATiAeADiBeADgBOIBgBOIBwBOvBHPD/Hff/3hL3s+eDze+vj/7H38xF8eO77nse73Hv1y96M/xH/vSZMAsIs34vn6w18+XJh6mP2/hbn/XZj+bn6iZ2Hk0/nbH+WGdn/94S89aRIAdvHByPP+shN/eeyrPY92v/fol7v/sZZGHlFQ9go54awAtwbn8cbD4MbtiXda4zfuztyfzdyfzWSz2fuz0o27M++0xm/cnii/SQHBonjYbgqlXX268xCP83jgYXAuMbj78LmbY+nx+3MzaWkmLc1lMjPpzNj9uZtj6d2Hz51LDJbZqoBQEA8TZfOqINC3qIpC8agoaHfLAudxe1e1LMsHj3/fcerarfH05Iw0J2XmpMzCfHZOykxOS7fH0x2nrh08/n05rQoOpuIp5TMbRLAF3APcjueRZXnbvpN//eHWzbH02H3pQVp6UBp5pOGx9J2xB9v2nTSsQD9ZIYMSyNieSEzMh7cJYimXKuDHKINhzTFtZiKSjiUJTcvJaZuRisyVoR95yDopLVNOiwKi/crAg0jSt5u7xu5LJ77+IfzUyy37T0xOzYSfenkuM188ct5o2qZ/AFAfKXUjomconVYbBWcpA7NmpjuCrZZXQjzqeEDiYKGJgn52l58QYqZXDh54GKyLfjoxkwk/9fLU2FT4qZdn5uaL/1WOnL3wM7Owvh9pjxR7DXmC+rNZBks1Fz0TFP2RBYrjDLU2mSYedRH2TavaRD2pFqRu7DHXOjDFg5HHefFY0waPePQFNT5xbLNES+KxetPF48xyxTpJedmJQgemePDM83Zz18hUumX/CWWSNjWbCz/1cmo2VzxiOm0r/F8XY/k+rp5cUQxAuMRjqeZSgHdM9ThhseX2xWM8UdSfJQoT8zuIpwJ4sNq2bd/J0xeS49OZiZnMxEy2kDITM5nx6cydsSmTBYPSFETl+0F/rC9LPFZq1vjEGa4XaFtennjIphUrZTjU5eeCgoCRp4J48J7n4PHv4729N+/e+Gn47qWh8UtD4xcHJy8Ojl8bvnvr7mC8t7dmlqqdBOpwHg92GJxLDLZ92jM//WN66lJq/Fpq/NrkWDI1cS2dujQ//WPbpz0185LUQbDBwAW82dt2LjG4cW939MPjW9q6t7R1b2n7cktbd/TD4xv3dkM55UK15wIOgHgeADiBeADgBOIBgBOIBwBOIB4AOPFBJCk8DEAwgYcBAJz4YOSpXQ8Du+Q32ggxV96Aev6e1fMGmAEPg8Cg3q0WLPGwbRhk9qbAqhcPPAxcw5VI64pviTO2YQh2/Dg8DAJDMMWTh9F4TTRUwICHgYceBjbqJ/IJoqqHE8GnsUIP1RoYkGEIRPC5tsXERSKxAfpVzH8PrDunZBiIRUoV6DL43oYBHgbeehhYrp/sf+oWqvqXmXiIrs/0NtB9aNxeO1k3TzlNVECpwfc2DPAwYGdw2sPAXv008WhqEK2MPKpfp5G3Aesqln4P2uGAKR71KE+/jmlTPQIeBuwMTnsY2Ky/wuIx9TYwEo/p78H87vWFmOLxqw0DPAyMMzjtYWC5ftvTNiIvtbeZehsYTNsM20mFHkmubWhxAqyeCZs21SPgYWCa2bjmcjwMbNevE4/KoaC0YEAcZvsWUL0NCketLxiUJR7ary04NgzwMKgiGOvBQcV7dZgAD4NAMxCLqAaHatOOv+8HHgYBh1iE8ndPs4MYDBsGxPMAwAnEAwAnEA8AnEA8AHAC8QDAiQ8iSeFhAIIJPAwA4MQHI0+teBiIFj/f6yr+fxPpY+Bh4BpOikcfZcfIpD0N8ZQBPAxcwznxiIJqmyX9KuxgCcAJPAxcw51pG2NzaCHgGeKpIPAwcM3DgBAPJSu9TlVgppW+Tx958vuTKcLyvU+An4GHgUkGZs08HgYGEflUPwBGrBsLIlJMc2F9ABNRxNc+AX4GHgbsDJX1MFBP23R/5Wl1sqKsaT4BTG0RlZiMPL70CfAz8DBgZ6ish0FRPPSIfFvioVRtuEygRtteX/sE+Bl4GBhnqKyHgUFEPnM0M5+2US9IW4NWB3IHwyfAz8DDwDSzcc3WPQyIZx5KRD5jNGNYFGgrViOI9sXjV58APwMPg+DghEUB1FEG8DDwM45bFGCDQTnAw8DfOGdREBCfAD+DeB4AOIF4AOAE4gGAE4gHAE4gHgA48UEkKTwMQDCBhwEAnPhg5IGHAR8+f8Hp8+ZVAngYuIafxWO8fYHrLMRjCjwMLONL95xCuJvAjN7mPlv9wMPANfwpnjzGm07LOVvFwMPACw8DerXkcU0AAu24JpCuPP+DyounBtwR4GHgvoeBUbW00DfGcc2NlOd/4KR4qtYdAR4G7AwOeRiwqmUFXbOOc4ZwU/wPqL9X49+6+dkacEeAhwE7g0MeBqxqXRIPHQfFU73uCPAwMM7ggIeBUbXc0zb6SMg5bdOtMvOcrQF3BHgYmGY2rpnDw4BVLduxgHrcRDzW/A+Ixjklnup1R4CHgV9hTZX4FobdX06uBnWYAA8D/8ByLOBzMnDc/8D08sFdg7YIPAz8BMuxgM/JwDn/A2PEWnFHQDwPAJxAPABwAvEAwAnEAwAnEA8AnHgmHtgYgKDjmXhgYwCCjj9GHhs2Bryvyt1/xR4IauFdpmN442Eg89sY1LJ42BsFSnvlWDfJKAvxlIEHe9vksmwMalM8xm4BoqDayKp5tV/rTgPO4cGuarksG4PaFE8eCzfBzFIVvwB/4UE8jyzLP/x0+87Yg5m53P3ZrE0bA5GM1y/9kaUbCJA7/7Whz7T4AepxItreZM+WfvJkVqEumsG4f5sLgDLyGJatAacB53A7kvSr2D+T6cDR01+d/N6OjQE1Xp8aJa/qR8SUXxeLZmItoI62Z/ZO/UOFtQq10ThGGypNxEPEmlktWwNOA87htofBF+89m8nOK+n66U1fvLfqwNHTdiKxmSHQ2r+bFqOaWRYC6jBiTcBa4QLEaGEpPpxWoXp0JKqjDEUG4jENFq1ZpwHncHvk+WTnr+ekXFrKpaXcUP+e66c3fbLz1+WKhxolb0M81N5fVCZLPOx20Y8wKrTzLGIQIGfax2vWacA53H7m2b/jN9OzuaOnru460j89m5ueze7f8Rs7NgYmZhfEzMXIEoBlIUA7rpoMsWdG1s0VND1SM7006qtmAc8EcBpwHrdX21q21E9OZyans5Mz+dSypd6OjQF12kaNklc/h9M9BC0vGAgW1gusmivoeiR9tcPk5ksC0E38BBFOA27g9nueXZv+5d5U5uipq7s++fbVphMjU5ndm1f728agqjtQVd+c07i9w2DbOy/emZgrJOn2hLTtnRf9bWNQzf0LGwzKwe29be/+6V/1yd82BlUqnppxGnAOxPMAwAnEAwAnEA8AnEA8AHAC8QDAiQ++hg0DAxBMvBEPDAxAFeCDkceGgYGs/lBH2fjkHaFPmgFs4o2HAa+BgVwJ8RD7NU16bSU9A4j9a9RAaYgneHjgYVCGgYFcvngMvnuoy1VJzwBEQVcfHngYlGFgIJcrnoFYxPwraaqLVcozoKLTTeALPPAw2Lbv5F9/uHVzLD12X7JpYCBb+jghGYYZ027EF0R2ZA3tYhXyDCBnbdTYGxgJBA8Pvob9dnPX2H2paFdgx8BAJsRjZEVA/ZAtJZa0TPFweAZQH3BgJBBM3PYwkMv8lHxRPBatCGjR1zTxuOUZQD0DI4Fg4sHI45h4aFYE+X+q1rpKMuEdefg9A6hnYCQQTDx45nm7uWtkKl20K7BjYCAbTdsIKwLqtI2sgmfaVo5ngDwwQE4wS8HjMBIIMB6stm3bd/L0heT4dGZiJlNwL7BoYCBbWjAgovGpK2vliofDM4D6cV0YCQQcD97zHDz+fby39+bdGz8N3700NO6sgYHxI79PuqVPmgFs4sEOg3OJwbZPe+anf0xPXUqNX6u0gcFALELzCWVk9cPir0+aAezizd62c4nBjXu7ox8e39LWXXkDA9oUSYtPIvh90gzABeJ5AOAE4gGAE4gHAE4gHgA4gXgA4ATiAYATiAcATnwknlQyPtQeTiXjXjfEU8hvRbq/72C0o2PzmxdG3b1oYPHGw4DKUHs41b98qD1snlXz5amQ/p2oZhs183NUBqddgfqtHrfF8/Nn9a2b61s/6+MST1/P5vqO3luao5O9b7ZuridTz1VKwdbN9a0GVxzt6KAU1xbMt7+lY9JWw8vGg71tLBLR8FB72NLgw9jaSWyoNu15ms3X1ntpZfu0QW2uikfXs61w60JLfevm5p7PKOJRMdrRsblZHWdy60JLodTV5lbtWYW+nqJmSnkYBa82B0w8HLuqQ6/H6zZ1rogeX/7nnkd2nQ/v+W5R6+XQ63G5OG07u3yozWzwYe2LLm25Nut5qm8B2wLioRQ3Fg+lfpWcbl1ooTagr6eUp69HGWdYBQMnHtl+PM8v6jdRk3I2EQ2nzi5NxvjEQ26wtDXy6IuXLqGO6ySiEYjwIfWcURRCkZiYL5YPbmVutKNO28hIBP3cUmdpYGJ7IAi0+yIpde5S11T6ZV9PaTpUnCxppWIiHmq3vtrc+lmfaQ2TvW+WBhklP6tgEMUj29fPk62vsZIyc0vGzGZu9Gcepk2a4SOP+tO6hAIKUToUZynio6eq6JxCRFuhLcoljKJyTMQTIi9FtzSwYHugvy81LPG06v/wF06RA4WheOijymTvmxbF06pWLLNgQMUj2/QwWBRtaIxv0qdF0YZUMp5oCo/ElyabDAcflguB2gjAypwnL7J8VtLxgPQ20MqylF2NLhCc9TOtNu0BzSlVrDbVKi7EVKr+vlSwR55CjqvNmqd/sq8biYfytFOo0FQ8qtWLwvNPjY88i6INrCTLciIaHokvTUSNxEN0Dc04oJm3WLwD1V9smrUB6ZSoFg9lKuaueKzZHjDuK48l8bC7poF4mKdUFdoZnVgFgygeu8rp3fCscVJmbolGg5kb89mGOGFhwUC1zkDUFxGESOmfMa0aWXKVRaE4WFVMPGo3BpowLNoeaO5Ljbl4yIUvWf75M9VgolKIdrhQL0OXzlro99SRh1UwcOLhWG07/cYz1w/+gZVOv/FMKhnvbwyPdD3S30gZfHTPKZQ/z8WHFeoLIHVWyjORJvqU/sBu9LBuWzyqZmpGD0H/Lop2y0ppQ9sDg6haC+JhvXLJF6eLRz9n055VKqSuU8uyrJouli5KLRg48cj23/OILy270vyCki6rf7jc/IL40jJZlg3E4wLVaiptcF808QSNIIpHtrnDoGv1YiV9uXpxV0MhrV7c1ZA/Istyf2NYSeW3zTbV6sVheF/FHQaTvW+63wXLJ6g7DKoJcmG5mrB0X/kJkofDTuk9EmM7j++AeADgBOIBgBOIBwBOIB4AOIF4AOAE4gGAE4gHAE4CJ57CvmBvY/0B8MrD4JtddcVksyjEA/yCBx4Gx95aZvBPM/QRKRAP8Aa3d1V/s71OGmmTRtpSydhIomnobGOy69+/2V5HJsMKIB7gF9yO5zm1faWU6jdIp7avNKyAnLYZx/oD4CxuR5KeenelNNJlkPa/utSwArp4aLH+ADiL2x4GX727UhpqL6ZjG1YYJFoFrJGnmAGzOOASbo88xzb8k5SMKenYhhXSUBs1jSSaIB7gc9x+5jn81jIp2SQlm45tWKH8oE9s5cjMaRsl1h8AZ3F7tW3/q/8gJRqPbVghJaLUZKgcmTnyUGL9AXAWt9/z7PndkmMbVkiJRmoyUw4APsKDHQb7hV8ZpPLbA4A7BG5vGwB+AeIBgBOIBwBOIB4AOIF4AODk/wHslAIX7SoOZQAAAABJRU5ErkJggg==" alt="" />
1)创建工程、类
2)添加文件夹conf、lib,然后将指定的jar包添加到相对应的文件夹下面。
3)lib下的所有jar选定,右击build Path——>add to build path。效果如图。
4)编写wordcount程序
package org.dragon.hadoop.mr; import java.io.IOException;
import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser; import com.sun.accessibility.internal.resources.accessibility;
import com.sun.org.apache.xpath.internal.Arg; /**
*
* @author ZhuXY
* @time 2016-3-7 下午3:37:54
*
* MapReduce 初级案例 wordcount程序
*/
public class MyWorldCount { //Mapper 区域
/**
* <KEYIN, VALUEIN, KEYOUT, VALUEOUT>
* 输入key类型 输入value类型 输出key类型 输出value类型
*
*/ /**
* WordCount程序map类
*
*/
static class MyMapper extends Mapper<LongWritable, Text, Text, IntWritable>{ private Text word=new Text();
private final static IntWritable one=new IntWritable(1); //快捷键alt+shift+s
//map方法每次只读取一行数据,换句话说就是每行启动一个map函数
@Override
protected void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException { //获取每行数据的值
String lineValue=value.toString(); //进行分割
StringTokenizer stringTokenizer=new StringTokenizer(lineValue); //遍历
while (stringTokenizer.hasMoreElements()) { //获取每个值
String worldValue=stringTokenizer.nextToken(); //设置map, 输入的key值
word.set(worldValue);
context.write(word, one); //如果出现就出现一次,存在每行出现几次,这时候键的值一样,多个键值对
}
}
} //Reducer 区域
/**
* <KEYIN, VALUEIN, KEYOUT, VALUEOUT>
* KEYIN key, Iterable<VALUEIN> values, Context context
*/ /**
* WordCount程序reduce类
*
*/
static class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable>{ private IntWritable resultIntWritable=new IntWritable();
//这里key还是key。但是value变成了values
@Override
protected void reduce(Text key, Iterable<IntWritable> values,
Context context)
throws IOException, InterruptedException {
//用于累加的变量 int sum=0;
//循环遍历Interable
for(IntWritable value:values)
{
//累加
sum+=value.get();
} //设置总次数
resultIntWritable.set(sum);
context.write(key, resultIntWritable);
}
} //Client 区域
public static void main(String[] args) throws Exception { //方便起见直接在此处写死了,可以在run as的配置中配置参数
args=new String[]{
"hdfs://hadoop-master.dragon.org:9000/wc/wcinput/",
"hdfs://hadoop-master.dragon.org:9000/wc/wcoutput/"
}; //获取配置文件信息
Configuration configuration=new Configuration(); //当命令格式不正确的时候,提示,类似于shell中的命令提示
// String[] otherArgs = new GenericOptionsParser(configuration,
// args).getRemainingArgs();
// if (otherArgs.length != 2) {
// System.err.println("Usage: wordcount <in> <out>");
// System.exit(2);
// } //创建job。设置配置文件信息和Job名称
Job job=new Job(configuration,"wc"); //1、设置Job运行的类
job.setJarByClass(MyWorldCount.class); //2、设置Mapper类和Reducer类
job.setMapperClass(MyMapper.class);
job.setReducerClass(MyReducer.class); //3、设置输入文件的目录和输出文件目录
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1])); //4、设置输出结果的key和value的类型
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class); //5、提交Job等待运行结果,并在客户端显示运行信息
boolean isSuccess=job.waitForCompletion(true); //6、结束程序
System.exit(isSuccess?0:1);
}
}
5)打包,打成jar包。项目右击Export-->jar file,如图:
aaarticlea/png;base64,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" alt="" width="305" height="321" />
6)将jar包(此处为wc.jar)通过FileZilla客户端上传到CentOS中。
7)运行命令:$hadoop jar wc.jar <input path> <output path>.
运行前提:jps查看,确保dfs和MapReduce服务都已经开启。
3、运行时出的WARNING提示
aaarticlea/png;base64,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" alt="" width="543" height="66" />
增加代码,就是上述代码中注释掉的代码:
//当命令格式不正确的时候,提示,类似于shell中的命令提示
String[] otherArgs = new GenericOptionsParser(configuration,
args).getRemainingArgs();
if (otherArgs.length != 2) {
System.err.println("Usage: wordcount <in> <out>");
System.exit(2);
}
020_自己编写的wordcount程序在hadoop上面运行,不使用插件hadoop-eclipse-plugin-1.2.1.jar的更多相关文章
- idea配置scala编写spark wordcount程序
1.创建scala maven项目 选择骨架的时候为org.scala-tools.archetypes:scala-aechetype-simple 1.2 2.导入包,进入spark官网Docum ...
- 如何使用emacs编写c语言程序,并编译运行
vi和emacs被分别被称为编辑器之神和神之编辑器.vi的入门精通都很难,emacs入门容易,精通难:vi使用起来不停地切换模式,而emacs则不停地ctrl,meta等组合键.因此,高德纳大师说操作 ...
- Hadoop集群测试wordcount程序
一.集群环境搭好了,我们来测试一下吧 1.在java下创建一个wordcount文件夹:mkdir wordcount 2.在此文件夹下创建两个文件,比如file1.txt和file2.txt 在fi ...
- (三)配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序
配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序 一. 需求部分 在ubuntu上用Eclipse IDE进行hadoop相关的开发,需要在Eclip ...
- 如何让VS2013编写的程序在xp下运行
总体分c++程序和c#程序 1.c++程序 这个用C++编写的程序可以经过设置后在XP下运行,主要的“平台工具集”里修改就可以. 额外说明:(1)程序必须为Dotnet 4.0及以下版本.(XP只支持 ...
- 大数据之路week07--day03(Hadoop深入理解,JAVA代码编写WordCount程序,以及扩展升级)
什么是MapReduce 你想数出一摞牌中有多少张黑桃.直观方式是一张一张检查并且数出有多少张是黑桃. MapReduce方法则是: 1.给在座的所有玩家中分配这摞牌 2.让每个玩家数自己手中的牌有几 ...
- 在IDEA中编写Spark的WordCount程序
1:spark shell仅在测试和验证我们的程序时使用的较多,在生产环境中,通常会在IDE中编制程序,然后打成jar包,然后提交到集群,最常用的是创建一个Maven项目,利用Maven来管理jar包 ...
- 编写Spark的WordCount程序并提交到集群运行[含scala和java两个版本]
编写Spark的WordCount程序并提交到集群运行[含scala和java两个版本] 1. 开发环境 Jdk 1.7.0_72 Maven 3.2.1 Scala 2.10.6 Spark 1.6 ...
- hadoop wordcount程序缺陷
在wordcount 程序的main函数中,没有读取运行环境中的各种参数的值,全靠hadoop系统的默认参数跑起来,这样做是有风险的,最突出的就是OOM错误. 自己在刚刚学习hadoop编程时,就是模 ...
随机推荐
- IOS设计模式浅析之适配器模式(Adapter)
引言 在项目开发中,有时候会遇到这样的一种情景:需要使用以前开发的“一些现存的对象”,但是新环境中要求的接口是这些现存对象所不满足的.怎样应对这种迁移的需求?使得可以复用这些对象,以满足新的应用环境, ...
- MAC下一些常用的命令行
统计了一下工作中一些会常用到的简单命令,加强记忆 ls 查看当前终端目录下面的文件 ls -a "ls -a"会出现一些带.xxxx的文 ...
- [Tomcat]无法使用tomcat6.exe启动服务解决办法, The system cannot find the Registry key for service 'tomcat7'
重新配置环境变量后,可以使用startup.bat启动服务, 但是无法使用tomcat6.exe启动服务, 错误信息: [2011-03-10 18:51:49] [warn] The system ...
- 如何创建Windows定时任务
我们经常使用电脑,有没有那么一个瞬间想着要是电脑可以每隔一段时间,自动处理一件事情就好了呢? 其实Windows还真有这样的功能,很多软件检测更新就是通过这个方法实现的. 这次我们来做一个简易的喝水提 ...
- VBA 字符串操作
Trim(string) 去掉string左右两端空白 Ltrim(string) 去掉string左端空白 Rtrim(string) 去掉string右端空白 Len(string) 计算stri ...
- springmvc 生命周期
1A)客户端发出http请求,只要请求形式符合web.xml 文件中配置的*.action的话,就由DispatcherServlet 来处理. 1B)DispatcherServlet再将http请 ...
- Laravel 5.1 数组帮助函数(随发现更新)
array_add 向一个数组中添加指定键值,如果键值不存在则添加,如果键本身就存在 那么就不添加: $test_array = ['name' => '大K', 'age' => 27] ...
- [ Google APAC 2015 University Graduates Test ] Round C APAC Test
题目链接: http://code.google.com/codejam/contest/5214486/dashboard Problem A. Minesweeper 题目意思: 扫雷.告诉地雷所 ...
- Log4j 使用
源博客 http://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html#3159794 [1]从零开始 a). 新建Java Pro ...
- 免安装mysql配置
1.下载压缩包:去官网下载免安装的MySQL的压缩包http://dev.mysql.com/downloads/mysql/根据机器选择64位或者32位: 2.解压到相应目录.我解压到了D:\Pro ...