在这里配置了Hadoop的文件目录
1. 启动Hadoop 并上传文件
上传文件命令:hadoop fs -put hadoop-2.9.2.tar.gz hdfs://hdgroup01:9000/
可以看到已经上传了文件了
2. 删除本地文件
如果删除后你在浏览器刷新页面 然后还能下载 说明 肯定存在其他地方
使用命令下载也可以:hadoop fs -get hdfs://hdgroup01:9000/hadoop-2.9.2.tar.gz
3. hdfs 文件存放的位置
通过查看 安装时配置的hadoop文件目录 上传文件后的结果
这个dfs 应该见过的 就是在格式化namenode的时候 在我们配置的文件中创建了dfs 文件夹
4. 上传一个349.5M 的文件
5. 进到hadoop 本地存储文件中查看 存储格式
上传的文件为349.47M 被切分成了 三块 因为是单机版 所以都存放到了 这台主机的文件系统中
可以看到 hadoop 块大小为128M(默认) 超过128M的文件会被切成不同的块存放
总结
1. hdfs是是通过分布式集群来存储文件,为客户端提供了一个便捷的访问方式 虚拟的目录结构
2. 文件存储到hdfs集群中的时候是被切分成block的 默认为128M
3. 文件的block 存放在若干台datanode节点中
4. hdfs文件系统中的文件与真实的block之间有映射关系,由namenode管理
5. 每个block 在集群中会存储多个副本,好处是可以提高数据的可靠性,还可以提高访问的吞吐量。
在hadoop1中核心组成部分是HDFS、MapReduce,到了Hadoop2,核心变为HDFS、Yarn,而且新的HDFS中可以有多个NameNode,每个都有相同的职能。以下内容是从http://www.superwu.cn/2014/02/12/1094/阅读后自己总结了一下:
配置文件无非就这几个文件:
1、hadoop-env.sh:
只需设置jdk的安装路径,如:export JAVA_HOME=/usr/local/jdk
2、core-site.xml:
(1)fs.defaultFS:hdfs://cluster1(域名),这里的值指的是默认的HDFS路径
(2)hadoop.tmp.dir:/export/data/hadoop_tmp,这里的路径默认是NameNode、DataNode、JournalNode等存放数据的公共目录。用户也可以自己单独指定这三类节点的目录。
(3)ha.zookeeper.quorum:hadoop101:2181,hadoop102:2181,hadoop103:2181,这里是ZooKeeper集群的地址和端口。注意,数量一定是奇数,且不少于三个节点
(4)hadoop.proxyuser.erpmerge.hosts、hadoop.proxyuser.erpmerge.groups主要用来设置oozie的代理用户
一. 简介
参考了网上许多教程,最终把hadoop在ubuntu14.04中安装配置成功。下面就把详细的安装步骤叙述一下。我所使用的环境:两台ubuntu 14.04 64位的台式机,hadoop选择2.7.1版本。(前边主要介绍单机版的配置,集群版是在单机版的基础上,主要是配置文件有所不同,后边会有详细说明)
二. 准备工作
2.1 创建用户
创建用户,并为其添加root权限,经过亲自验证下面这种方法比较好。
1 sudo adduser hadoop2 sudo vim /etc/sudoers3 # 修改内容如下:4 root ALL = (ALL)ALL5 hadoop ALL = (ALL)ALL
给hadoop用户创建目录,并添加到sudo用户组中,命令如下:
1 sudo chown hadoop /home/hadoop2 # 添加到sudo用户组3 sudo adduser hadoop sudo
最后注销当前用户,使用新创建的hadoop用户登陆。
2.2 安装ssh服务
ubuntu中默认是没有装ssh server的(只有ssh client),所以先运行以下命令安装openssh-server。安装过程轻松加愉快~
sudo apt-get install ssh openssh-server
2.3 配置ssh无密码登陆
直接上代码:执行完下边的代码就可以直接登陆了(可以运行ssh localhost进行验证)
1 cd ~/.ssh# 如果找不到这个文件夹,先执行一下 "ssh localhost"2 ssh-keygen -t rsa3 cp id_rsa.pub authorized_keys
注意:
这里实现的是无密登陆自己,只适用与hadoop单机环境。如果配置Hadoop集群设置Master与Slave的SSH无密登陆可
三. 安装过程
3.1 下载hadoop安装包
有两种下载方式:
1. 直接去官网下载:
2. 使用wget命令下载:
3.2 配置hadoop
1. 解压下载的hadoop安装包,并修改配置文件。我的解压目录是(/home/hadoop/hadoop-2.7.1),即进入/home/hadoop/文件夹下执行下面的解压缩命令。
tar -zxvf hadoop-2.7.1.tar.gz
2. 修改配置文件:(hadoop2.7.1/etc/hadoop/)目录下,hadoop-env.sh,core-site.xml,mapred-site.xml.template,hdfs-site.xml。
(1). core-site.xml 配置:其中的hadoop.tmp.dir的路径可以根据自己的习惯进行设置。
<configuration><property><name>hadoop.tmp.dir</name><value>file:/home/hadoop/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>
(2). mapred-site.xml.template配置:
<configuration><property><name>mapred.job.tracker</name><value>localhost:9001</value></property></configuration>
(3). hdfs-site.xml配置: 其中dfs.namenode.name.dir和dfs.datanode.data.dir的路径可以自由设置,最好在hadoop.tmp.dir的目录下面。
注意:如果运行Hadoop的时候发现找不到jdk,可以直接将jdk的路径放置在hadoop-env.sh里面,具体如下:
export JAVA_HOME="/opt/java_file/jdk1.7.0_79",即安装java时的路径。
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:/home/hadoop/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/home/hadoop/hadoop/tmp/dfs/data</value></property></configuration>
配置完成后运行hadoop。
四. 运行hadoop
4.1 初始化HDFS系统
在hadop2.7.1目录下执行命令:
bin/hdfs namenode -format
出现如下结果说明初始化成功。
4.2 开启 NameNode 和 DataNode 守护进程
在hadop2.7.1目录下执行命令:
sbin/start-dfs.sh
成功的截图如下:
4.3 使用jps命令查看进程信息:
若出现如图所示结果,则说明DataNode和NameNode都已经开启。
4.4 查看web界面
在浏览器中输入 http://localhost:50070 ,即可查看相关信息,截图如下
至此,hadoop的环境就已经搭建好了。
五. 运行wordcount demo
1. 在本地新建一个文件,里面内容随便填:例如我在home/hadoop目录下新建了一个haha.txt文件,里面的内容为" hello world! "。
2. 然后在分布式文件系统(hdfs)中新建一个test文件夹,用于上传我们的测试文件haha.txt。在hadoop-2.7.1目录下运行命令:
# 在hdfs的根目录下建立了一个test目录
bin/hdfs dfs -mkdir /test
# 查看HDFS根目录下的目录结构
bin/hdfs dfs -ls /
结果如下:
3. 将本地haha.txt文件上传到test目录中;
# 上传
bin/hdfs dfs -put /home/hadoop/haha.txt /test/# 查看
bin/hdfs dfs -ls /test/
结果如下:
4. 运行wordcount demo;
# 将运行结果保存在/test/out目录下
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /test/haha.txt /test/out
# 查看/test/out目录下的文件
bin/hdfs dfs -ls /test/out
结果如下:
运行结果表示:运行成功,结果保存在part-r-00000中。
5. 查看运行结果;
# 查看part-r-00000中的运行结果
bin/hadoop fs -cat /test/out/part-r-00000
结果如下:
至此,wordcount demo 运行结束。
六. 总结
配置过程遇到了很多问题,最后都一一解决,收获很多,特此把这次配置的经验分享出来,方便想要配置hadoop环境的各位朋友~
(Hadoop集群安装配置过程基本和单机版是一样的,主要是在配置文件方面有所区别,以及ssh无密登陆要求master和slave能够互相无密登陆。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)