`
sunqi
  • 浏览: 230061 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

hadoop安装

 
阅读更多

最近研究hbase,hbase依赖hadoop,当然需要安装一下,并且写代码调试感觉下

记录下安装过程


首先准备三台机器,新建好hadoop帐号,host绑定,


10.20.156.166 node1

10.20.156.164 node3

10.20.156.163 node4



node1是主节点,当然要让node1能免密码直接ssh到node3,node4。须要确定每台机器上都安装了ssh,并且datanode机器上sshd服务已经启动。


ssh-keygen -t rsa


然后一直按回车
完成后,在home跟目录下会产生隐藏文件夹.ssh

这个命令将为hadoop上的用户hadoop生成其密钥对,询问其保存路径时直接回车采用默认路径,当提示要为生成的密钥输入passphrase的时候,直接回车,也就是将其设定为空密码。生成的密钥对id_rsa,id_rsa.pub,默认存储在/home/hadoop/.ssh目录下)


然后将id_rsa.pub的内容复制到每个机器(也包括本机)的/home/dbrg/.ssh/authorized_keys文件中,如果机器上已经有authorized_keys这个文件了,就在文件末尾加上id_rsa.pub中的内容,如果没有authorized_keys这个文件,直接复制过去就行


然后就可直接ssh上去。


安装hadoop


wget http://apache.mirrors.tds.net//hadoop/common/hadoop-0.20.203.0/hadoop-0.20.203.0rc1.tar.gz

下载安装包后,直接解压安装即可:


 



 


配置conf/hadoop-env.sh文件

#添加

export JAVA_HOME=/usr/soft/java


这里修改为你的jdk的安装位置。




配置文件:conf/core-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>

<configuration>

<property>

 <name>fs.default.name</name>

  <value>hdfs://node1:49000/hbase</value>

</property>

<property>

  <name>hadoop.tmp.dir</name>

 <value>/home/hadoop/hadoop_home/var</value>

</property>

</configuration>


1)fs.default.name是NameNode的URI。hdfs://主机名:端口/

2)hadoop.tmp.dir :Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。




配置文件:conf/mapred-site.xml

<?xmlversion="1.0"?>

<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>

<configuration>

<property>

  <name>mapred.job.tracker</name>

  <value>node1:49001</value>

</property>

<property>

  <name>mapred.local.dir</name>

 <value>/home/hadoop/hadoop_home/var</value>

</property>

</configuration>

1)mapred.job.tracker是JobTracker的主机(或者IP)和端口。主机:端口。




配置文件:conf/hdfs-site.xml


<?xmlversion="1.0"?>

<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>

<configuration>

<property>

<name>dfs.name.dir</name>

<value>/home/hadoop/name1, /home/hadoop/name2</value> #hadoop的name目录路径

<description>  </description>

</property>

<property>

<name>dfs.data.dir</name>

<value>/home/hadoop/data1, /home/hadoop/data2</value>

<description> </description>

</property>

<property>

  <name>dfs.replication</name>

  <!-- 我们的集群又两个结点,所以rep两份 -->

  <value>2</vaue>

</property>

</configuration>

1)   dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。

2)   dfs.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。 当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。

3)dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。

注意:此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有问题。





配置masters和slaves主从结点

配置conf/masters和conf/slaves来设置主从结点,注意最好使用主机名,并且保证机器之间通过主机名可以互相访问,每个主机名一行。


masters加入


node1


slaves加入


node4

node3



配置结束,把配置好的hadoop文件夹拷贝到其他集群的机器中,并且保证上面的配置对于其他机器而言正确,例如:如果其他机器的Java安装路径不一样,要修改conf/hadoop-env.sh 



1 ) 安装Hadoop集群通常要将安装软件解压到集群内的所有机器上。并且安装路径要一致,如果我们用HADOOP_HOME指代安装的根路径,通常,集群里的所有机器的环境都一致,包括jdk等
2 )  在修改好配置后,可以将Master上的Hadoop通过rsync拷贝到每一个Slave相同的目录下
3)   为了方便,使用hadoop命令或者start-all.sh等命令,修改Master上/etc/profile 新增以下内容: 
    export HADOOP_HOME=/home/hadoop/hadoop-0.20.203
    exportPATH=$PATH:$HADOOP_HOME/bin




 

格式化一个新的分布式文件系统

先格式化一个新的分布式文件系统


bin/hadoop namenode -format


成功情况下系统输出:

12/02/06 00:46:50 INFO namenode.NameNode:STARTUP_MSG:

/************************************************************

STARTUP_MSG: Starting NameNode

STARTUP_MSG:   host = ubuntu/127.0.1.1

STARTUP_MSG:   args = [-format]

STARTUP_MSG:   version = 0.20.203.0

STARTUP_MSG:   build =http://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-203-r 1099333; compiled by 'oom' on Wed May 4 07:57:50 PDT 2011

************************************************************/


12/02/0600:46:50 INFO namenode.FSNamesystem: fsOwner=root,root

12/02/06 00:46:50 INFO namenode.FSNamesystem:supergroup=supergroup

12/02/06 00:46:50 INFO namenode.FSNamesystem:isPermissionEnabled=true

12/02/06 00:46:50 INFO common.Storage: Imagefile of size 94 saved in 0 seconds.

12/02/06 00:46:50 INFO common.Storage: Storagedirectory /opt/hadoop/hadoopfs/name1 has been successfully formatted.

12/02/06 00:46:50 INFO common.Storage: Imagefile of size 94 saved in 0 seconds.

12/02/06 00:46:50 INFO common.Storage: Storagedirectory /opt/hadoop/hadoopfs/name2 has been successfully formatted.

12/02/06 00:46:50 INFO namenode.NameNode:SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG: Shutting down NameNode atv-jiwan-ubuntu-0/127.0.0.1

************************************************************/


查看输出保证分布式文件系统格式化成功

执行完后可以到master机器上看到/home/hadoop//name1和/home/hadoop//name2两个目录。在主节点master上面启动hadoop,主节点会启动所有从节点的hadoop。



启动所有节点

启动方式1:


$ bin/start-all.sh (同时启动HDFS和Map/Reduce)

系统输出:

node1: starting zookeeper, logging to /home/hadoop/hbase-0.90.4/bin/../logs/hbase-hadoop-zookeeper-vm-cbu-qa-156-166.hst.bjc.kfc.alidc.net.out

node4: starting zookeeper, logging to /home/hadoop/hbase-0.90.4/bin/../logs/hbase-hadoop-zookeeper-vm-cbu-qa-156-163.hst.bjc.kfc.alidc.net.out

node2: starting zookeeper, logging to /home/hadoop/hbase-0.90.4/bin/../logs/hbase-hadoop-zookeeper-vm-cbu-qa-156-165.hst.bjc.kfc.alidc.net.out

starting master, logging to /home/hadoop/hbase-0.90.4/bin/../logs/hbase-hadoop-master-vm-cbu-qa-156-166.hst.bjc.kfc.alidc.net.out

node4: starting regionserver, logging to /home/hadoop/hbase-0.90.4/bin/../logs/hbase-hadoop-regionserver-vm-cbu-qa-156-163.hst.bjc.kfc.alidc.net.out

node2: starting regionserver, logging to /home/hadoop/hbase-0.90.4/bin/../logs/hbase-hadoop-regionserver-vm-cbu-qa-156-165.hst.bjc.kfc.alidc.net.out


执行完后可以到master(node1)和slave(node3,node4)机器上看到/home/hadoop/hadoop/data1和/home/hadoop/data2两个目录。


启动方式2:


启动Hadoop集群需要启动HDFS集群和Map/Reduce集群。


在分配的NameNode上,运行下面的命令启动HDFS:

$ bin/start-dfs.sh(单独启动HDFS集群)


bin/start-dfs.sh脚本会参照NameNode上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动DataNode守护进程。


在分配的JobTracker上,运行下面的命令启动Map/Reduce:

$bin/start-mapred.sh (单独启动Map/Reduce)


bin/start-mapred.sh脚本会参照JobTracker上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动TaskTracker守护进程。


关闭所有节点

从主节点master关闭hadoop,主节点会关闭所有从节点的hadoop。


$ bin/stop-all.sh 


Hadoop守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 ${HADOOP_HOME}/logs).


${HADOOP_HOME}就是安装路径.



测试

1)浏览NameNode和JobTracker的网络接口,它们的地址默认为:


NameNode - http://node1:50070/dfshealth.jsp

 

 

 

 

JobTracker - http://node1:50030/jobtracker.jsp

 


3)   使用netstat  –nat查看端口49000和49001是否正在使用。


4)  使用jps查看进程


要想检查守护进程是否正在运行,可以使用 jps 命令



5)将输入文件拷贝到分布式文件系统:

$ bin/hadoop fs -mkdir input

$ bin/hadoop fs -put conf/core-site.xml input




6)查看输出文件:

直接查看

sh hadoop-0.20.203.0/bin/hadoop dfs -ls input


将输出文件从分布式文件系统拷贝到本地文件系统查看:

$ bin/hadoop fs -get output output 

$ cat output/*


或者


在分布式文件系统上查看输出文件:

$ bin/hadoop fs -cat output/*




7) HDFS常用操作

hadoop dfs -ls 列出HDFS下的文件

hadoop dfs -ls in 列出HDFS下某个文档中的文件

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 进入安全模式

8).添加节点

可扩展性是HDFS的一个重要特性,首先在新加的节点上安装hadoop,然后修改$HADOOP_HOME/conf/master文件,加入 NameNode主机名,然后在NameNode节点上修改$HADOOP_HOME/conf/slaves文件,加入新加节点主机名,再建立到新加节点无密码的SSH连接


运行启动命令:


start-all.sh


9)负载均衡

start-balancer.sh,可以使DataNode节点上选择策略重新平衡DataNode上的数据块的分布

 

分享到:
评论

相关推荐

    Hadoop课程实验和报告——Hadoop安装实验报告

    Hadoop课程实验和报告——Hadoop安装实验报告 Hadoop是一个开源的大数据处理框架,由Apache基金会开发和维护。它提供了一种可靠、可扩展、可高效的方法来存储和处理大规模数据。在本实验报告中,我们将介绍Hadoop的...

    Hadoop安装教程_单机_伪分布式配置

    ### Hadoop安装教程:单机与伪分布式配置详解 #### 一、引言 Hadoop是一种开源的大数据处理框架,广泛应用于数据存储和处理场景。本文档将详细介绍如何在Ubuntu 14.04环境下安装配置Hadoop 2.6.0版本,包括单机模式...

    linux下载,安装,JDK配置,hadoop安装

    ### Linux下载、安装、JDK配置、Hadoop安装相关知识点 #### 一、Linux环境准备与安装 **1.1 Linux版本选择** - **CentOS 6.5**:适用于本教程,是一款稳定且广受支持的企业级操作系统。 **1.2 下载Linux** - **...

    HADOOP安装部署文档

    《Hadoop安装部署详解》 Hadoop,作为Google文件系统(GFS)的开源实现,是分布式计算领域的重要工具,其强大的数据处理能力和高容错性吸引了众多开发者和企业的关注。本文将详细介绍如何在Linux环境下安装和部署...

    Hadoop安装学习-入门教程

    Hadoop 安装 学习 入门教程 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, ...

    hadoop 安装部署手册

    Hadoop安装部署手册是针对初学者的全面指南,旨在帮助用户了解和实践Hadoop的安装与运行。Hadoop是一个开源的分布式计算框架,由Apache基金会开发,主要用于处理和存储大规模数据集。以下是详细的步骤和关键知识点:...

    Hadoop安装和配置

    ### Hadoop安装与配置详解 #### 一、概述 Hadoop是一个开源软件框架,用于分布式存储和处理大数据集。它能够高效地处理PB级别的数据,适用于海量数据的存储和计算场景。本文将详细介绍如何在多台虚拟机上安装和...

    hadoop安装详细文档

    ### Hadoop 安装详细指南 #### 一、概述 Hadoop是一款开源软件框架,用于分布式存储和处理大型数据集。本文档详细介绍了如何在CentOS 7环境下部署Hadoop 2.7.3的完全分布式环境。此教程适合希望在多台服务器之间...

    最详尽的Hadoop安装过程

    ### Hadoop安装与配置详解 #### 一、前言 Hadoop是一款开源软件框架,用于分布式存储和处理大型数据集。本文将详细介绍如何在CentOS 5.5环境下搭建一个包含1个NameNode节点和2个DataNode节点的Hadoop集群,并通过一...

    Hadoop安装-保你一次成功.pdf

    Hadoop安装-保你一次成功

    Hadoop安装教程_伪分布式配置_CentOS6.4_Hadoop2.61

    【Hadoop安装教程_伪分布式配置_CentOS6.4】 Hadoop是一个开源的分布式计算框架,由Apache基金会开发,主要用于处理和存储大规模数据。本教程针对的是在CentOS 6.4操作系统上安装Hadoop 2.6.0的伪分布式配置,这种...

    Hadoop安装部署及教学

    三、Hadoop安装与部署 1. 环境准备:确保具备多台Linux服务器,安装Java环境,配置SSH无密码登录。 2. 下载Hadoop:从Apache官方网站获取最新稳定版本的Hadoop,解压到服务器。 3. 配置环境变量:在`~/.bashrc`或`~/...

    Hadoop安装使用教程0基础!!!易懂!!!

    Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程...

    hadoop安装和配置

    hadoop安装和配置,这份PPT讲诉了如何安装和配置Hadoop

    Hadoop安装教程_单机/伪分布式配置_Hadoop2.7.1/Ubuntu 16.04

    Hadoop安装教程_单机/伪分布式配置_Hadoop2.7.1/Ubuntu 16.04 本教程主要讲述了在 Ubuntu 16.04 环境下安装 Hadoop 2.7.1 的步骤,包括单机模式、伪分布式模式和分布式模式三种安装方式。以下是本教程的知识点总结...

    实验2-Hadoop安装与HDFS基础实践.nbn.zip

    二、Hadoop安装 1. 环境准备:确保系统为Linux环境,因为Hadoop通常在Linux服务器上运行。同时,需要安装Java环境,因为Hadoop依赖Java运行。 2. 下载Hadoop:访问Apache官方网站下载最新稳定版的Hadoop二进制包。 3...

Global site tag (gtag.js) - Google Analytics