需要安装的环境资源:
JDK1.8 链接:https://pan.baidu.com/s/11CFyc-H2K-ZGppnkKk9KPA 提取码:4o3e
Hadoop2.7.1 链接:https://pan.baidu.com/s/16FqLT4GIXDiXLgWBbJOKZg 提取码:pwft
远程访问工具使用SecureCRT8.1,可参考https://mp.csdn.net/postedit/84615230
本人使用的CentOS6.5.min版,资源参考:
安装过程 https://mp.csdn.net/postedit/84618601
网络配置https://mp.csdn.net/postedit/84619868
本人的安装过程使用的是普通用户hadoop。
集群设计:
hostname | IP | 节点进程 | ||
hadoop1 | 192.168.11.100 | NameNode | SecondaryNamenode | ResourceManager |
hadoop2 | 192.168.11.101 | DataNode | NodeManager | |
hadoop3 | 192.168.11.102 | DataNode | NodeManager | |
hadoop4 | 192.168.11.103 | DataNode | NodeManager |
安装步骤:
第一步(hadoop1、hadoop2、hadoop3、hadoop4同步):创建hadoop用户
创建hadoop用户:useradd hadoop
设置密码:passwd hadoop
配置hadoop的高级权限:vi /etc/sudoers 增加hadoop的权限
第二步(hadoop1、hadoop2、hadoop3、hadoop4同步):配置IP与hostname的映射关系
修改/etc/hosts文件 sudo vi /etc/hosts
增加以下内容:
192.168.11.100 hadoop1
192.168.11.101 hadoop2
192.168.11.102 hadoop3
192.168.11.103 hadoop4
第三步:安装SSH免密(作用:在启动hadoop的相关进程时,可以不用再输入密码。)
安装SSH,命令:ssh-kygen
把生成的秘钥文件分别copy给localhost、hadoop2、hadoop3、hadoop4,并验证是否成功。
第四步(hadoop1、hadoop2、hadoop3、hadoop4同步):上传、解压JDK、Hadoop安装包(本人这里统一放在hadoop用户家的apps目录里,apps是自己创建的空文件夹。)
使用SecureCRT中的SFTP工具上传文件到指定的工作目录中,SFTP的使用可参考 https://mp.csdn.net/postedit/84632007中的第二步。
解压
使用普通用户hadoop配置JDK全局环境变量
在/etc/profile文件末尾添加:
JAVA_HOME=JDK的解压路径
HADOOP_HOME=HADOOP的解压路径
检查配置是否成功
source /etc/profile 更新/etc/profile文件
java -version 查看JDK的版本号
hadoop version 查看Hadoop的版本号
第五步(hadoop1、hadoop2、hadoop3、hadoop4同步):配置Hadoop文件(配置文件在Hadoop安装包的etc/hadoop目录下)
1、配置Hadoop的core-site.xml文件
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value> 指定hdfs系统的主机及端口号
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/apps/hadoop-2.7.1/tmp</value> 指定hadoop的临时文件路径
</property>
</configuration>
2、配置Hadoop的hdfs-site.xml文件
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/apps/hadoop-2.7.1/data/name</value> 指定namenode节点进程对应文件的存放路径。
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/apps/hadoop-2.7.1/data/data</value> 指定datanode节点进程对应文件的存放路径
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop1:50090</value>
</property>
</configuration>
3、copy一份mapred-site.xml.template 命名为mapred-site.xml文件
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value> 指定mapreduce工作的资源管理器
</property>
</configuration>
4、配置Hadoop的yarn-site.xml文件
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
5、修改hadoop的hadoop-env.sh文件
找到export JAVA_HOME把值设置为JDK的安装路径
6、修改hadoop的slaves文件(指定DataNode的节点在哪些hostname上)
删除localhost,增加以下内容:
hadoop2
hadoop3
hadoop4
第六步(在hadoop1上):Hadoop格式化
命令hdfs namenode -format
注意控制台输出的信息,有没有报错,这个时间的报错一般为配置文件的书写错误。
如果没有报错信息,并且出现了下图中红框中的内容,说明已经格式化成功。
第七步:启动分布式文件系统
命令start-dfs.sh(在hadoop1上)
启动成功,使用jps查看四台机器上的相关进程,出现进行如下表格:
hostname | 节点进程名字 | |
hadoop1 | NameNode | SecondaryNameNode |
hadoop2 | DateNode | |
hadoop3 | DateNode | |
hadoop4 | DateNode |
第八步:启动start-yarn.sh(在hadoop1上)
启动成功,使用jps查看四台机器上的相关进程,出现进行如下表格:
hostname | 节点进程名字 | ||
hadoop1 | NameNode | SecondaryNameNode | ResourceManager |
hadoop2 | DateNode | NodeManager | |
hadoop3 | DateNode | NodeManager | |
hadoop4 | DateNode | NodeManager |
第九步:运行Hadoop官网的wordcount实例(在hadoop1上进行)
1、上传Linux系统中的任意文件到HDFS分布式文件系统的跟目录下。
命令hadoop fs -put Linux系统中的文件路径 /
如:hadoop fs -put /home/hadoop/apps/hadoop-2.7.1/etc/hadoop/core-site.xml /
2、运行Hadoop官方wordcount实例
命令hadoop fs jar hadoop安装目录/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /core-site.xml /output
如:hadoop jar /home/hadoop/apps/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /core-site.xml /output
运行过程没有报错,说明Hadoop伪分布式环境已经完成。
使用hadoop fs -ls /output/命令可以查看计算结果文件,使用hadoop fs -cat /output/part-r-00000可以查看结果信息。