所以在安装完hadoop3.1.2以及hive3.1.2后,想操作一波感受一下hadoop的用法。
1.启动hadoop3.1.2
进入terminal后cd usr/local/Cellar/hadoop/hadoop-3.1.2/sbin/ 到sbin文件夹内./star-all.sh并用jps查看各节点运行的状态,是否都启动成功,成功如下如。
2.新建input目录
进入hdfs系统后创建一个input目录hadoop fs -mkdir input查询hadoop下面所有目录hadoop fs -ls
3.上传wordcount测试文件LICENSE.txt
这里要说明一下,这个warn实在困扰我很久,看了多种解决方案都暂时没有解决问题,尝试了环境变量的配置包括JAVA_LIBRARY_PATH,以及hadoop-env.sh中添加
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
都不行,调试了2个小时心态崩了。但是不影响程序进行,姑且let it be改日再解决治好强迫症。
==========
Hadoop开启关闭调试信息
开启:export HADOOP_ROOT_LOGGER=DEBUG,console
关闭:export HADOOP_ROOT_LOGGER=INFO,console
==========
将hadoop-3.1.2目录下的LICENSE.txt文件传到hdfs中,在该目录下操作,通过hadoop fs -ls input查看是否上传成功
4.通过hadoop自带示例程序统计各单词出现次数
Maggies-MacBook-Pro:hadoop-3.1.2 yuyan$ hadoop jar usr/local/Cellar/hadoop/hadoop-3.1.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar wordcount input output
卡住一万年,心态崩了。先另外开启一个新的terminal,把job kill掉。
hadoop job -list 查看任务列表
hadoop job -kill $jobId 终止某个任务
eg: hadoop job -kill job_1576070350408_0002
找到了卡住的原因,原因是内存不足,解决方案见reference3),这件事情告诉我们买电脑一定要买顶配版:)
继续报错,这次是由于yarn-site.xml里面classpath设置不正确。输入hadoop classpath得到结果,重新配置yarn-site.xml
yarn.application.classpath
{此处填写hadoop classpath返回结果很长一串}
配置完成后如下,
重新启动hadoop后进入到hadoop-3.1.2目录下,这次可以了。
5.运行成功后
查看目录hadoop fs -ls 会发现多一个output的文件夹,进入该文件夹后会发现多两个_SUCCESS和part-r-00000两个文件夹,其中part-r-00000就是运行结果(此处结果仅截图部分)。
另外也可以通过网页查看,http://localhost:9870,utilities-->browse the file system,可以看到input output文件夹,点进去可以看见具体文件
以上就是hadoop的第一个示例程序。
references:
1).https://blog.csdn.net/CHL123456789/article/details/88662085
2).https://www.cnblogs.com/momoyan/p/9230559.html
3).https://blog.csdn.net/wjw498279281/article/details/80317424