参考网络众多资料,结合自己的练习,记录了hadoop hdfs应用的一些内容,希望对初学hadoop的同学有所帮助。
所需软件:
Jdk 1.6.*
Hadoop: hadoop-1.0.3.tar.gz
环境配置
<!--[if !supportLists]-->1.
<!--[endif]-->安装linux centos 5.X系统
<!--[if !supportLists]-->a. <!--[endif]-->添加用户组:groupadd ghadoop
<!--[if !supportLists]-->b. <!--[endif]-->添加用户 useradd –g ghadoop hduser
本文未加说明都是以hduser用户进行操作
2. 安装开启ssh服务(root用户)。
系统默认安装带ssh服务的,未安装请自行安装,方法略。
启动服务:service sshd start
3. 建立ssh 无密码登录(root用户)
$ ssh-keygen -t dsa
直接回车三次,完成后会在~/.ssh/生成两个文件:id_dsa 和id_dsa.pub。
这两个是成对出现,类似钥匙和锁。再把id_dsa.pub 追加到授权key 里面(当前并没有authorized_keys文件):
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys。
完成后可以实现无密码登录本机:$ ssh localhost。
4.关闭防火墙 (root用户)
service iptables
stop
5. 安装jdk 1.6 (root用户)
6. 安装后,添加如下语句到/etc/profile 中(root用户):
export JAVA_HOME=/user/java/jdk1.6
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
7安装hadoop
hadoop-1.0.3.tar.gz
解压到/home/hduser下
一、 Hadoop伪分布配置
1. 在conf/hadoop-env.sh文件中增加:export JAVA_HOME=/user/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/hduser/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/hduser/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hduser/data</value>
</property>
<!—解决:org.apache.hadoop.security.AccessControlException:Permission
denied:user=XXXX,access=WRITE,inode="tmp":root:supergroup:rwxr-xr-x
。
因为Eclipse使用hadoop插件提交作业时,会默认以 DrWho 身份去将作业写入hdfs文件系统中,对应的也就是 HDFS 上的/home/hduser , 由于 DrWho 用户对hadoop目录并没有写入权限,所以导致异常的发生。解决方法为:放开 hadoop 目录的权限, 命令如下 :$ hadoop fs -chmod
777 /home/hduser -->
<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守护
三、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
分享到:
相关推荐
练习搭建伪分布Hadoop3.X集群,只用于刚刚开始学习搭建hadoo伪分布式集群的人群,帮助大家快速搭建Hadoop3.X伪分布式集群,快速入门大数据为日后的学习打下坚实的基础
hadoop学习笔记,hadoop简介,适用于hadoop入门,讲解hadoop安装,使用,基本原理,大数据,分布式等概念
hadoop 学习笔记,从搭建环境开始到具体实验。包括hdfs配置,yarn配置,分布式配置,如何编写mapreuduce 一步一步手把手,最后项目是hadoop 与 javaweb
Hadoop是大数据技术中最重要的框架之一,是学习大数据必备的第一课,在Hadoop平台之上,可以更容易地开发和运行其他处理大规模数据的框架。尚硅谷Hadoop视频教程再次重磅升级!以企业实际生产环境为背景,增加了更...
1.首先必须在将虚拟机上的Linux系统配置好。 2.删除自带的jdk。 3.就可以开是学习Hadoop了接下来对照文件操作。 声明本人是第一次发帖子,如有错误请大家多多指正。请大家多多关注。
大数据平台,hadoop集群学习笔记
hadoop集群安装笔记,我个人在自己的本机虚拟3台机器,搭建hadoop的学习环境,在安装过程中,出现这样那样的问题,并记录下来分享给大家,希望都新手有帮助。
Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架,借助于 Hadoop, 程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算
Windows10下搭建eclipse开发hadoop的开发环境 其中的第一至四步骤。 1.2、请参考文章: maven的安装、路径配置、修改库文件路径和eclipse中的配置,解决Eclipse使用Maven下载慢的问题 1.3、创建一个maven工程HDFS ...
Hadoop学习笔记(一):HDFS分布式文件系统(从环境搭建到Java API)-附件资源
Hadoop版本:Hadoop-2.7.3 JDk版本:jdk1.8.0_40 1)准备3台虚拟机(关闭防火墙、静态ip、主机名称) 2)安装JDK 3)配置环境变量 4)安装Hadoop 5)配置环境变量 6)配置集群 7)单点启动 8)配置ssh 9)群起并...
hadoop的学习笔记,web页边版本,学习分布式文件系统的好材料
学习hadoop的分布式入门的资料,分布式的基础。
因此,它经常用于分布式网络通信中。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加...