Hadoop伪分布式环境以及开发环境搭建

本文详细介绍了Hadoop及Hive在Ubuntu环境下的安装与配置步骤,涵盖单机、伪分布及分布式模式,深入解析配置文件修改及环境变量设置,同时提供了Hadoop开发环境在Windows下的搭建指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Hadoop EcoSystem

在这里插入图片描述

2. 环境准备

VMTools: WMware 10.0
OS:ubuntu 12.04LTS
Hadoop: hadoop-0.20.205.0
Hive: hive-0.9.0

3. Hadoop伪分布式安装

3.1 Hive与HADOOP协作关系图

在这里插入图片描述

3.2 Hadoop运行模式介绍

Hadoop集群有三种运行模式,分别为单机模式,伪分布模式,完全分布式模式。本书将重点介绍完全分布式模式下Hadoop的安装与配置。

  1. 单机模式
    单机模式是Hadoop的默认模式。在该模式下无需运行任何守护进程,所有程序都在单个JVM上执行。该模式主要用于开发调试MapReduce程序的应用逻辑。
  2. 伪分布模式
    在伪分布模式下,Hadoop守护进程运行在一台机器上,模拟一个小规模的集群。该模式在单机模式的基础上增加了代码调试功能,允许你检查NameNode,DataNode,JobTracker,TaskTracker等模拟节点的运行情况。
  3. 完全分布式模式
      单机模式和伪分布模式均用于开发与调试的目的。真实Hadoop集群的运行采用的是全分布模式。

3.3 系统安装以及JDK配置

略.

3.4 Ubuntu下安装流程

1. 新建用户用于Hadoop测试。

  1. 添加用户hadoop
    sudo addgroup hadoop
    sudo adduser –ingroup hadoop hadoop
  2. 为hadoop用户添加权限
    打开/etc/sudoers文件
    sudo gedit /etc/sudoers
    给hadoop用户赋予root用户同样的权限

2. 配置SSH

