kinit有效期24小时
kinit 账号
密码
my_hadoop.jar 启动方法 最后的目录为output目录
hadoop jar my_hadoop.jar myHadoop.test_hadoop first_1000_new output_12
其中myHadoop.test_hadoop这部分 如果创建的是mr工程 只需要类名即可
查找 杀死hadoop任务
hadoop job -list
hadoop job -kill
日志地址
hadoop fs -ls /user/yarn/logs/songshengtao/logs
拷贝日志到本地
hadoop fs -copyToLocal /user/yarn/logs/songshengtao/logs/application_1556114949039_0099 ./
//日志相关内容分很多文件
主要分为系统服务输出的日志、mapreduce程序日志
从经验上来看 最大的文件为mapreduce日志
要查看运行时日志只需要查看mapreduce日志即可
hdfs基本操作:
往里面拷贝文件
hadoop fs -put 本地文件* /user/ming
或者 hadoop fs -copyFromLocal命令 区别在于put不限本地或者hdfs的来源 而copyFromLocal限制来源是本地
从里面拷文件到本地:
hadoop fs -copyToLocal /user/ming/file* ./
删除文件
hadoop fs -rm -f /user/ming*
移动文件
hadoop fs -mv /user/ming /user/ming/2 (如果是移动很多文件或者大文件不推荐直接用mv,用distcp比较好,此处不展开)
从hdfs读文件,处理,再写回去(大文件请用mapreduce的方式)
hadoop fs -cat /user/ming/1.txt | python worker.py | hadoop fs -put - /user/ming/1.txt.new
可以直接使用 [prepare_hadoop.py]
(/docs/person/84) 脚本,生成一个 MapReduce 任务模板
更新: 现在map内存是1g,reduce是1g最大,如果需要更大请通过运行时参数配置,如
-D mapreduce.map.memory.mb=4096
-D mapreduce.reduce.memory.mb=4096
我是分隔符
hadoop jar /opt/cloudera/parcels/CDH/jars/hadoop-streaming-2.6.0-cdh5.11.0.jar \
-files count_words_reducer.py \
-D mapreduce.job.maps=1 \
-D mapreduce.job.reduces=10 \
-input /user/**/wechat/$DATE/part* \
-output /user/**/wechat/$DATE/articles \
-mapper "cat" \
-reducer "python count_words_reducer.py article"
说明:
- 需要被执行的脚本,引用的文件,统统需要通过files参数上传到hdfs
- maps, reduces的个数自己看着办,如果有多个reduce最后会结果出现多个文件
- input, output都是hdfs中的地址,支持通配符
- mapper是执行map操作的脚本,他的input,output都是标准输出
- reducer也是input, output都是标准输出。
- 运行起来之后输出的地址有一个链接,可以点击查看任务进度和日志等。
- 如果任务失败,且出错日志无法被找到的时候,全部的日志在hdfs的 /user/yarn/logs/下面,对应的application_id下面。
参考文档
https://hadoop.apache.org/docs/stable/hadoop-streaming/HadoopStreaming.html