Hadoop集群搭建

来源:互联网 发布:胶州加工中心编程招聘 编辑:程序博客网 时间:2024/06/05 16:48

集群架构:1个老大,3个小弟



准备:4台机器,修改主机名,配置好ip以及与主机名的映射,关闭防火墙

注意:下面的配置只在一台主机上进行,完了你通过scp命令直接复制到其他3台主机即可。如果你使用的是虚拟机,直接克隆3份就完事了。


前提:linux上已安装jdk,如果没有请点击此链接查看快速安装教程

1.第一步,新建文件夹

mkdir /cloud

cd /cloud

2.上传hadoop压缩包

rz 

3.解压到当前文件夹

tar -zxvf hadoop-2.7.2.tar.gz

4.配置环境变量

vi /etc/profile 

在末尾更改如下:

export JAVA_HOME=/usr/local/java/jdk1.8.0_101
export HADOOP_HOME=/cloud/hadoop-2.7.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

5.使环境变量生效

source /etc/profile

6.Hadoop配置(修改5个文件)

修改6个配置文件:


注意:

(1)<!---->中的文字为注释,最好不要写进配置文件

(2)以下蓝色字体misswall是本人的主机名,你应该填写你自己的主机名;通过hostname命令查看主机名

可以通过修改以下两个文件来修改主机名并与主机的ip绑定;

/etc/hosts :IP与主机名的映射
/etc/sysconfig/network: 永久修改主机名(需要重启);hostname 命令暂时修改主机名,但重启失效


1.hadoop-env.sh

vim /cloud/hadoop-2.7.2/etc/hadoop/hadoop-env.sh

把export JAVA_HOME={$JAVA_HOME}改为:

export JAVA_HOME=/usr/local/java/jdk1.8.0_91

2.core-site.xml

vim /cloud/hadoop-2.7.2/etc/hadoop/core-site.xml

<configuration>
<!--配置hdfs的老大namenode的地址-->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://misswall:9000</value>
        </property>

<!--配置hadoop在运行时产生的文件(不是临时文件)存放位置-->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/cloud/hadoop-2.7.2/tmp</value>
        </property>
</configuration>

3.hdfs-site.xml

vim /cloud/hadoop-2.7.2/etc/hadoop/hdfs-site.xml

<configuration>


<!--配置HDFS保存副本(包括源文件本身)的数量-->
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>


<!--配置本地存放namenode数据的目录-->

 <property>
                <name>dfs.namenode.name.dir</name>
                <value>/cloud/hadoop-2.7.2/data</value>
        </property>


<!--配置本地存放datanode数据的目录-->

 <property>
                <name>dfs.datanode.data.dir</name>
                <value>/cloud/hadoop-2.7.2/data</value>

        </property>
</configuration>

4.mapred-site.xml


mv mapred-site.xml.template mapred-site.xml

vim /cloud/hadoop-2.7.2/etc/hadoop/mapred-site.xml

<configuration>
<!--告诉hadoop以后MR运行在yarn上-->
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

5.yarn-site.xml
 
<!--NodeManager获取数据的方式是shuffle方式-->
  <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

<!--指定YARN的老大(ResourceManager)的地址-->
         <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>misswall</value>
        </property>


6.slaves

在slaves文件中配置子节点,一行一个,写ip或者主机名都行,例如:

192.168.1.102

192.168.1.103

192.168.1.104

7.在主节点上初始化HDFS(格式化文件系统)

命令:hdfs namenode -format
格式化成功标志:16/08/08 09:41:56 INFO common.Storage: Storage directory /cloud/hadoop-2.7.2/tmp/dfs/name has been successfully formatted.

8.启动Hadoop

start-all.sh(该命令已过时,用依次start-dfs.sh和start-yarn.sh来代替,即先启动HDFS再启动yarn)


启动期间,可能要多次输入密码,点这里查看免密码登陆的配置。

如果permission deny,可能是因为密码的缘故
sudo passwd
设置新密码
重新格式化
再启动

9.监控和系统测试

如果启动成功,可以通过浏览器来监控,这里的ip写你主节点的。

http://192.168.1.88:50070是HDFS管理窗口
http://192.168.1.88:8088是yarn管理窗口


运行测试hadoop的一个小例子wordcount(单词统计)

[root@misswall ~]# cd /cloud/hadoop-2.7.2/share/hadoop/mapreduce
#创建一个文件
[root@misswall mapreduce]# vi words
hello tom
hello jerry
hello kitty
hello world
hello tom
#上传到HDFS上
[root@misswall mapreduce]# hadoop fs -put words hdfs://misswall:9000/words

#运行例子
[root@misswall mapreduce]# hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordcount hdfs://misswall:9000/words hdfs://misswall:9000/output

查看运行结果:

方法1:进入192.168.1.88:50070来查看文件系统

方法2:命令行查看:hadoop fs -ls /


1 0