前期准备
(1)JAVA_HOME:由于Hadoop的配置文件中依赖 $JAVA_HOME。修改/etc/profile文件。
(2)hostname:修改主机名,方便管理。/etc/sysconfig/network。
(3)ip hostname:方便管理,hadoop默认是使用hostname做为ip的域名。/etc/hosts。
(4)iptables stop:关闭防火墙,因为集群须要用到的端口比较多,因此最好是先关掉。7版本:systemctl stop firewalld
(5)visudo:赋予sudo权限,CentOS中其余用户都没有sudo权限。/etc/sudoers。
(6)chown:更改hadoop文件夹的全部者。sudo chown -R user:group hadoop。
(7)验证:在hadoop根目录输入 bin/hadoop,验证是否配置正常。
(8)hadoop-env.sh添加 JAVA_HOME变量。
2,伪分布式部署
··· 以wordcount为例:
(1)修改core-site.xml 文件
<configuration>
<!-- 用来指定默认文件系统的名称以及NameNode服务的主机和端口号
注意:下面的mini主机名要改为你本机的实际的hostname -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hostname:8020</value>
</property>
<!-- 配置hadoop临时保存目录
注意:目录名和你安装的目录名要对应 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/app/hadoop/data/tmp</value>
</property>
</configuration>
(2)修改hdfs-site.xml文件
<configuration>
<!-- 用来指定Hadoop中每个数据的副本数,默认都是3,可是在伪分布式中只有一个节点,因此这个
值必须设置为1 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(3)对HDFS进行格式化
bin/hadoop namendoe -format
注意:只能够格式化一次,若是再次格式化,须要删除配置的临时文件目录 data文件夹
(4)启动NameNode和DataNode进程
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
注意:
启动NameNode时必定要联网。
能够经过jps查看进程是否启动。
能够经过web访问HDFS(http://主机IP(或域名):50070/explorer.html#
(5)上传文件到HDFS
建立文件夹:bin/hdfs dfs -mkdir /input
添加文件到HDFS的input目录:bin/hdfs dfs -put input.txt /input
查看是否上传成功:bin/hdfs dfs -ls /input
(6)运行与查看
运行:bin/hadoop jar share/..../....jar wordcount /input /output
查看结果:bin/hdfs dfs -cat /output/par*
··· 在YARN上运行MapReduce
(1)复制一份 mapred-site.xml文件
cp mapred-site.xml.template mapred-site.xml
(2)配置 MapReduce的计算框架为yarn
<!-- 配置MapReduce的计算框架,能够是local,classic,yarn,若是不配置,默认是local -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(3)配置yarn-site.xml文件
<!-- 设置该属性通知NodeManager须要实现名为mapreduce.shuffle的辅助服务-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
(4)启动
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
或者:start-yarn.sh
经过:http://hostname:8088 查看yarn上执行的程序。
··· 配置历史服务器和日志汇集:
(1)配置mapred-site.xml文件
<!-- 配置历史服务器的地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>mini:10020</value>
</property>
<!-- 配置历史服务器的web展现地址,以及端口号 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>mini:19888</value>
</property>
(2)启动
sbin/mr-jobhistory-daemon.sh start historyserver # 启动历史服务器
查看:http://hadoop11:19888
(3)日志汇集
做用:在MR任务运行结束后,将相关的运行日志上传到HDFS文件系统中。
配置yarn-site.xml文件:
<!-- 配置日志汇集属性-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 配置日志汇集的时间 (7天) -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
配置完后须要 重启 历史服务器和 yarn
··· 注意事项:
· start-dfs.sh 能够一次启动NameNode、DataNode和 SecondaryNameNode,可是须要输入三次密码,能够通 过设置本地免密登陆,来面输密码;ssh-copy-id -i ~/.ssh/id_rsa.pub shendeng@hadoop11(本地主机名)。
· start-yarn.sh 能够一次启动 resourcemanager和nodemanager。
··· 5个配置文件
· core-site.xml:配置hadoop的文件系统为hdfs以及地址、临时文件夹位置。
· hdfs-site.xml:配置SecondaryNameNode的主机地址、NameNode的web地址、关闭文件系统的权限控制。
· yarn-site.xml:配置ResourceManager主机的位置、shuffle服务、开启日志汇集功能、日志保存的时间。
· mapred-site.xml:配置MapReduce的计算框架为yarn、MapReduce历史记录地址、历史记录web地址。
· slaves:在该文件中添加从节点的主机名(注意不能有空格)。
··· 启动
· 复制配置文件:
将配置文件复制到其余节点上。scp -r /opt/app/hadoop27/etc/hadoop/ hadoop22:/opt/app/hadoop27/etc/
· 初始化NameNode节点:
注意:必须删除 /tmp和 hadoop根目录中的 data/tmp文件,不然没法初始化
在部署NameNode的节点上初始化NameNode。hadoop namenode -format
· 启动守护进程
在部署NameNode的节点上启动 HDFS。start-hdfs.sh
在部署resourcemanager的节点上启动YARN。start-yarn.sh