hadoop java 追加数据_Hadoop分布式配置方式

一、硬件环境

Hadoop搭建系统环境:一台Linux ubuntu-13.04-desktop-i386系统,既做Namenode,又做Datanode。(ubuntu系统搭建在硬件虚拟机上)

Hadoop安装目标版本:Hadoop1.2.1

jdk安装版本:jdk-7u40-linux-i586

Pig安装版本:pig-0.11.1

硬件虚拟机搭设环境:IBM塔式服务器x3500M3 MT:7380

eclipse安装版本:eclipse-standard-kepler-SR1-linux-gtk

二、软件环境准备

2.1 Hadoop

Hadoop Release 1.2.1(stable)版本,下载链接:http://mirror.nexcess.net/apache/hadoop/common/hadoop-1.2.1/,选择hadoop-1.2.1-bin.tar.gz文件下载。

2.2 Java

Java使用的jdk1.7版本,当然可以使用1.6的,下载链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,选择Linux

x86的 jdk-7u40-linux-i586.tar.gz版本下载(因为我的Linux机器是32位的)。如果Linux机器是64的就必须选择64位的下载,不同的机器必须要配置不同的jdk版本。

2.3 Eclipse

三、安装步骤

3.1 添加一个专门为hadoop使用的用户

命令行输入:

sudo addgroup hadoop

sudo adduser -ingroup hadoop hadoop

设置hadoop用户的sudo权限:

sudo vim /etc/sudoers

在root

ALL=(ALL:ALL) ALL下面加一行hadoop ALL=(ALL:ALL)

ALL

切换到hadoop用户:su

hadoop

3.2 创建目录并解压安装包

建立目录

sudo mkdir /home/hadoop/install

sudo mkdir /home/hadoop/software/hadoop /*该目录存储hadoop程序文件*/

sudo mkdir /home/hadoop/software/java /*该目录存储jdk程序文件。*/

sudo mkdir /home/hadoop/software/eclipse /*该目录存储eclipse程序文件。*/

解压安装压缩包

sudo tar -xzvf '/home/master/下载/jdk-7u40-linux-i586.tar.gz' -C /home/hadoop/software/java/

sudo tar -xzvf '/home/master/下载/hadoop-1.2.1-bin.tar.gz' -C /home/hadoop/software/hadoop/

3.3 配置Hadoop

配置Java环境

添加JAVA_HOME,CLASSPATH环境变量。使用sudo vi /etc/profile命令编辑profile文件,在文件末尾加上以下内容:

HADOOP_INSTALL=/home/hadoop/software/hadoop/hadoop-1.2.1/

JAVA_HOME=/home/hadoop/software/java/jdk1.7.0_40

PATH=$JAVA_HOME/bin:$HADOOP_INSTALL/bin:$PATH

CLASSPATH=$JAVA_HOME/lib

export JAVA_HOME PATH CLASSPATH HADOOP_INSTALL

然后保存退出,使用source /etc/profile使刚刚的更改立即生效。

然后使用java –version命令,查看是否配置成功,如果成功会出现以下信息:

java version “1.7.0_40″

Java(TM) SE Runtime Environment (build 1.7.0_40-b43)

Java HotSpot(TM) Client VM (build 24.0-b56, mixed mode)

配置SSH环境

使用以下命令设置ssh无密码连接:

ssh-keygen

cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

ssh localhost

最后一行代码为测试使用。首次运行会提示是否继续,输入yes,回车,如果不要求输入密码,就表示成功了。

配置hadoop环境

通过cd /home/hadoop/software/hadoop/hadoop-1.2.1/conf进到conf这个目录,看到haddoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml这四个文件以及需要在完全分布模式配置的slaves和masters文件。

1.配置hadoop-env.sh:找到JAVA_HOME关键字所在的行,把前面的#号去掉,然后填写实际的JAVA_HOME地址:

export JAVA_HOME=/home/hadoop/software/java/jdk1.7.0_40

2.配置core-site.xml:用vi core-site.xml打开core-site.xml文件,然后在configuration标签中加入以下内容:

fs.default.name

hdfs://localhost:9000

hadoop.tmp.dir

/home/hadoop/tmp/hadoop_tmp

3.配置hdfs-site.xml:在configuration标签中加入以下内容,所有不存在的目录都要预先创建:

dfs.data.dir

/home/hadoop/appdata/hadoopdata

dfs.name.dir

/home/hadoop/appdata/hadoopname

dfs.replication

1

4.配置mapred-site.xml:在configuration标签中加入以下内容:

mapred.job.tracker

localhost:9001

四、启动hadoop

4.1 测试hadoop配置是否成功

通过以下命令,当我们看到hadoop的版本时则表明配置无误。

hadoop version

4.2 格式化namenode

cd /home/hadoop/software/hadoop/hadoop-1.2.1/bin

./hadoop namenode –format

4.3 启动hadoop进程

cd /home/hadoop/software/hadoop/hadoop-1.2.1/bin

./start-all.sh

通过java的jps命令来查看进程是否启动成功,成功启动SecondaryNamenode,JobTracker,NameNode,DataNode,TraskTracker五个进程则OK。

如果有一个进程没有启动成功,就表示整个集群没有正常工作,进入/home/hadoop/software/hadoop/hadoop-1.2.1/libexec/../logs/目录下可以查看失败日记。

4.4 从浏览器查看hadoop信息

查看jobtracker信息:

可以从本机或者其他机器的浏览器访问hadoop,输入如下网址:http://10.1.151.168:50030/jobtracker.jsp,其中10.1.151.168为我该机器的IP地址。

查看namenode信息:

查看trasktracker信息:

错误笔记

password:localhost:permission denied,please try again

碰到这种情况大都是没有给hadoop用户赋予sudo权限所致。所以打开你的/etc/sudoers加上hadoop

ALL=(ALL:ALL) ALL吧。

Tasktracker无法正常启动

通过查找logs中tasktracker的错误日志发现其中有一个warn是相应目录下temp/hadoop_tmp.mapred/local/文件的权限被设置成not

writable了。于是通过修改权限解决了上述的问题,命令如下:

sudo chmod 777 /home/hadoop/temp/hadoop_tmp.mapred/local/

每次开机都需要把/etc/profile重新source一遍,不然就显示没装jdk

这个问题还是没有解决,因为还没找到原因所在。怎么办呢,算了,每次繁琐一点source一遍吧,暂时先这样了。

SafeMode: ON – HDFS unavailable,导致nodes显示为0,没有namenode启动。

经过查询是hdfs-site.xml配置中的dfs.name.dir的value所在的目录出了问题,显示是:xxx is in an inconsistent state: storage directory does not exist or is not accessible.其中xxx代表那个目录,不断的重启与格式化总是不能解决这个问题,删不删除这个目录也都无济于事。是的,我疯了,你看到我疯狂的眼神了么?终于,突然想到了chown的作用,于是我执行了如下指令:

sudo chown -R hadoop:hadoop /home/hadoop/appdata/

重新格式化,然后start-all.sh,搞定了!总结为文件的权限问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值