`
wbj0110
  • 浏览: 1620113 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

CDH5伪分布式环境搭建

阅读更多

说明:

  1. 本文描述的是基于Windows+虚拟机+CentOS的Hadoop+HBase的开发环境搭建过程,使用的Hadoop版本是CDH5(Cloudera Distribution including Apache Hadoop,CDH),旨在说明HADOOP的伪分布式环境搭建关键步骤。CDH5与Hadoop的关系,Hadoop、Hbase、Zookeeper之间的关系,及文中涉及的一些工具、命令的使用等与本文有关系不是特别密切的东西都没有详细说明,想了解更多请:http://www.google.com

  2. 本文旨在学习Hadoop,而且所有操作基本都是在虚拟机中进行,所以方便起见所有操作直接用root用户。

基础环境

操作系统

CDH5的环境要求可以参见:CDH 5 Requirements and Supported Versions 虚拟机可以用VMWare或VirtualBox,详细安装过程请自行Google ,本文所用的环境为Win8+VMWare+CentOS6.4 +CDH5:
虚拟机安装CentOS6.4方便起见推荐使用安装minimal版,小巧玲珑百度网盘下载

  1. minimal版的CentOS网络默认没有打开
    用以下命令打开:
    ifconfig eth0 up
    dhclient eth0

    可以修改/etc/sysconfig/network-scripts/ifcfg-eth0ONBOOT=no 改成ONBOOT=yes开机打开网络,如果要设置静态IP可以参考以下内容进行做修改

     DEVICE=eth0
     BOOTPROTO=static
     ONBOOT=yes
     HWADDR=00:0C:29:30:35:C5
     TYPE=Ethernet
     NAME="System etho0"
     UUID=fdaced38-14e2-4b7e-905e-01eebc698573
     NM_CONTROLLED=yes
     BROADCAST=192.168.242.255
     IPADDR=192.168.242.129
     NETMASK=255.255.255.0
     GATEWAY=192.168.242.2
     IPV6INIT=no
     DNS1=192.168.242.2
    
  1. 为方便之后的操作,可能还需要以下操作,这一步不是必须的

    yum update 先更新一下会自动选最快的源
    常用软件安装
    yum install vim wget
    下面这些你可能会能也会用到
    yum install lsof make ntp tcpdump time zip unzip git
    yum groupinstall "Development Tools"

  2. 为方便与宿主机共享文件,可以安装VMwareTools,这一步也不是必须的

    在虚拟机启动前先设置好共享目录然后

     mkdir  /mnt/cdrom
     mount /dev/cdrom /mnt/cdrom
     cd /mnt/cdrom
     tar -zxvf VMwareTools-xxxxx.tar.gz -C /tmp
     cd /tmp/vmware-tools-distrib
    
     ./vmware-install.pl   #安装
     一路回车选默认值直接到**Would you like to enable VMware automatic kernel modules? [no]**这个地可能需要yes    
    

    安装完成后重启,在/mnt/hgfs/就是可以看到共享的宿主机的目录

    不行的话可以尝试手工挂载

     mount -t vmhgfs .host:/ /mnt/hgfs/ 
     编辑 /etc/fstab,添加下面一行
     .host:/                  /mnt/hgfs               vmhgfs  defaults  0 0
    

注意:

  • /etc/sysconfig/network中HOSTNAME的值初始值是安装的时候提供的主机名,而在/etc/hosts中又没有提供相应的映射,Hadoop各组件之件默认会用HOSTNAE+端口号进行通信,所以默认情况下会出错,并且我们需要的是宿主机中进行开发测试,也就是需要外部访问此伪分布式集群,所以你需要在/etc/hosts文件中加入一条映射:
1
192.168.242.129   centos.migle

以上需要按实际情况做修改192.168.242.129是文中虚拟机地址, centos.migle是文中虚拟机HOSTNAME,下文中不再特别说明,如有出现请按自已实际对应做修改

估计不用虚拟机IP和HOSTNAME做映射也是可以,用一个新名字映射虚拟机IP也是可以的!!

  • CentOS默认iptables是开的,可以这样查看状态service iptables status 而本文描述的是在虚拟机中安装的Hadoop,会在宿主机中通过WEB UI或客户端的形式访问虚拟机中的Hadoop所以为方便起见把Iptables给关了:service stop iptables 可以直接设成开机不启动chkconfig iptables off免得麻烦

软件环境

  1. JDK安装
    先检查是否已经安装java -version环境变量是否已经设置echo $JAVA_HOME 如果没安装继续看下面,如果都没问题进入
    下一步

    1. 下载 :http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
    2. 安装:rpm -i jdk-7u55-linux-x64.rpm

    3. 环境变量设置:/etc/profile 添加以下内容:

1
2
3
export JAVA_HOME=/usr/java/jdk1.7.0_55    
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar      
export PATH=$PATH:$JAVA_HOME/bin
>> *重新登录或  `source /etc/profile` 生效* 
  1. ssh server

伪分布式运行应该是不需要SSH Server的,安装主要是为方便在宿主机中用XShell连接虚拟机,不过好处是CentOS自带,不用额外安装

Hadoop

安装

  1. 设置软件源
1
2
3
wget http://archive.cloudera.com/cdh5/one-click-install/redhat/6/x86_64/cloudera-cdh-5-0.x86_64.rpm
sudo yum --nogpgcheck localinstall cloudera-cdh-5-0.x86_64.rpm  
sudo rpm --import http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
  1. 安装:
    sudo yum install hadoop-conf-pseudo
  2. 检查安装:
    rpm -ql hadoop-conf-pseudo
    hadoop version

配置

CDH5把Hadoop的配置文件都是在/etc/hadoop/conf下面放着伪分布部署时会有一个名为conf.pseudo的符号链接如果你需要在宿主机中访问,默认配置不用改变
CDH5的Hadoop部署只需要修改core-site.xml一个文件的一个位置,如果你不需要在虚拟机外部分访问,可以不用修改

  • 修改:core-site.xml
1
2
3
4
5
  <property>
    <name>fs.defaultFS</name>
    <!--把localhost修改成VM的IP,本文中修改为:192.168.242.129,如果配置成VM的HOSTNAME,在VM上操作没问题,但宿主机用JAVA API操作的时候会报报错!!-->
    <value>hdfs://localhost:8020</value>
  </property>
  • 格式化HDFS:sudo -u hdfs hdfs namenode -format

    可以看看: /etc/hadoop/conf.pseudo/hdfs-site.xml
    namenode的data分别保存在:
    /var/lib/hadoop-hdfs/cache/hdfs/dfs/name
    /var/lib/hadoop-hdfs/cache/hdfs/dfs/data

  • 启动服务: for x in `cd /etc/init.d ; ls hadoop-hdfs-*` ; do sudo service $x start ; done

    下次开机会自动启动

  • 宿主机浏览器里打开:http://centos.migle:50070/ 如果看到类似以下界面,说明问题成功了一小步!..

    如果使用虚拟机的HOSTNAME则需要在宿主机的hosts文件中加入相应映射,否则请直接用IP地址
    psudo-50070psudo-50070

  • 创建相关目录

1
2
3
4
5
sudo -u hdfs hadoop fs -mkdir -p /tmp/hadoop-yarn/staging/history/done_intermediate
sudo -u hdfs hadoop fs -chown -R mapred:mapred /tmp/hadoop-yarn/staging 
sudo -u hdfs hadoop fs -chmod -R 1777 /tmp 
sudo -u hdfs hadoop fs -mkdir -p /var/log/hadoop-yarn
sudo -u hdfs hadoop fs -chown yarn:mapred /var/log/hadoop-yarn

查看结果: hadoop fs -ls -R / 也可以在WEB界面中查看

安装的时候会自动创建hadoop,hdfs,yarn,mapred等用户

hadoop fs 会改给出HDFS的命令的帮助,和相应的Linux名字和相应功能都很像,参数也比较简单

  • 启动YARN服务
1
2
3
sudo service hadoop-yarn-resourcemanager start   
sudo service hadoop-yarn-nodemanager start   
sudo service hadoop-mapreduce-historyserver start

下次开机会自动启动

jps后会有类似如下的输出:

1
2
3
4
5
6
13988 SecondaryNameNode  
14627 ResourceManager  
15051 JobHistoryServer  
14705 NodeManager  
13878 NameNode  
13785 DataNode

如有以上输出,说明配置基本完成,进行下一步测试

开发测试

本地MR任务测试

为管理方便给root用户在HDFS上创建个目录,并赋权

1
2
sudo -u hdfs hadoop fs -mkdir -p /user/root
sudo -u hdfs hadoop fs -chown root /user/root

/etc/profile 中添加个环境变量
export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce
export CLASSPATH=$CLASSPATH:$HADOOP_MAPRED_HOME

hadoop的JAR都在HADOOP_MAPRED_HOME目录下,但不知道这个环境变量是用来干什么的

创建一个test.txt的文件加上几行内容

1
2
3
echo "hello" >> test.txt
echo "hadoop" >> test.txt
echo "hi,hadoop" >> test.txt

上传到hdfs中:hadoop fs -put -f test.txt /user/root/
查看文件:hadoop fs -ls -R /user/root/
查看文件内容 hadoop fs -cat /user/root/test.txt
如下图:
cdh5-put-lsr-catcdh5-put-lsr-cat

运行一个自带MR例子,
hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount test.txt output

hadoop-mapreduce-examples.jar源码在Hadoop的源码包里有

结果会在output目录下生成output是相对路径,绝对

/user/root/output

查看结果:
hadoop fs -ls -R output
hadoop fs -cat /user/root/output/part-r-00000
Alt textAlt text

远程HDFS JAVA API

代码见:https://github.com/longforfreedom/StudyHadoop

HBASE

安装:

1
2
3
4
sudo yum install zookeeper-server
sudo yum install hbase-master
sudo yum install hbase
sudo yum install hbase-regionserver

可选:
sudo yum install hbase-thrift ##thrift接口需要
sudo yum install hbase-rest ##rest接口

查看:rpm -ql hbase

配置

  1. 创建相关目录
    zookeeper的dataDir
1
2
mkdir -p /var/lib/zookeeper
chown -R zookeeper /var/lib/zookeeper/

hbase目录ms会自动创建
sudo -u hdfs hadoop fs -mkdir /hbase
sudo -u hdfs hadoop fs -chown hbase /hbase

  1. 配置:
    两个配置文件 /etc/hadoop/conf/hdfs-site.xml/etc/hbase/conf/hbase-site.xml

    • /etc/hadoop/conf/hdfs-site.xml中添加

      dfs.datanode.max.xcievers
      4096

      单机小测试不改这个应该不会出错!!
      修改hdfs-site.xml需要重启Hadoop

    • /etc/hbase/conf/hbase-site.xml 添加以下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

<property>
<name>hbase.rootdir</name>
<!--按实际情况修改-->
<value>hdfs://centos.migle:8020/hbase</value>
</property>

<property> 
<name>hbase.zookeeper.quorum</name>      
<value>centos.migle</value>    
</property>
  1. 启动:

    • 启动Zookeeper
      sudo service zookeeper-server init #第一次启动时执行以后再不需要
      sudo service zookeeper-server start

      测试zookeeper:zookeeper-client -server localhost:2181

    • 启动Hbase
      sudo service hbase-master start
      sudo service hbase-regionserver start

下次开机会自动启动

宿主机中的访问:http://centos.migle:60010/
cdh5-60010cdh5-60010

开发测试

HBASE SHELL 基本操作

hbase shell 进入HBASE SHELL,提示符会变成类似:hbase(main):002:0>以下命令都在HBASE SHELL执行.

  • 查看状态 :status
  • 查看版本:version
  • 创建表:create 'mtable','cf' 指定表名和列族,多个列族用“,”分隔如:create 'mtable','cf','cf2'
  • 插入数据: put '表名','rowKey','列名','列值'
    put 'mtable','rowKey1','cf:acc_nbr','18797384480'
    put 'mtable','rowKey1','cf:name','migle'
    列可以动态创建: 列格式是:列族:列名
  • 查看数据:
    单行:
    get 'mtable' , 'rowKey1'
    get 'mtable','rowKey1','cf:acc_nbr'
    get 'mtable','rowKey1','cf'
    所有: scan 'mtable'
  • 行数:count 'mtable'
  • 更新数据:put 'mtable','1','cf:acc_nbr','18797384481'
  • 删除数据:delete 'mtable','1','cf:name'
  • 清空表: truncate 'mtable'
  • 查看表结构:describe 'mtable'
  • 修改表结构:
    1. 添加一个列族:
1
2
3
   disable 'mtable'  
   alter 'mtable', NAME => 'cf2'  
   enable 'mtable'
2. 删除列族: 
1
2
3
disable 'mtable'   
alter 'mtable', 'delete' => 'cf2'  
enable 'mtable'
  • 删除表:
1
2
disable 'mtable'
drop 'mtable'

JAVA API远程测试

代码见:https://github.com/longforfreedom/StudyHadoop

Python


@TODO

安装 thrift
thrift依赖
sudo yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby—-devel
/usr/lib/hbase/include/thrift
http://blog.csdn.net/guxch/article/details/12163047

其它:

  1. 在虚拟机中不要把HOSTNAME映射成127.0.0.1否则宿主机中JAVA API不能访问HBASE!!
  2. 可以pom.xml中加入cloudera的仓库,但直接用Apache版本的好像也没问题
1
2
3
4
5
6
  	<repositories>
    	<repository>
      		<id>cloudera</id>
      		<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
    	</repository>
  	</repositories>

参考资料

分享到:
评论

相关推荐

    hadoop cdh版本伪分布式集群搭建图文教程

    ### hadoop cdh版本伪分布式集群搭建图文教程详解 #### 一、引言 随着大数据技术的发展,Hadoop已成为处理大规模数据集的核心工具之一。CDH(Cloudera Distribution Including Apache Hadoop)作为Hadoop的一个发行...

    【Hadoop离线基础总结】CDH版本Hadoop 伪分布式环境搭建

    CDH版本Hadoop 伪分布式环境搭建 服务规划 步骤 第一步:上传压缩包并解压 cd /export/softwares/ tar -zxvf hadoop-2.6.0-cdh5.14.0.tar.gz -C ../servers/ 第二步:查看Hadoop支持的压缩方式以及本地库 cd /...

    hadoop伪分布式搭建.doc

    《Hadoop伪分布式环境搭建详解》 Hadoop作为大数据处理的核心框架,其分布式环境的搭建是初学者必须掌握的关键技能之一。本篇文章将详细解析Hadoop伪分布式集群环境的搭建步骤,以及在搭建过程中可能遇到的问题及其...

    大数据 Hadoop 伪分布式搭建

    本教程将指导你如何在Ubuntu 16.04系统上搭建Hadoop 2.6.0的伪分布式环境,这个环境模拟了一个完整的Hadoop集群,但所有服务都在同一台机器上运行。 首先,我们需要创建一个新的用户和用户组,这有助于管理和隔离...

    ubuntu完全分布式搭建CDH集群(Cloudera Manager)

    ### Ubuntu 完全分布式搭建 CDH 集群(Cloudera Manager) #### 搭建环境概述 本文档旨在详细介绍如何在 Ubuntu 14.04.3 系统下构建一个完整的 Cloudera Manager (CM) 管理的 CDH 集群。该集群将使用三台物理...

    hadoop的伪分布式模式配置与安装

    通过以上步骤,我们可以成功地在一个由三台主机组成的集群上部署了一个Hadoop伪分布式环境。这种模式虽然不是完全意义上的分布式,但它提供了足够的灵活性来测试和验证Hadoop的各种功能,同时也能够模拟出实际生产...

    zkconf:Apache ZooKeeper仲裁配置生成器

    什么是Apache ZooKeeper 来自“ ZooKeeper是针对分布式应用程序的高性能协调服务。” 它在一个简单的界面中公开了常见的服务,例如命名,配置管理,同步和组服务,因此您不必从头开始编写它们。 您可以现成使用它来...

    5堂Hadoop必修课,不会这些勿称高手

    描述部分列举了一些具体的知识点,包含搭建企业级Hadoop集群的步骤、搭建高可用性(HA)的Hadoop分布式集群、安装CDH5集群环境,以及如何配置和使用Zookeeper、MapReduce的高级join操作。 对于标签“Hadoop”,这是...

    大数据hadoop的暂时性的小总结.docx

    在描述中提到了一个基于CDH5.14.0的伪分布式环境搭建步骤,这通常包括解压Hadoop安装包、安装依赖库(如openssl-devel)、修改配置文件、创建数据存储目录、分发安装包和配置环境变量。例如,通过`tar`命令解压,`...

    2018最新高清大数据协作框架全套视频教程(Sqoop,Flume,Oozie,WEB工具Hue)

    1.02_02_01_04 使用CDH 5.3.6版本快速搭建Hadoop 2.x和Hive伪分布式环境 网页.mp4 1.02_02_01_05 Sqoop 1安装及基本使用讲解 网页.mp4 1.02_02_01_06 使用Sqoop导入数据到HDFS及本质分析 网页.mp4 1.02_02_01_07 ...

    《Hadoop大数据技术原理与应用》课后习题答案

    Hadoop集群可以在独立模式、伪分布式模式和完全分布式模式下运行。在独立模式下,所有的程序都在单个JVM上执行。在伪分布式模式下,Hadoop程序的守护进程运行在一台节点上。在完全分布式模式下,Hadoop的守护进程...

    hadoop 2.6.0 安装包

    - **伪分布式模式**:在单台机器上模拟分布式环境,每个Hadoop进程都以独立Java进程运行。 - **完全分布式模式**:在多台机器上部署,适合生产环境。 5. **Hadoop生态组件** - **Hive**:基于Hadoop的数据仓库...

    Hadoop测试题

    11. Hadoop 的运行模式包括单机版、伪分布式、分布式等。因此,正确答案是 abc) 单机版、伪分布式、分布式。 Cloudera 12. Cloudera 提供了多种安装 CDH 的方法,包括 Cloudera Manager、Tar ball、Yum、Rpm 等。...

    Hadoop学习文档.pdf

    1. Hadoop2.6.2伪分布式安装:介绍如何配置和安装Hadoop 2.6.2版本,以及如何设置单机模式。 2. Hadoop2.6.2完全分布式和Hadoop2.7.2完全分布式安装:讲解Hadoop集群的配置,包括如何搭建一个真正的分布式环境。 3. ...

    详解linux ntp服务器时间同步设置

    在许多场景下,确保服务器之间的时间同步是非常重要的,特别是在分布式系统或集群环境中。例如,安装Cloudera Manager (CM) 或 Cloudera Distribution Including Hadoop (CDH) 时,如果服务器之间的时间不一致,可能...

Global site tag (gtag.js) - Google Analytics