参考网络众多资料,结合自己的实践,记录了hadoop hdfs应用的一些注意事项和知识点,希望对您有所帮助。
环境配置
1. 安装linux ubuntu系统
2. 安装开启openssh-server:$
sudo apt-get install openssh-server
3. 建立ssh 无密码登录
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
直接回车,完成后会在~/.ssh/生成两个文件:id_dsa 和id_dsa.pub。
这两个是成对出现,类似钥匙和锁。再把id_dsa.pub 追加到授权key 里面(当前并没有authorized_keys文件):
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys。
完成后可以实现无密码登录本机:$ ssh localhost。
4.关闭防火墙
$ sudo ufw
disable
5. 安装jdk 1.6
6. 安装后,添加如下语句到/etc/profile 中:
export JAVA_HOME=/home/Java/jdk1.6
export JRE_HOME=/home/Java/jdk1.6/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
一、 Hadoop伪分布配置
1. 在conf/hadoop-env.sh文件中增加:export JAVA_HOME=/home/Java/jdk1.6
2. 在conf/core-site.xml文件中增加如下内容:
<!-- fs.default.name - 这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。-->
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<!—hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配 置namenode和datanode的存放位置,默认就放在这个路径中-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hdfs/tmp</value>
</property>
3. 在conf/hdfs-site.xml中增加如下内容:
<!-- dfs.replication -它决定着 系统里面的文件块的数据备份个数。对于一个实际的应用,它 应该被设为3(这个 数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。少于三个的备份,可能会影响到数据的 可靠性(系统故障时,也许会造成数据丢失)-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- dfs.data.dir - 这是DataNode结点被指定要存储数据的本地文件系统路径。DataNode结点上 的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。但如果每台机器上的这 个路径都是统一配置的话,会使工作变得简单一些。默认的情况下,它的值hadoop.tmp.dir, 这 个路径只能用于测试的目的,因为,它很可能会丢失掉一些数据。所以,这个值最好还是被覆 盖。
dfs.name.dir - 这是NameNode结点存储hadoop文件系统信息的本地系统路径。这个值只对NameNode有效,DataNode并不需要使用到它。上面对于/temp类型的警告,同样也适用于这里。在实际应用中,它最好被覆盖掉。-->
<property>
<name>dfs.name.dir</name>
<value>/home/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hdfs/data</value>
</property>
<!—解决:org.apache.hadoop.security.AccessControlException:Permission denied:user=Administrator,access=WRITE,inode="tmp":root:supergroup:rwxr-xr-x
。
因为Eclipse使用hadoop插件提交作业时,会默认以 DrWho 身份去将作业写入hdfs文件系统中,对应的也就是 HDFS 上的/user/hadoop , 由于 DrWho 用户对hadoop目录并没有写入权限,所以导致异常的发生。解决方法为:放开 hadoop 目录的权限
, 命令如下 :$ hadoop
fs -chmod 777 /user/hadoop -->
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>
If "true", enable permission
checking in HDFS. If "false", permission checking is turned off, but
all other behavior is unchanged. Switching from one parameter value to the
other does not change the mode, owner or group of files or directories
</description>
</property>
4. 在conf/mapred-site.xml中增加如下内容:
<!-- mapred.job.tracker -JobTracker的主机(或者IP)和端口。-->
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
二、操作命令
1. 格式化工作空间
进入bin目录,运行 ./hadoop namenode –format
2. 启动hdfs
进入hadoop目录,在bin/下面有很多启动脚本,可以根据自己的需要来启动。
* start-all.sh
启动所有的Hadoop守护。包括namenode,
datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的Hadoop
* start-mapred.sh 启动Map/Reduce守护。包括Jobtracker和Tasktrack
* stop-mapred.sh 停止Map/Reduce守护
* start-dfs.sh 启动Hadoop DFS守护Namenode和Datanode
* stop-dfs.sh 停止DFS守护
三、Hadoop
hdfs 整合
可按如下步骤删除和更改hdfs不需要的文件:
1.将hadoop-core-1.0.0.jar 移动到lib目录下。
2. 将ibexec目录下的文件移动到bin目录下。
3. 删除除bin、lib、conf、logs之外的所有目录和文件。
4. 如果需要修改日志存储路径,则需要在conf/hadoop-env.sh文件中增加:
export HADOOP_LOG_DIR=/home/xxxx/xxxx即可。
四、HDFS文件操作
Hadoop使用的是HDFS,能够实现的功能和我们使用的磁盘系统类似。并且支持通配符,如*。
1. 查看文件列表
查看hdfs中/user/admin/hdfs目录下的文件。
a. 进入HADOOP_HOME目录。
b. 执行sh bin/hadoop fs -ls /user/admin/hdfs
查看hdfs中/user/admin/hdfs目录下的所有文件(包括子目录下的文件)。
a. 进入HADOOP_HOME目录。
b. 执行sh bin/hadoop fs -lsr /user/admin/hdfs
2. 创建文件目录
查看hdfs中/user/admin/hdfs目录下再新建一个叫做newDir的新目录。
a. 进入HADOOP_HOME目录。
b. 执行sh bin/hadoop fs -mkdir /user/admin/hdfs/newDir
3. 删除文件
删除hdfs中/user/admin/hdfs目录下一个名叫needDelete的文件
a. 进入HADOOP_HOME目录。
b. 执行sh bin/hadoop fs -rm /user/admin/hdfs/needDelete
删除hdfs中/user/admin/hdfs目录以及该目录下的所有文件
a. 进入HADOOP_HOME目录。
b. 执行sh bin/hadoop fs -rmr /user/admin/hdfs
4. 上传文件
上传一个本机/home/admin/newFile的文件到hdfs中/user/admin/hdfs目录下
a. 进入HADOOP_HOME目录。
b. 执行sh bin/hadoop fs –put /home/admin/newFile /user/admin/hdfs/
5. 下载文件
下载hdfs中/user/admin/hdfs目录下的newFile文件到本机/home/admin/newFile中
a. 进入HADOOP_HOME目录。
b. 执行sh bin/hadoop fs –get /user/admin/hdfs/newFile
/home/admin/newFile
6. 查看文件内容
查看hdfs中/user/admin/hdfs目录下的newFile文件
a. 进入HADOOP_HOME目录。
b. 执行sh bin/hadoop fs –cat /home/admin/newFile
五、Namenode
和 Datanode 解释
HDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。集群中的Datanode一般是一个节点一个,负责管理它所在节点上的存储。HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组Datanode上。Namenode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体Datanode节点的映射。Datanode负责处理文件系统客户端的读写请求。在Namenode的统一调度下进行数据块的创建、删除和复制。
Namenode和Datanode被设计成可以在普通的商用机器上运行。这些机器一般运行着GNU/Linux操作系统(OS)。HDFS采用Java语言开发,因此任何支持Java的机器都可以部署Namenode或Datanode。由于采用了可移植性极强的Java语言,使得HDFS可以部署到多种类型的机器上。一个典型的部署场景是一台机器上只运行一个Namenode实例,而集群中的其它机器分别运行一个Datanode实例。这种架构并不排斥在一台机器上运行多个Datanode,只不过这样的情况比较少见。
集群中单一Namenode的结构大大简化了系统的架构。Namenode是所有HDFS元数据的仲裁者和管理者,这样,用户数据永远不会流过Namenode。
分享到:
相关推荐
在IT行业中,分布式计算框架Hadoop是大数据处理的关键技术之一,尤其在大数据处理和存储方面发挥着重要作用。...通过对这些文档的深入研究,我们可以掌握Hadoop的核心原理,从而更好地应用和优化这一强大的工具。
"基于Eclipse的Hadoop应用开发环境配置" 基于 Eclipse 的 Hadoop 应用开发环境配置是指在 Eclipse 中配置 Hadoop 开发环境,以便开发和运行 Hadoop 应用程序。本节将对基于 Eclipse 的 Hadoop 应用开发环境配置进行...
总结来说,Hadoop的学习涵盖了HDFS的基础概念、数据读写流程,以及Map-Reduce模型的理解和应用。掌握这些知识点,不仅能够帮助你理解和操作Hadoop系统,也为进一步探索大数据处理和分析打下坚实基础。在实践中不断...
Hadoop是由Apache基金会开发的一个开源项目,它提供了一个分布式文件系统(HDFS)和一个并行计算框架(MapReduce),支持数据密集型应用的高效运行。Hadoop的设计目标是使大规模数据的存储和处理变得简单、可靠且可...
这份"hadopp学习总结1-5"的资料很可能是针对Hadoop基础到进阶的一系列教程或笔记,旨在帮助学习者掌握这个强大的工具。下面我们将深入探讨Hadoop的相关知识点。 1. **Hadoop简介**: Hadoop是Apache软件基金会的一...
【标题】:Hadoop技术总结 【描述】:Hadoop是一种开源框架,专门设计用于处理和存储大量数据,尤其适合初次接触大数据领域的学习者。它以其分布式计算模型、高容错性和可扩展性而闻名,使得企业能够有效地管理和...
标题中的“大数据云计算技术 Hadoop应用浅析”指的是对Hadoop这一大数据处理框架在云计算环境下的应用进行简要探讨。Hadoop是Apache软件基金会开发的一个开源项目,它为大规模数据处理提供分布式计算解决方案。 ...
【Hadoop培训总结】 在当前的信息时代,大数据已经成为企业决策和业务发展的重要驱动力。Hadoop作为大数据处理的首选平台,凭借其强大的可伸缩性、健壮性和高性价比,已经在互联网行业中占据主导地位。本培训课程...
"Ubuntu下开发Eclipse下的Hadoop应用" 本文档详细记录了如何在Ubuntu下安装Eclipse,并如何在Eclipse中安装Hadoop插件,最后运行程序。下面将对标题、描述、标签和部分内容进行详细解释和分析。 标题: Ubuntu下...
### 在Windows上使用Eclipse编写Hadoop应用程序 #### 前言 随着大数据技术的不断发展,Hadoop作为处理大规模数据集的重要工具之一,在企业和研究机构中得到了广泛应用。Hadoop主要由两个部分组成:Hadoop分布式...
### Hadoop应用开发技术详解 在当今大数据时代,Hadoop作为一种主流的大数据处理框架,其应用开发技术成为了众多企业和开发者关注的焦点。本文将围绕“Hadoop应用开发技术详解”这一主题,深入探讨Hadoop的基本概念...
总的来说,Hadoop和MapReduce为处理大规模数据提供了一种简单而强大的工具,它们在大数据领域的应用广泛,尤其在互联网行业中,如搜索引擎优化、数据分析和机器学习等场景。通过理解MapReduce的工作原理和Hadoop的...
### Hadoop在雅虎的应用详解 #### 一、引言 随着互联网的飞速发展,海量数据处理成为了各个大型互联网公司的必备技术能力。雅虎作为全球知名的互联网公司,在早期便开始采用并发展Hadoop这一开源分布式计算框架来...
IT面试-Hadoop总结-云计算 Hadoop是当前最流行的云计算技术之一,它是一种分布式的计算模型,包含了分布式文件系统HDFS和计算模型MapReduce。 一、Hadoop基础知识 1. MapReduce大致流程:MapReduce是Hadoop的核心...
在Hadoop应用开发技术的世界里,开发者们常常需要掌握一系列的核心概念和技术,以便高效地处理大规模数据。本书“Hadoop应用开发技术详解”的源代码涵盖了第3、4、5、7、8、10、11和12章的内容,为读者提供了丰富的...
"Hadoop认识总结" Hadoop是一个分布式系统基础技术框架,由Apache基金会所开发。它允许软件开发用户在不了解分布式底层细节的情况下,开发分布式程序,从而达到充分利用集群的威力高速运算和存储的目的。 Hadoop的...
以下是对Hadoop Hive入门学习的详细总结: ### 1. Hive 安装与部署 #### 1.1 环境需求 在开始Hive的安装之前,确保你已经具备了以下基础环境: - **JDK 1.6** 或更高版本:Hive依赖Java运行环境,所以首先需要安装...
### Hadoop集群搭建总结 #### 一、Hadoop概述与应用场景 Hadoop是一个由Apache基金会维护的开源分布式计算框架,其主要目标是处理大规模数据集的存储与计算问题。通过Hadoop,用户能够轻松地在分布式环境中开发和...
在使用C语言开发Hadoop应用时,需要注意以下几点: 1. 安装依赖:确保安装了所有必要的Hadoop C库和编译工具。 2. 并行编程:理解和掌握并行编程的概念,如数据分区、任务调度和并发控制。 3. 错误处理:由于...
总结来说,基于Hadoop的网盘应用是一个利用Hadoop生态系统构建的分布式存储和处理解决方案,它集成了HDFS、MapReduce、YARN等多个组件,提供了高效、安全的数据存储和访问服务。同时,应用中的前端部分,如...