SSH用于集群中主从服务器之间执行指令时无需输入登陆密码。
安装单机以及伪分布模式可忽略此步。

  1. 安装SSH
    sudo apt-get install openssh-server
  2. 安装完成后,启动ssh服务,并验证服务进程是否启动
    在这里插入图片描述
  3. 生成公私钥
    ssh-keygen –t rsa –P “”
    完成后会在~/.ssh目录下生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥,然后将公钥id_rsa.pub添加到authorized_keys授权文件中
    cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
    然后使用ssh登录不用输入密码:
    在这里插入图片描述
    输入exit登出。
  4. 安装hadoop-0.20.205.0
  1. 解压安装包hadoop-0.20.205.0-bin.tar.gz
    在这里插入图片描述
  2. 在/usr/local新建文件夹hadoop,并修改文件权限为hadoop用户所有
    sudo mkdir hadoop
    sudo chown –R hadoop:hadoop hadoop
  3. 将安装文件移至hadoop目录
    mv hadoop-0.20.205.0/* /usr/local/hadoop
  4. 修改hostname
    在这里插入图片描述
    修改如下:
    在这里插入图片描述
  5. 添加环境变量
    在这里插入图片描述
    在.bashrc文件底部添加:
    export JAVA_HOME=/usr/lib/java/jdk1.7.0_79
    export JRE_HOME= J A V A H O M E / j r e e x p o r t C L A S S P A T H = . : {JAVA_HOME}/jre export CLASSPATH=.: JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib: J R E H O M E / l i b e x p o r t H A D O O P H O M E = / u s r / l o c a l / h a d o o p e x p o r t H I V E H O M E = / u s r / l o c a l / h i v e e x p o r t P A T H = {JRE_HOME}/lib export HADOOP_HOME=/usr/local/hadoop export HIVE_HOME=/usr/local/hive export PATH= JREHOME/libexportHADOOPHOME=/usr/local/hadoopexportHIVEHOME=/usr/local/hiveexportPATH={JAVA_HOME}/bin: H A D O O P H O M E / b i n : {HADOOP_HOME}/bin: HADOOPHOME/bin:{HIVE_HOME}/bin:$PATH
    输入env可查看环境是否添加成功,如果没有,注销用户再试。
  6. 单机模式安装完毕,可以运行hadoop自带的例子WordCount运行此过程
    mkdir input
    cp conf/* input
    在这里插入图片描述
    运行结束后
    cat output/* 查看结果
  7. 伪分布模式需要做一些配置,设定*-site.xml
    进入/usr/local/hadoop/conf目录,设定的文件包括core-site.xml, hdfs-site.xml, mapred-site.xml。
    core-site.xml: Hadoop Core的配置项,例如HDFS和MapReduce常用的I/O设置等。
    hdfs-site.xml: Hadoop 守护进程的配置项,包括namenode,辅助namenode和datanode等。
    mapred-site.xml: MapReduce 守护进程的配置项,包括jobtracker和tasktracker。

core-site.xml:
在这里插入图片描述
fs.default.name为节点网络配置信息;
hadoop.tmp.dir用于缓存namenode格式化的信息

hdfs-site.xml:
在这里插入图片描述
dfs.name.dir为存放hdfs元数据结构,可设置多个,用于备份;
dfs.data.dir为存放hdfs中的数据,其他同上;
dfs.replication: 设置hdfs的副本数量。

mapred-site.xml:
在这里插入图片描述
mapred.job.tracker为设置master节点的jobtracker网路配置信息。
修改主从服务器中的配置信息:
在这里插入图片描述
在这里插入图片描述
8) 格式化HDFS
初次运行hadoop时一定要有此操作。格式化namenode, secondarynamenode, tasktracker
指令:
hadoop namenode –format
9) 启动Hadoop
在这里插入图片描述
通过jps命令查看进程是否启动成功:
在这里插入图片描述
以上信息表示启动成功。
10) 可重新运行wordcount例子,看下结果。
11) 所有的设置已完成,Hadoop也启动了,现在可以通过下面的操作来查看服务是否正常,在Hadoop中用于监控集群健康状态的Web界面:
http://hadoop:50030/ - Hadoop 管理介面
http:// hadoop:50060/ - Hadoop Task Tracker 状态
http:// hadoop:50070/ - Hadoop DFS 状态
12) 结束hadoop时,可通过stop-all.sh脚本关闭Hadoop的守护进程。
4. 安装hive-0.9.0
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,并将sql语句转换为MapReduce任务进行运行。

  1. 解压hive-0.9.0-bin.tar.gz
    在这里插入图片描述
  2. 在/usr/local目录下新建目录hive,并将hive安装文件移动至新建目录中
    sudo mkdir hive
    mv hive-0.9.0-bin/* /usr/local/hive
  3. 设置目录权限以及环境变量,参见hadoop设置。
  4. 修改/hive/conf下面的模板文件:
    cp hive-env.sh.template hive-env.sh
    cp hive-default.xml.template hive-site.xml

hive-env.sh, 设置hadoop目录
在这里插入图片描述
Hive-site.xml, 配置hive元数据存放位置,metastore使用本地模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

hive.metastore.warehouse.dir:hive数据在hdfs文件系统中的存储目录;
hive.metastore.local:为true时,metastore为本地模式,metastore服务和hive服务在同一进程中运行;当为false时,metastore服务可配置为远程模式,此时,metastore服务和hive服务分开启动。
Java.jdo.option.ConnectionURL,
javax.jdo.option.ConnectionDriverName,
javax.jdo.option.ConnectionUserName,
javax.jdo.option.ConnectionPassword:四个配置项用于配置metastore元数据的存放位置,使用关系型数据库进行存放;例子中使用postgresql数据库,hive默认使用derby。
5) 启动hive, 并创建表test1
在这里插入图片描述

访问时,报目录访问权限错误,将hadoop的安全模式关闭
Hadoop dfsadmin –safemode leave
6) 验证表是否创建成功(两种方法)

  1. hadoop fs –ls /user/hive/warehouse
  2. http://localhost:50070/ 查看表对应的文件夹是否存在
  1. hive web界面访问方式
    http://localhost:9999/hwi/
  2. 将数据导入hdfs-> load data local inpath ‘/home/hadoop/test.txt’ into table test1;
  3. Metastore服务远程配置
    在这里插入图片描述
    hive.metastore.uris:配置客户端访问后端服务的uri。
    此时,hive分3个服务启动:
  1. hive –service metastore :启动hive元数据存储服务
  2. hive –service hiveserver:启动hive服务
  3. hive :启动客户端

4.Hadoop开发环境搭建

4.1 开发环境准备

OS: win 7
IDE: eclipse 4.4
Ant:apache-ant-1.9.6
Hadoop eclipse-plugin:手动编译生成

4.2 编译生成Hahoop的eclipse插件

Ant配置过程略。
插件编译基于hadoop-0.20.205.0.tar.gz源代码包。

  1. 将目录切换到/src/contrib./eclipse-plugin
    在这里插入图片描述
  2. 打开build.xml
    样例:
    设定参数以及编译所需eclipse的jar包
    在这里插入图片描述
    hadoop.root: hadoop的根目录;
    eclipse.name: eclipse的根目录,编译的插件和eciipse的版本有关系,不同版本的hadoop插件不能共用;
    version: hadoop版本号。

编译插件代码:
在这里插入图片描述

编译成jar包:
在这里插入图片描述
3. 打开META-INF/MANIFEST.MF
添加jar包:
在这里插入图片描述
4. 然后使用ant生成jar包
在这里插入图片描述
编译成功后,会在/build/contrib/eclipse-plugin/生成jar包。
5. 将jar放到eclipse目录plugins下,重启eclipse。

4.3 Eclipse配置hadoop开发环境

  1. 打开”window”->”preferences”,选择”Hadoop Map/Reduce”页签
    在这里插入图片描述
    选择hadoop的安装目录
  2. 将eclipse切换到Map/Reduce风格。
    在这里插入图片描述
    可以看到:
    在这里插入图片描述
    在这里插入图片描述
  3. 在Map/Reduce Locations右键点击New Hadoop Location:
    在这里插入图片描述
    在Map/Reduce Master下面的Host填写远程主机ip,端口号填写hadoop运行环境所配置的端口,DFS Master同理;
    User name填写运行hadoop的用户名。
    连接成功后,可以看到hdfs的目录,如图所示:
    在这里插入图片描述

如果连接时,提示如下错误:
在这里插入图片描述
将报错的jar包中的class文件直接放在插件的classes目录里。

4.4 编写hadoop的MapReduce代码

  1. 新建一个MapReduce的项目
    在这里插入图片描述
  2. 编写样例代码WordCount
    样例代码参见hadoop-examples-0.20.205.0.jar
  3. 然后运行项目即可,Run on Hadoop。运行前如果输出的目录存在,请先将其删除。运行结果如下:
    在这里插入图片描述
    在这里插入图片描述
  4. 运行时提示文件访问权限错误时(本地ubuntu环境不会出现此错误),将FileUtil.java从hadoop-core模块单独提出来
    在这里插入图片描述
    将checkReturnValue方法里面的代码注释掉,
    在这里插入图片描述
    然后重新运行即可。

5.MongoDB数据导入HDFS

MongoDB数据导入是使用hadoop的Map/Reduce方法进行导入。

5.1环境准备

Mongodb数据库:mongodb-win32-x86_64-2008plus-2.6.11
Mongodb数据导入HDFS的API : mongo-hadoop-0.20-1.2.0
Mongodb的Java驱动 :mongo-java-driver-2.8.0.jar
Mongodb客户端: rockmongo-on-windows

5.2 MongoDB数据准备

使用rockmongo准备数据,例如:

在这里插入图片描述
在这里插入图片描述
数据库以及表名为local.hadoop, 数据中只有一个字段key。

5.3 数据导入代码

  1. 将mongodb的java驱动以及mongo-hadoop中的jar放在hadoop根目录/lib/下,并在项目中buildpath中也添加如上的jar包。
  2. 导入代码如下:
    在这里插入图片描述
    编写map方法将mongodb中的数据取出来。
    在这里插入图片描述
    在main方法中,指明mongodb数据库地址,库以及表,以及数据输入输出的过滤类等。
  3. 执行完毕后,可以在output文件夹里面看到从mongodb中导出的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值