为Spark部署HADOOP2.6的HDFS集群

原创 2015年07月08日 12:13:53

Single Node

HADOOP的安装,参考官方文档:
http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/SingleCluster.html
关于HDFS的不错的文章:
http://www.cnblogs.com/xia520pi/archive/2012/05/28/2520813.html
注意:只需要配置hdfs即可,不需要配置yarn。
注意:关于SSH的keys,可以参考官方文档的配置,大致就是能够直接ssh到机器。

Cluster Setup

HADOOP的集群安装,参考官方文档:
http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/ClusterSetup.html
注意:按照single cluster配置好每个hdfs。
注意:hdfs的fs.defaultFS换成域名就好。
注意:etc/hadoop/masters不再使用了,只有etc/hadoop/slaves有用。
注意:格式化的参数应该是hdfs的namenode的名字,即配置在core-site.xml中的fs.defaultFS的域名。
注意:关于SSH的keys,可以参考官方文档的配置,大致就是能够直接ssh到机器。

Machines

配置一个HDFS集群,一个namenode,两个datanode,一个客户端。

  • Namenode: 192.168.9.109
  • Datanode: 192.168.9.149,192.168.9.60
  • Client: 192.168.9.96

另外,用到的HDF URI是:hdfs://hdfs.winlin.cn:9000

Install Hadoop

HADOOP的安装:

tar xf jdk-8u45-linux-x64.tar.gz && tar xf hadoop-2.6.0.tar.gz &&
sudo mv jdk1.8.0_45/ /usr/local/ && sudo mv hadoop-2.6.0 /usr/local/ &&
cd /usr/local/ &&  sudo ln -sf jdk1.8.0_45/ jdk && sudo ln -sf hadoop-2.6.0/ hadoop  &&
cd ~ && ln -sf /usr/local/hadoop

Hosts

它们的sudo vim /etc/hosts的配置如下:

# namenode
192.168.9.109 hdfs.winlin.cn

其中,namenode和datanode都需要配置这个。另外,将/etc/hostname改成唯一的,否则两个datanode有同样的hostname时会在web上显示不出来。
修改hostname的命令:

sudo vi /etc/hostname

然后在hosts中添加一个记录,譬如hostname是namenode时:

127.0.1.1   namenode

注意:修改hostname后必须重启机器才能格式化hdfs。
注意:namenode的hosts也必须用它的外网IP,否则datanode无法连接上,hadoop会解析这个域名后侦听ip。

PATH Setup

它们的sudo vim /etc/profile添加执行路径:

# big data.
export JAVA_HOME=/usr/local/jdk
export HADOOP_PREFIX=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

注意:让profile立刻生效,可以执行source /etc/profile

HDFS Config

Namenode和Datanode的vim ~/hadoop/etc/hadoop/core-site.xml的配置如下:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hdfs.winlin.cn:9000</value>
    </property>
</configuration>

注意:启动时用命令hadoop-daemon.sh start namenode启动namenode。

Namenode需要配置dfs.namenode.name.dir,默认在/tmp下面,重启系统后将需要重新格式化HDFS,并且信息全部丢失。
修改Namenode的配置vim ~/hadoop/etc/hadoop/hdfs-site.xml,配置目录:

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/hdfs/namenode</value>
    </property>
</configuration>

使用命令创建目录mkdir -p /usr/local/hadoop/hdfs/namenode

Datanode也需要配置dfs.datanode.data.dir,默认在/tmp下面,重启后数据全部丢失,但估计会自己恢复(如果全部datanode重启,就没法恢复了)。
修改Datanode的配置vim ~/hadoop/etc/hadoop/hdfs-site.xml,配置目录:

<configuration>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop/hdfs/datanode</value>
    </property>
</configuration>

使用命令创建目录mkdir -p /usr/local/hadoop/hdfs/datanode

Format HDFS

Namenode上格式化HDFS:

hdfs namenode -format hdfs.winlin.cn

注意:需要在设置好hostname后格式化;只需要格式化一次。

Start HDFS

Namenode启动:

hadoop-daemon.sh start namenode

访问web看是否启动成功:http://hdfs.winlin.cn:50070
注意:作为datanode启动时只需要配置好core-site.xml,并不需要namenode中配置好slaves。
注意:datanode是不需要指定slaves的,它根本不关心这个东西。
注意:默认只要datanode配置了同样的hdfs uri,就会加入到这个master,可以通过slaves限制,具体参考dfs.namenode.hosts配置。
注意:启动时用命令hadoop-daemon.sh start datanode启动datanode。

Datanode启动:

hadoop-daemon.sh start datanode

