本文共 6034 字,大约阅读时间需要 20 分钟。
在 去下载 hadoop,hadoop运行需要安装 JDK
$ tar -zxf hadoop-2.5.0.tar.gz -C /opt/modules 2> 删除 hadoop 中的 share/doc 目录,该目录中存放着Hadoop相关文档用的比较少,占用空间有几G且会影响 hadoop 编译
使用远程编辑软件 进入到 modules/hadoop-2.5.0/etc/hadoop
<1> 编辑 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 文件
将文件中 export JAVA_HOME=${JAVA_HOME} 的 ${JAVA_HOME} 替换成Java目录,使用指令 #
echo ${JAVA_HOME} 查看
<2> 编辑 $HADOOP_HOME/etc/hadoop/mapred-env.sh 文件
<3> 编辑 $HADOOP_HOME/etc/hadoop/yarn-env.sh 文件
使用远程编辑软件 进入到 modules/hadoop-2.5.0/etc/hadoop
<1> 编辑 $HADOOP_HOME/etc/hadoop/core-site.sh 文件,指定namenode主节点所在的位置以及交互端口号,设置本机ip地址,使用 $ hostname 查看
<name>fs.defaultFS</name>
<value>hdfs://hadoop-senior01:8020</value>
注 : 交互的端口号可以修改,由于 apache 一般使用 80 端口号因此此处设置默认端口号 80 开头 <2> 修改 hadoop.tmp.dir 的默认临时路径
在 hadoop 跟目录下创建 data/tmp 目录
编辑 $HADOOP_HOME/etc/hadoop/core-site.sh 文件,增加如下信息
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.5.0/data/tmp</value>
hadoop.tmp.dir 是默认临时路径,默认在缓存目录,会被清理掉因此需要修改路径
编辑 slaves 文件,使用 $hostname 查看机器地址,并设置到文件中
注:slaves 既代表 datanode 又代表 namenode 编辑 $HADOOP_HOME/etc/hadoop/hdfs-site.sh 文件
<name>dfs.replication</name>
$ bin/hdfs namenode -format 注:1> 在 hadoop 根目录中使用 $ bin/hdfs 指令查看所有指令 $ sbin/hadoop-daemon.sh start namenode $ sbin/hadoop-daemon.sh start datanode 通过web浏览器加上50070端口号访问管理界面,访问地址:
$ bin/hdfs dfs -mkdir -p tmp/conf // 创建目录 $ bin/hdfs dfs -put etc/hadoop/core-site.xml /user/chenshun/tmp/conf // 上传文件 $ bin/hdfs dfs -cat /user/chenshun/tmp/conf/core-site.xml // 查看文件 $ bin/hdfs dfs -get /user/chenshun/tmp/conf/core-site.xml /home/chenshun/cs-site.xml // 下载文件 > hadoop-2.5.0/logs/查看具体的日志文件
编辑 $HADOOP_HOME/etc/hadoop/yarn-site.xml 文件,增加如下信息
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
指定ResourceManager的位置,可配可不配
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-senior01</value>
8> 指定 MapReduce 运行在 YARN 上
进入到 $HADOOP_HOME/etc/hadoop/
将 mapred-site.xml.template 重命名为 mapred-site.xml,编辑该文件增加
<name>mapreduce.framework.name</name>
$ sbin/yarn-daemon.sh start resourcemanager $ sbin/yarn-daemon.sh start nodemanager 通过web浏览器加上8088端口号访问管理界面,访问地址:
MapReduce程序打成jar包运行在YARN上
$ bin/hdfs dfs -mkdir -p /user/chenshun/mapreduce/wordcount/input // 创建输入目录 $ bin/hdfs dfs -put data/tmp/wc.input /user/chenshun/mapreduce/wordcount/input // 上传文件到目录中 $ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/chenshun/mapreduce/wordcount/input /user/chenshun/mapreduce/wordcount/output // 打包运行(每次运行输出路径都不能相同) $ bin/hdfs dfs -cat /user/chenshun/mapreduce/wordcount/output/part* // 察看文本结果 $ bin/hdfs dfs -text /user/chenshun/mapreduce/wordcount/output/part* // 推荐使用,能转换成文本在查看 (1)启动日志文件目录 $HADOOP_HOME/logs
.log:通过 log4j 记录的,记录大部分应用程序的日志信息
(3)日志文件的命名规则:框架名称-用户名-进程名-主机名-日志格式后缀
historyServer : 查看已经完成的历史作业记录
编辑 $HADOOP_HOME/etc/hadoop/mapred-site.xml 文件增加,注可配可不配
<name>mapreduce.jobhistory.address</name>
<value>hadoop-senior01:10020</value>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop-senior01:19888</value>
$ sbin/mr-jobhistory-daemon.sh start historyserver 在 的运行中点击 History 查看历史信息,查看信息状态
将 mapreduce 产生的日志文件上传到 HDFS 文件系统上,就可以从页面上查看日志文件
编辑 $HADOOP_HOME/etc/hadoop/yarn-site.xml 文件增加
<1> 指定是否开启日志聚集功能,默认为 false
<name>yarn.log-aggregation-enable</name>
<name>yarn.log-aggregation.retain-seconds</name>
配置完成之后,需要重启YARN的服务进程,然后重新跑一次任务就可以查看过往的日志信息,historyserver同样也要重启
$ sbin/yarn-daemon.sh stop resourcemanager $ sbin/yarn-daemon.sh stop nodemanager $ sbin/mr-jobhistory-daemon.sh stop historyserver $ sbin/yarn-daemon.sh start resourcemanager $ sbin/yarn-daemon.sh start nodemanager $ sbin/mr-jobhistory-daemon.sh start historyserver $ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/chenshun/mapreduce/wordcount/input /user/chenshun/mapreduce/wordcount/output3 <1> 设置不启用HDFS文件系统的权限检查,默认为 true
编辑 $HADOOP_HOME/etc/hadoop/hdfs-site.xml 文件增加
<name>dfs.permissions.enabled</name>
<2> 指定修改 Hadoop静态用户名,默认是 dr.who
编辑 $HADOOP_HOME/etc/hadoop/core-site.xml 文件增加
<name>hadoop.http.staticuser.user</name>
$ sbin/hadoop-daemon.sh stop namenode $ sbin/hadoop-daemon.sh stop datanode $ sbin/mr-jobhistory-daemon.sh stop historyserver $ sbin/yarn-daemon.sh stop resourcemanager $ sbin/yarn-daemon.sh stop nodemanager $ sbin/hadoop-daemon.sh start namenode $ sbin/hadoop-daemon.sh start datanode $ sbin/mr-jobhistory-daemon.sh start historyserver $ sbin/yarn-daemon.sh start resourcemanager $ sbin/yarn-daemon.sh start nodemanager 注:建议不要切换多用户去操作,否则将会出现异常错误 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
在 $HADOOP_HOME/lib/native 目录中,不能获取编译者在什么系统上进行编译的,所以会导致版本不一致,无法加载本地库
$ tar -zxf native-2.5.0.tar.gz -C /opt/modules/ $ cd /opt/modules/hadoop-2.5.0/lib $ cp -r /opt/modules/native/ /opt/modules/hadoop-2.5.0/lib 在 $HADOOP_HOME 中执行如下指令就不会出现警告