hadoop demo搭建集群
2013-01-12 14:13
459 查看
此次实验共使用3台实体机子:
TIPS1: 为了操作方便,此次实验所有实体机的用户名都为hadoop
TIPS2: 在hadoop术语中,主机被称作 namenode, 节点为datanode
操作系统: Ubuntu 12.10
JAVA版本:jdk1.6.0_24
hadoop版本: 1.1.1
安装步骤
大致说明下,搭建hadoop主要为3个步骤:网络配置/SSH无密钥互信/配置hadoop。(默认JAVA已经安装)
在etc/hosts文件下添加机器名: $ sudo vim /etc/hosts
TIPS: 一共多少节点就得写多少进去。
TIPS: 安装后使用 命令 $ ssh localhost 可以测试是否成功安装登录。
namenode
上实现无密码登录
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #此命令会自动在根目录的隐藏文件夹生成密钥,分别为 id_rsd 和 id_rsa.pub#
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #讲密钥放进权限KEY内#
TIPS:完成后一样可以用 $ ssh localhost 来测试下是否实现无密码登录本机。
namenode无密码登录其他datanode
将刚刚生成在应藏文件夹ssh里面的 id_rsd.pub追加到datanode里面的权限KEY内, 可以用U盘拷或者直接命令
$ scp ~/.ssh/id_rsd.pub slave1@10.117.253.101:/home/hadoop/.ssh
然后登录slave1或者实际操作slave1,同样执行 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
完成后即可用namenode无密码访问datanode。
TIPS: 关于hadoop是否需要设置所有datanode 无密码登录 namenode, 小僧上网上网搜索了一下别的安装教程,有些说要,有些说不要,为了安全起见,还是将所有datanode成功登录了namenode, 实现方法与上面一致,只不过是将两台机子对掉而已。BTW, 已经成功后我们需要注意将namenode所生成的的id_rsa.pub保留(因为需要继续增加节点),别的节点所生成或者传输来主机的id_rsa.pub删除,以免造成日后混乱。
3. 配置hadoop
总体来说,所有实体机子(namenode和datanode配置相同)里面的hadoop文件包里有4个文件需要自行修改 ,都是位于conf里面: hadoop-env.sh, core-site.xml, hdfs-site.xml, mapred-site.xml。namenode会比datanode多一个文件需要配置, 会在下列用红字标出
安装hadoop
首先先从官网下载安装包。 http://hadoop.apache.org/
找到 hadoop-1.1.1.tar.gz 解压缩到 /opt/目录下 (可以自行根据个人喜好修改路径), 小僧为了方便配置建立了软链接( $ ln -s hadoop-1.1.1 hadoop)
然后将安装路径加入到 /etc/profile 内
配置 hadoop-env.sh
配置slave1 文件 (只在namenode上配置)
注意: 小僧在观摩别的安装教程中,发现有很多教程作者在这里多配置了一个conf/masters文件。事实上,能否让机子变成Namenode并非在这里控制;从字面意思来看---master文件的名称确实有点误导人, 其实它的功能是设立另外一个secondary namenode作为辅助。就整个hadoop项目来看,NameNode节点的单点故障问题导致的后果会十分严重和致命,因此secondaryNameNode节点启动之后会不断的对NameNode节点保存的元数据进行备份。下图为SNN的工作时序图:
图片转自linux公社的xhh198781
配置core-site.xml
配置hdfs-site.xml
TIPS: 后两段为分布式数据存储的路径问题,同样是报错的高频率地方,而且在网上许多搭建教程中并没有后两段的配置,经过小僧实验,服务启动是肯定会失败的,文件夹可能需要手动创建,请注意修改好这个文件夹的权限问题还有查看日志。
配置 mapred-site.xml
注意提示,如果成功格式化的话就可以用命令启动服务了 $ start-all.sh / 关闭是用 $ stop-all.sh
服务启动后可以使用$ jps 命令或者 $ hadoop dfsadmin -report 来查看进程是否启动。
HDFS web方式 : http://localhost:50070
MR web方式: http://localhost:50030
关于 HDFS 分布式储存常用操作:
hadoopdfs -ls 列出HDFS下的文件
hadoop dfs -ls in 列出HDFS下某个文档中的文件
hadoop fs -mkdir 创建文件夹
hadoop dfs -put test1.txt test 上传文件到指定目录并且重新命名,只有所有的DataNode都接收完数据才算成功
hadoop dfs -get in getin 从HDFS获取文件并且重新命名为getin,同put一样可操作文件也可操作目录
hadoop dfs -rmr out 删除指定文件从HDFS上
hadoop dfs -cat in/* 查看HDFS上in目录的内容
hadoop dfsadmin -report 查看HDFS的基本统计信息,结果如下
hadoop dfsadmin -safemode leave 退出安全模式
hadoop dfsadmin -safemode enter 进入安全模式
转载注明出处:逆风飞扬:http://blog.csdn.net/wangfaqiang/article/details/7244552/
另外,运行自带的wordcount.java程序可以体现简单的MR工作原理,这里不进行说明,需求的请自行GOOGLE
总结一句,凡是搭建过程中遇到错误的, Google and Log is your friend。
机器名 | 角色 | IP |
master | Namenode | 10.117.253.201 |
slave1 | Datanode | 10.117.253.101 |
slave2 | Datanode | 10.117.253.102 |
TIPS2: 在hadoop术语中,主机被称作 namenode, 节点为datanode
操作系统: Ubuntu 12.10
JAVA版本:jdk1.6.0_24
hadoop版本: 1.1.1
安装步骤
大致说明下,搭建hadoop主要为3个步骤:网络配置/SSH无密钥互信/配置hadoop。(默认JAVA已经安装)
1. 网络配置
首先关闭防火墙: $ sudo ufw disable在etc/hosts文件下添加机器名: $ sudo vim /etc/hosts
10.117.253.201 master 10.117.253.101 slave1 10.117.253.102 slave2
TIPS: 一共多少节点就得写多少进去。
2. SSH无密钥互信
所有实体机安装ssh server: $ sudo apt-get install openssh-serverTIPS: 安装后使用 命令 $ ssh localhost 可以测试是否成功安装登录。
namenode
上实现无密码登录
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #此命令会自动在根目录的隐藏文件夹生成密钥,分别为 id_rsd 和 id_rsa.pub#
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #讲密钥放进权限KEY内#
TIPS:完成后一样可以用 $ ssh localhost 来测试下是否实现无密码登录本机。
namenode无密码登录其他datanode
将刚刚生成在应藏文件夹ssh里面的 id_rsd.pub追加到datanode里面的权限KEY内, 可以用U盘拷或者直接命令
$ scp ~/.ssh/id_rsd.pub slave1@10.117.253.101:/home/hadoop/.ssh
然后登录slave1或者实际操作slave1,同样执行 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
完成后即可用namenode无密码访问datanode。
TIPS: 关于hadoop是否需要设置所有datanode 无密码登录 namenode, 小僧上网上网搜索了一下别的安装教程,有些说要,有些说不要,为了安全起见,还是将所有datanode成功登录了namenode, 实现方法与上面一致,只不过是将两台机子对掉而已。BTW, 已经成功后我们需要注意将namenode所生成的的id_rsa.pub保留(因为需要继续增加节点),别的节点所生成或者传输来主机的id_rsa.pub删除,以免造成日后混乱。
3. 配置hadoop
总体来说,所有实体机子(namenode和datanode配置相同)里面的hadoop文件包里有4个文件需要自行修改 ,都是位于conf里面: hadoop-env.sh, core-site.xml, hdfs-site.xml, mapred-site.xml。namenode会比datanode多一个文件需要配置, 会在下列用红字标出安装hadoop
首先先从官网下载安装包。 http://hadoop.apache.org/
找到 hadoop-1.1.1.tar.gz 解压缩到 /opt/目录下 (可以自行根据个人喜好修改路径), 小僧为了方便配置建立了软链接( $ ln -s hadoop-1.1.1 hadoop)
然后将安装路径加入到 /etc/profile 内
export HADOOP_HOME=/opt/hadoop export PATH=$HADOOP_HOME/bin:$PATH export HADOOP_HOME_WARN_SUPPRESS=1 #1.0版本后响警报,其实这个加不加也没什么所谓#
配置 hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386
配置slave1 文件 (只在namenode上配置)
slave1 slave2 #只要将机器名或者IP其中一样写入即可#
注意: 小僧在观摩别的安装教程中,发现有很多教程作者在这里多配置了一个conf/masters文件。事实上,能否让机子变成Namenode并非在这里控制;从字面意思来看---master文件的名称确实有点误导人, 其实它的功能是设立另外一个secondary namenode作为辅助。就整个hadoop项目来看,NameNode节点的单点故障问题导致的后果会十分严重和致命,因此secondaryNameNode节点启动之后会不断的对NameNode节点保存的元数据进行备份。下图为SNN的工作时序图:
图片转自linux公社的xhh198781
配置core-site.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://10.117.253.201:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/tmp</value> </property> </configuration>TIPS: 这个tmp文件夹是分布式存储的一个临时文件存放的地方,会随着集群启动自动生成,但它也是节点报错的高频率地方,请注意修改好这个文件夹的权限问题。(小僧试过好几次提示权限不足而启动服务失败。)
配置hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> 4000 <name>dfs.name.dir</name> <value>/opt/hadoop/hdfs/name</value> </property> <property> <name>dfs.data.dir</name> <value>/opt/hadoop/hdfs/data</value> </property> </configuration>TIPS: 第一段为启动服务的节点少于红色数字时就报错,因此修改为1.
TIPS: 后两段为分布式数据存储的路径问题,同样是报错的高频率地方,而且在网上许多搭建教程中并没有后两段的配置,经过小僧实验,服务启动是肯定会失败的,文件夹可能需要手动创建,请注意修改好这个文件夹的权限问题还有查看日志。
配置 mapred-site.xml
<configuration> <property> <name>mapred.job.tracker</name> <value>10.117.253.201:9001</value> </property> <property> <name>mapred.local.dir</name> <value>/opt/hadoop/tmp</value> </property> </configuration>TIPS:与 core-site.xml 一样请注意tmp文件夹问题
4. 测试
以上搭建可以算是完成了,启动服务之前,先格式化hdfs系统 $ hadoop namenode -format注意提示,如果成功格式化的话就可以用命令启动服务了 $ start-all.sh / 关闭是用 $ stop-all.sh
服务启动后可以使用$ jps 命令或者 $ hadoop dfsadmin -report 来查看进程是否启动。
HDFS web方式 : http://localhost:50070
MR web方式: http://localhost:50030
关于 HDFS 分布式储存常用操作:
hadoopdfs -ls 列出HDFS下的文件
hadoop dfs -ls in 列出HDFS下某个文档中的文件
hadoop fs -mkdir 创建文件夹
hadoop dfs -put test1.txt test 上传文件到指定目录并且重新命名,只有所有的DataNode都接收完数据才算成功
hadoop dfs -get in getin 从HDFS获取文件并且重新命名为getin,同put一样可操作文件也可操作目录
hadoop dfs -rmr out 删除指定文件从HDFS上
hadoop dfs -cat in/* 查看HDFS上in目录的内容
hadoop dfsadmin -report 查看HDFS的基本统计信息,结果如下
hadoop dfsadmin -safemode leave 退出安全模式
hadoop dfsadmin -safemode enter 进入安全模式
转载注明出处:逆风飞扬:http://blog.csdn.net/wangfaqiang/article/details/7244552/
另外,运行自带的wordcount.java程序可以体现简单的MR工作原理,这里不进行说明,需求的请自行GOOGLE
总结一句,凡是搭建过程中遇到错误的, Google and Log is your friend。
相关文章推荐
- Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo
- Hadoop DEMO搭建集群
- Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo
- Kafka+Storm+HBase项目Demo(1)--CDH搭建hadoop集群
- VirtualBox+CentOs虚拟集群搭建配置hadoop2.2.0学习环境
- hadoop2.4.1集群搭建
- Hadoop集群环境搭建
- CentOS6.4上搭建hadoop-2.4.0集群
- (大数据之hadoop)hadoop1.0集群搭建
- 分布式集群搭建(hadoop2.6.0+CentOS6.5)
- 【大数据】搭建简单的Hadoop集群
- 虚拟机搭建Hadoop集群(1) ---nat模式
- Hadoop----集群搭建指南(上卷)
- 分布式集群环境hadoop1.2.0、hbase0.94.4、zookeeper、elasticsearch搭建2
- hadoop集群搭建之一(Hadoop环境安装)
- 05 搭建4节点hadoop集群
- Nutch+Hadoop集群搭建 分类: H3_NUTCH 2015-01-18 10:55 362人阅读 评论(0) 收藏
- hadoop集群搭建
- hadoop2.4集群的搭建
- CentOS7.2下Hadoop2.7.2的集群搭建