2015-12-29 15:33:08 jiaofengaoxue 阅读数 500
  • 大数据HDFS详解

    Hadoop是一个由Apache基金会所开发的分布式系统基础架,是当前最火爆的大数据应用框架, Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算. hdfs作为hadoop重要的组成部分,实现了一个分布式文件系统(Hadoop Distributed File System),HDFS有高容错性 的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序 的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。本课程详细介绍了从部署linux虚拟机环境到实现全分布式启动hdfs进程的全过程,是快速入门大数据的必经之路.

    206 人正在学习 去看看 冯文凯

今天在启动HDFS时遇到问题,日志如下:

logs


SLF4J: Found binding in [jar:file:/home/iespark/hadoop_program_files/hadoop-2.6.2/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/iespark/hadoop_program_files/hbase-1.1.2/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/iespark/hadoop_program_files/hbase-1.1.2/lib/phoenix-4.5.2-HBase-1.1-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
15/12/30 15:29:40 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
ls: Call From hadoopadmin/219.226.86.155 to hadoopadmin:9000 failed on connection exception: java.net.ConnectException: Connection refused;

我的原因是没有将集群关了,就直接shutdown,导致有的进程没有kill,将有关进程全部kill,重新启动hadoop集群即可。

下面是官网给出的解释。

Connection Refused

You get a ConnectionRefused Exception when there is a machine at the address specified, but there is no program listening on the specific TCP port the client is using -and there is no firewall in the way silently dropping TCP connection requests. If you do not know what a TCP connection request is, please consult the specification.

Unless there is a configuration error at either end, a common cause for this is the Hadoop service isn't running.

This stack trace is very common when the cluster is being shut down -because at that point Hadoop services are being torn down across the cluster, which is visible to those services and applications which haven't been shut down themselves. Seeing this error message during cluster shutdown is not anything to worry about.

If the application or cluster is not working, and this message appears in the log, then it is more serious.

  1. Check the hostname the client using is correct
  2. Check the IP address the client is trying to talk to for the hostname is correct.
  3. Make sure the destination address in the exception isn't 0.0.0.0 -this means that you haven't actually configured the client with the real address for that

service, and instead it is picking up the server-side property telling it to listen on every port for connections.

  1. Check that there isn't an entry for your hostname mapped to 127.0.0.1 or 127.0.1.1 in /etc/hosts (Ubuntu is notorious for this)
  2. Check the port the client is trying to talk to using matches that the server is offering a service on.
  3. On the server, try a telnet localhost <port> to see if the port is open there.

  4. On the client, try a telnet <server> <port> to see if the port is accessible remotely.

  5. Try connecting to the server/port from a different machine, to see if it just the single client misbehaving.
  6. If you are using a Hadoop-based product from a third party, including those from Cloudera, Hortonworks, Intel, EMC and others -please use the support channels provided by the vendor.
  7. Please do not file bug reports related to your problem, as they will be closed as Invalid

None of these are Hadoop problems, they are host, network and firewall configuration issues. As it is your cluster, only you can find out and track down the problem.



2018-11-23 00:11:47 XDSXHDYY 阅读数 376
  • 大数据HDFS详解

    Hadoop是一个由Apache基金会所开发的分布式系统基础架,是当前最火爆的大数据应用框架, Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算. hdfs作为hadoop重要的组成部分,实现了一个分布式文件系统(Hadoop Distributed File System),HDFS有高容错性 的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序 的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。本课程详细介绍了从部署linux虚拟机环境到实现全分布式启动hdfs进程的全过程,是快速入门大数据的必经之路.

    206 人正在学习 去看看 冯文凯

HDFS命令操作

# 格式化操作
$ bin/hdfs namenode -format
# 展示文件和文件夹列表
$ bin/hdfs dfs -ls /
# 创建文件夹
	# 在用户目录下创建
	$ bin/hdfs dfs -mkdir AAA/
	# 在根目录下创建
	$ bin/hdfs dfs -mkdir /AAA/
	# 递归层级创建多个文件夹
	$ bin/hdfs dfs -mkdir -p /BBB/CCC
	# 上传本地文件到HDFS,如果上传成功,则删除本地文件(就是剪切操作)
	$ bin/hdfs dfs -moveFromLocal hello_world.txt /
	# 末尾追加数据到HDFS中已经存在的文件里面
	$ bin/hdfs dfs -appendToFile hello_world2.txt /hello_world.txt
	# 查看文件内容
	$ bin/hdfs dfs -cat /hello_world.txt 
	# 查看文件末尾信息
	$ bin/hdfs dfs -tail /hello_world.txt
	# 拷贝本地文件到HDFS,-copyFromLocal可以替换为-put
	$ bin/hdfs dfs -copyFromLocal words.txt /AAA
	# 拷贝HDFS文件到HDFS另一个目录
	$ bin/hdfs dfs -cp /AAA/words.txt /BBB
	# 或剪切
	$ bin/hdfs dfs -mv /AAA/words.txt /BBB
	# 下载HDFS中的文件到本地文件系统
	$ bin/hdfs -get /hello_world.txt ./
	# 下载多个文件,并合并为一个文件到本地文件系统
	$ bin/hdfs dfs -getmerge /*.txt ./demo.txt
	# 删除文件或文件夹
	$ bin/hdfs dfs -rmr /AAA
2016-11-23 19:28:31 KuaiLeShiFu 阅读数 1425
  • 大数据HDFS详解

    Hadoop是一个由Apache基金会所开发的分布式系统基础架,是当前最火爆的大数据应用框架, Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算. hdfs作为hadoop重要的组成部分,实现了一个分布式文件系统(Hadoop Distributed File System),HDFS有高容错性 的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序 的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。本课程详细介绍了从部署linux虚拟机环境到实现全分布式启动hdfs进程的全过程,是快速入门大数据的必经之路.

    206 人正在学习 去看看 冯文凯

启动hdfs步骤:
1.下载并安装Hadoop
2.设置etc/hadoop/core.site(设置hdfs的地址和端口(如果是本机IP,最好设置下ssh localhost的免密登陆))和etc/hadoop/hdfs-site.xml(设置hdfs副本)
3.启动 /sbin/start-dfs.sh
4.查看启动是否成功 浏览器中输入网址http://ip:50070/dfshealth.html#tab-overview

2019-08-29 00:39:43 weixin_42119153 阅读数 35
  • 大数据HDFS详解

    Hadoop是一个由Apache基金会所开发的分布式系统基础架,是当前最火爆的大数据应用框架, Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算. hdfs作为hadoop重要的组成部分,实现了一个分布式文件系统(Hadoop Distributed File System),HDFS有高容错性 的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序 的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。本课程详细介绍了从部署linux虚拟机环境到实现全分布式启动hdfs进程的全过程,是快速入门大数据的必经之路.

    206 人正在学习 去看看 冯文凯

搭建hdfs分布式集群

1、设置静态IP

设置静态IP
https://blog.csdn.net/weixin_42119153/article/details/100124300#commentBox

2、安装jdk

安装jdk
https://blog.csdn.net/weixin_42119153/article/details/100125845

3、设置ssh无密码登录

设置ssh无密码登录
https://blog.csdn.net/weixin_42119153/article/details/100126037

4、安装hadoop

1、解压hadoop-2.7.7.tar.gz

1)将下载的hadoop-2.7.7.tar.gz上传至/home/hadoop 目录
2)解压

[hadoop@hadoop01 ~]$ tar -zxvf  hadoop-2.7.7.tar.gz

3)重命名文件件 hadoop-2.7.7为 hadoop2.7

[hadoop@hadoop01 ~]$ mv hadoop-2.7.7 hadoop2.7

在这里插入图片描述
4)使用 root 用户配置 hadoop 环境变量(三台机器都要配置)

[root@hadoop01 hadoop2.7]# vi /etc/profile

在这里插入图片描述
5)配置hosts映射(三台机器都要配置)

[root@hadoop01 hadoop2.7]# vi /etc/hosts

在这里插入图片描述

2、配置 hadoop 文件中相应的文件

这里使用的是hadoop用户
需要配置的文件如下,hadoop-env.sh,core-site.xml,hdfs-site.xml,slaves,所有的文件配置均位于hadoop2.7.1/etc/hadoop下面,具体需要的配置如下:
1) 配置/home/hadoop/hadoop2.7/etc/hadoop目录下的core-site.xml

[hadoop@hadoop01 ~]$ vi hadoop2.7/etc/hadoop/core-site.xml
<configuration>
		<property>
                <name>fs.defaultFS</name>
                <value>hdfs://hadoop01:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/hadoop/tmp</value>
        </property>
</configuration>

在这里插入图片描述
在/home/hadoop 目录下新建文件夹tmp
注意:hadoop.tmp.dir是hadoop 文件系统依赖的配置文件。 默认是在 /tmp 目录下的,而这个目录下的文件,在Linux系统中,重启之后,很多都会被清空。所以我们要手动指定这写文件的保存目录。
这个目录路径要么不存在,hadoop启动的时候会自动帮我们创建;要么是一个空目录,不然在启动的时候会报错。
2)配置/home/hadoop/hadoop-2.7/etc/hadoop目录下的hdfs-site.xml

[hadoop@hadoop01 ~]$ vi hadoop2.7/etc/hadoop/hdfs-site.xml
	<property>
                <name>dfs.namenode.name.dir</name>
                <value>/home/hadoop/data/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/home/hadoop/data/data</value>
        </property>

        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoop02:50090</value>
        </property>

在这里插入图片描述
注意:dfs.replication 是配置文件保存的副本数;dfs.namenode.secondary.http-address 是指定 secondary 的节点。
3)配置/home/hadoop/hadoop-2.7/etc/hadoop目录下hadoop-env.sh 的JAVA_HOME

[hadoop@hadoop01 ~]$ vi hadoop2.7/etc/hadoop/hadoop-env.sh

设置 JAVA_HOME 为自己在系统中安装的 JDK 目录
在这里插入图片描述
4)配置/home/hadoop/hadoop-2.7/etc/hadoop目录下的slaves,删除默认的localhost,增加3个从节点

[hadoop@hadoop01 ~]$  vi hadoop2.7/etc/hadoop/slaves

在这里插入图片描述
5)指定 SecondaryNameNode 节点
在 /home/hadoop/hadoop2.7/etc/hadoop 目录下手动创建一个 masters 文件

[hadoop@hadoop01 hadoop]$ vi masters

在这里插入图片描述

3、将配置好的 hadoop 文件上传给其它三个节点

[hadoop@hadoop01 ~]$ scp -r /home/hadoop hadoop@192.168.146.211:/home/
[hadoop@hadoop01 ~]$ scp -r /home/hadoop hadoop@192.168.146.212:/home/

在这里插入图片描述
在这里插入图片描述

4、启动 hadoop

在master服务器启动hadoop,从节点会自动启动,进入/home/hadoop/hadoop2.7目录
1)输入初始化命令:

[hadoop@hadoop01 hadoop2.7]$ bin/hdfs namenode -format

在这里插入图片描述
2) 启动hdfs 命令:

[hadoop@hadoop01 hadoop2.7]$ sbin/start-dfs.sh

在这里插入图片描述
3)停止命令,sbin/stop-dfs.sh
4)输入命令,jps,可以看到相关信息

5、访问界面

1)关闭防火墙
临时关闭

[root@hadoop01 hadoop2.7]# service iptables stop

永久关闭

[root@hadoop01 hadoop2.7]# chkconfig iptables off

2)访问NameNode 节点信息:http://192.168.146.210:50070
在这里插入图片描述

2018-11-18 20:53:35 theone_1 阅读数 1515
  • 大数据HDFS详解

    Hadoop是一个由Apache基金会所开发的分布式系统基础架,是当前最火爆的大数据应用框架, Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算. hdfs作为hadoop重要的组成部分,实现了一个分布式文件系统(Hadoop Distributed File System),HDFS有高容错性 的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序 的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。本课程详细介绍了从部署linux虚拟机环境到实现全分布式启动hdfs进程的全过程,是快速入门大数据的必经之路.

    206 人正在学习 去看看 冯文凯

HDFS简介

1,HDFS概念:
分布式文件系统

(1)文件系统: 存储文件,目录树定位文件 hdfs://master:9000/soft/hadoop-2.6.5-centos-6.8.tar.gz
(2)分布式: 服务器集群,各个服务器都有各自清晰的角色定位
功能: 解决海量数据的存储问题

2,设计思路

(1)分而治之
大文件切分成小文件,多台服务器共同管理一个文件
小文件做备份,分散存储到不同的服务器上,做到可靠性不丢失
(2)HDFS设计思想

3,HDFS架构
在这里插入图片描述
在这里插入图片描述
4,HDFS特点
优点:

(1)构建在廉价的机器上
a: 通过多副本提高可靠性
b: 提供了容错和恢复机制
(2)高容错性
a. 数据自动保存多个副本
b. 副本丢失后,自动恢复
(3)适合批处理
a. 移动计算而非移动数据
b. 数据位置暴露给计算框架
(4)适合大数据处理
a. 能够处理GB、 TB、甚至 PB 级数据
b. 能够处理百万规模以上的文件数量, 10K+节点规模
(5)流式文件访问
a. 一次性写入,多次读取。文件一旦写入,不能修改,只能追加
b. 保证数据一致性

缺点:

(1)不善于处理低延迟数据访问
a. 比如毫秒级的数据存储,它是做不到的
b. 适合高吞吐率的场景,就是在某一个时间写入大量的数据
(2)不善于处理小文件存取
a. 占用 NameNode 大量内存 ,NameNode 的内存是有限的
b. 小文件存储的寻道时间超过文件读取时间,这违背了 HDFS 的设计原则
(3)不支持并发写入、文件随机修改
a. 一个文件只能有一个写者
b. 仅支持文件的追加(append),不支持文件的随机修改

HDFS的shell(命令行客户端)操作

1,Hadoop集群管理脚本

Hadoop 安装目录 bin 目录下的 hadoop 脚本是最基础的集群管理脚本,用户可以通过该脚本完成各种功能,如 HDFS 文件管理、MapReduce 作业管理等。
使用方式:hadoop [–config confdir] COMMAND
<–config:是用于设置 Hadoop 配置文件目录,默认目录为 ${HADOOP_HOME}/etc/hadoop/>

2,HDFS 管理命令 fs

在集群正常运行的前提下,使用如下方法,进行 Shell 操作:
[shiny@hadoop01 ~]$ hadoop fs
[shiny@hadoop01 ~]$ hadoop fs -help
展示的是 HDFS 支持的命令行参数:
注意:
开始使用命令前,必须启动 Hadoop。
以上指令均是在 Linux 命令行窗口界面操作。
[ ]表示可选参数,<>表示必须参数。

3,常用命令参数介绍

1,帮助:
 hadoop fs -help
 hadoop fs -help ls

2,HDFS上操作文件或文件夹
-ls 显示目录信息
hadoop fs -ls hdfs://hadoop01:9000/
Hadoop fs -ls /
-mkdir zaiHDFS上创建目录
hadoop fs -mkdir /abc <单级创建》
hadoop fs -mkdir -p 123/as
-cp 从 HDFS 的一个路径复制到 HDFS 的另外一个路径
hadoop fs -cp /abc/** /123/abc
-mv 在 HDFS 目录中移动文件
hadoop fs -mv /abc/1.txt /123/abc/
-rm 删除HDFS上的文件或者文件夹
hadoop fs -rm /abc/1.txt <删除HDFS上的文件>
hadoop fs -rm -r /123/as <删除HDFS上的文件夹>
-rmdir 删除HDFS上的空目录
hadoop fs -rmdir /123

3,上传和下载文件

-put 等同于copyFromLocal,从本地上传文件到HDFS
hadoop fs -put hadoop-2.6.5
hadoop fs -copyFromLocal hadoop-2.6.5
-get 等同于copyToLocal,从HDFS下载文件到本地
hadoop fs -get hadoop1<文件路径> ./<下载到的路径>
hadoop fs -copyToLocal /abc/1.txt Desktop/data/<重命名>
-moveFromLocal 从本地剪切文件到HDFS
hadoop fs -moveFromLocal /home/theone/Desktop/software/data/1.txt /abc
-moveToLocal 从HDFS剪切文件到本地
hadoop fs -moveToLocal /abc/1.txt /home/theone/Desktop/software/data/
<命令无法实现,数据不能被修改>
-appendToFile 追加一个文件内容到已经存在的文件末尾
hadoop fs -appendToFile 2.txt /abc/2.txt
-getmerge 合并下载多个文件
hadoop fs -getmerge /abc/*.txt ./all.txt

4,查看文本内容

-cat 显示文件内容
hadoop fs -cat /abc/1.txt
-tail 显示一个文件最后1kb的内容
hadoop fs -tail /abc/1.txt
-text 将 HDFS 中文件以文本形式输出(包括 gz 包、jar 包等形式)<用cat会乱码>
hadoop fs -text /abc/hadoop-2.6.5

5,修改权限

-chmod 改变文件权限(命令的使用者必须是文件的所有者或者超级用户)
hadoop -chmod -R 600 /abc/1.txt
-chown 改变文件的拥有者和所属组(命令的使用者必须是文件的所有者或者超级用户)
hadoop -chown -R theone:theone /abc

6,统计 <## -h 以更易读的字节单位(K、M 等)显示信息>

-count 统计一个指定目录下的目录数、文件数和字节数。
hadoop fs -count -h /abc
-df 统计文件系统的可用空间信息
hadoop fs -df -h /abc
-du 统计文件夹的大小信息 <## -s 只统计参数所占用空间总的大小>
hadoop fs -du -h -s /abc

7,副本

-setrep 设置HDFS中文件的副本数量
hadoop fs -setrep 3 /abc/1.txt
<## 这里设置的副本数只是记录在NameNode的元数据中,
是否真的会有这么多副本,还得看DataNode的数量 >

hdfs文件压缩

阅读数 357

没有更多推荐了,返回首页