访问web看是否有datanode了:http://hdfs.winlin.cn:50070/dfshealth.html#tab-datanode
注意:如果两个datanode的hostname是冲突的,在web中只能看到一个,但是实际上应该时没有问题的。

Client Usage

客户端Client,他们的vim ~/hadoop/etc/hadoop/hdfs-site.xml配置如下:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
</configuration>

注意:这个dfs.replication是客户端配置,也就是namenode和datanode都不需要配置。

拷贝文件到hdfs:

echo "Hello, HDFS~" >hello.txt && 
hdfs dfs -mkdir -p /srs &&
hdfs dfs -rm -f /srs/hello.txt && 
hdfs dfs -copyFromLocal hello.txt /srs

查看拷贝的文件:http://hdfs.winlin.cn:50070/explorer.html#/srs
或者使用命令: hdfs dfs -cat /srs/hello.txt
或者查看文件信息: hdfs dfs -ls /srs/hello.txt

Others

下面是其他常用的命令。
重启namenode的命令:

hadoop-daemon.sh stop namenode && hadoop-daemon.sh start namenode

重启datanode的命令:

hadoop-daemon.sh stop datanode && hadoop-daemon.sh start datanode

HDFS集群就搭好了,可以给Spark用了。

Ports

可以设置几个端口,默认这些端口都是侦听在0.0.0.0,也就是都能访问的地址。可以侦听到内网地址,或者本机地址。

    <property>
        <name>dfs.http.address</name>
        <value>127.0.0.1:50070</value>
    </property>
    <property>
        <name>dfs.datanode.address</name>
        <value>127.0.0.1:50010</value>
    </property>
    <property>
        <name>dfs.datanode.http.address</name>
        <value>127.0.0.1:50075</value>
    </property>
    <property>
        <name>dfs.datanode.ipc.address</name>
        <value>127.0.0.1:50020</value>
    </property>

或者改成其他端口也可以。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

通过公网IP访问云上的Hadoop集群

背景:从公司内部网络中的Hadoop集群访问部署在亚马逊云的Hadoop集群1. IP、域名设置1.1 给云上每个实例设置一个内网IP(如上图10.0.0.5)1.2 给云上每个实例绑定一个Ela...

本地eclipse连接外网Hadoop

小学生玩Hadoop,欢迎交流 前段时间注册了个阿里云服务器,在上面搭建了个伪分布式模式的Hadoop平台,当使用本地eclipse连接时总是连不上, 通过查询发现,外网中的hadoop如果想要被...

hadoop+ffmpeg 视频转码

hadoop + ffmpeg 分布式转码系统实践 hadoop 安装 ffmpeg 安装 mkvtoolnix 安装 一、分割视频: mkvmerge --split size:3...

win7下eclipse插件连接linux下hdfs单机伪集群 hadoop 2.6

win7下eclipse插件连接linux下hdfs单机伪集群 hadoop 2.6,以及WordCount程序的运行测试。...

1.集群安装 - apache原生版[spark2.1 + hadoop2.6 + scala2.11.8 + jdk1.8 + flume1.6 + zookeeper3.4.9 + kafka0.

spark 2.1 + hadoop2.6 安装
  • feloxx
  • feloxx
  • 2017年04月26日 10:37
  • 876

Centos7 下 spark1.6.1_hadoop2.6 分布式集群环境搭建

摘要在上一篇博客《Centos7 下 Hadoop 2.6.4 分布式集群环境搭建》 已经详细写了Hadoop 2.6.4 配置过程,下面详细介绍 spark 1.6.1的安装过程。Scala 安装...

配置spark+hadoop(hdfs)集群

这两天接到的任务是在全新的服务器上搭建spark+hdfs集群,用于测试刚刚release的工程。 master:sr288(10.1.0.188) slaves: sr494(10.1.2.94) ...
  • yb3232
  • yb3232
  • 2015年07月02日 15:41
  • 198

[Hadoop培训笔记]02-HDFS集群的安装与部署

注:开源力量Hadoop Development网络培训,链接:http://new.osforce.cn/course/52  个人笔记,不具参考性。...

部署hadoop2.7.2 集群 基于zookeeper配置HDFS HA+Federation

hadoop1的核心组成是两部分,即HDFS和MapReduce。在hadoop2中变为HDFS和Yarn。新的HDFS中的NameNode不再是只有一个了,可以有多个(目前只支持2个)。每一个都有相...

Spark2.0.1 on yarn with hue 集群搭建部署(五)hue安装支持hadoop

编译hue,hue元数据管理
  • dockj
  • dockj
  • 2016年11月24日 00:44
  • 929
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:为Spark部署HADOOP2.6的HDFS集群
举报原因:
原因补充:

(最多只允许输入30个字)