ubantu系统中Hadoop伪分布环境搭建与hbase配置

笔者对hadoop了解并不多,只是在课业中遇到过,并在搭建时遇到大量意想不到的错误,现就如何搭建与常见错误解决办法做一总结,希望能对大家有所帮助。
以下内容如有侵权,请联系笔者删除,敬谢!
首先在百度云中上传了笔者所用软件版本,及一些测试程序。
[http://pan.baidu.com/s/1miSER12]

0.配置SSH

因为我们会经常用到apt更新软件,现在可以先更新以下工具(联网):

sudo apt-get update

一般来说都不会出现错误,但偏偏笔者遇到了。。。。
解决办法(其他软件遇到相同问题也可这样尝试解决)如下:
尝试多安装几次,若依然错误:
系统设置-> 软件和更新->ubantu 软件->下载自->更改来源(把来源一个一个试试,或者找有眼缘的。。。。)。

这里写图片描述

安装ssh,ubantu已默认安装SSH Client,需要安装SSH Server

sudo apt-get install openssh-server

安装完成后,打开

ssh localhost

这里写图片描述

输入你的密码,但这样以后会比较麻烦,现在更改为无密码登录

exit 
cd ~/.ssh
ssh-keygen -t rsa //提示都按回车
cat ./id_rsa.pub >> ./authorized_keys

此时登录ssh,无需密码

ssh localhost

1.JDK的安装

若已安装,可跳过。
JDK选择1.7版本,否则有兼容问题,上传资料中已共享。

首先选择安装路径,笔者为/usr/local/java/
你会发现java文件夹需要自己建立,方法如下:

sudo mkdir /usr/local/java/

查看是否建立成功
找到压缩包存放路径,解压到java文件夹下面:

sudo tar -zxf /home/java/jdk-7u80-linux-x64.tar.gz -C /usr/local/java

注意第一个文件路径为你的jdk存放路径!

下面设置环境变量(注意路径,文件名与你的一致),笔者为了后面方便,一同设置了hadoop,hbase,hdfs:
首先找到/etc/profile,建议笔记本修改此文件,采用下面命令,记得使用sudo,不然没有权限!

sudo gedit /etc/profile

把下面内容复制进去,并保存:

JAVA_HOME=/usr/local/java/jdk1.7.0_80
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH

设置默认JDK(注意路径,文件名与你的一致):

sudo update-alternatives --remove-all "java"
sudo update-alternatives --remove-all "javac"
sudo update-alternatives --remove-all "javaws"

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.7.0_80/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.7.0_80/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.7.0_80/bin/javaws" 1

sudo update-alternatives --set java /usr/local/java/jdk1.7.0_80/bin/java
sudo update-alternatives --set javac /usr/local/java/jdk1.7.0_80/bin/javac
sudo update-alternatives --set javaws /usr/local/java/jdk1.7.0_80/bin/javaws

测试jdk

java -version

2.hadoop

再次强调,注意你的压缩包路径及名字!
此处需要复制笔者上传资料的work文件到你的/home/ 目录下面,可直接复制。

解压安装包

```
sudo tar -zxf /home/gaoxun/下载/hadoop-2.6.0.tar.gz  -C /usr/local/java

配置文件,首先改变读写权限:
xxx为你的用户名

cd /usr/local/java/ 
sudo chown -R ××× ./hadoop-2.6.0

配置core-site.xml.

sudo gedit /usr/local/java/hadoop-2.6.0/etc/hadoop/core-site.xml 

改变配置如下:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/×××/work/hdfs</value>
    </property>
</configuration>

配置hdfs-site.xml

sudo gedit /usr/local/java/hadoop-2.6.0/etc/hadoop/hdfs-site.xml

改变为:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

下面配置路径:
进入/home/目录下,使用ctrl+h,打开隐藏文件,找到 .bashrc 文件,
复制如下进去:

export JAVA_HOME=/usr/local/java/jdk1.7.0_80

HADOOP_DIR=/usr/local/java/hadoop-2.6.0
HBASE_DIR=/usr/local/java/hbase-0.98.24-hadoop2

export CLASSPATH=.:${HADOOP_DIR}/etc/hadoop:${HADOOP_DIR}/share/hadoop/common/lib/*:${HADOOP_DIR}/share/hadoop/common/*:${HADOOP_DIR}/share/hadoop/hdfs:${HADOOP_DIR}/share/hadoop/hdfs/lib/*:${HADOOP_DIR}/share/hadoop/hdfs/*:${HADOOP_DIR}/share/hadoop/yarn/lib/*:${HADOOP_DIR}/share/hadoop/yarn/*:${HADOOP_DIR}/share/hadoop/mapreduce/lib/*:${HADOOP_DIR}/share/hadoop/mapreduce/*:/contrib/capacity-scheduler/*.jar:${HBASE_DIR}/lib/*

export PATH=${PATH}:${HADOOP_DIR}/bin:${HADOOP_DIR}/sbin:${HBASE_DIR}/bin

使.bashrc文件生效

source ~/.bashrc

此时你在终端的任何目录下都可以使用hadoop命令,

hadoop version

这里写图片描述

启动hdfs

hdfs namenode -format
start-dfs.sh

使用

jps

查看,若jps命令出错,可尝试使用haoop version 后在使用jps

这里写图片描述

若无datanode则启动错误,查看log日志会发现,datanode ID与namenode ID 不一致,最简单直接解决办法,删除data数据,(注意会删除已经存放数据,如果你第一次配置,并不需要担心这个)
首先关闭hdfs

stop-dfs.sh

data位于

/home/***/work/hdfs/dfs/data

路径中,找到删除,重新启动hdfs。

设置hdfs存放文件的文件夹

hdfs dfs -mkdir /hw1

强烈建议顺便配置hbase文件,以免一会忘记

hdfs dfs -mkdir hbase

可以使用命令查看

hdfs dfs -ls /

这里写图片描述

往hdfs 中放入文件

hdfs dfs -put ~/work/hw1/tpch/region.tbl /hw1

可使用命令查看是否放入

hdfs dfs -ls /hw1

这里写图片描述

测试java程序:
注意java程序中的文件名,和我上传的可能不一致,请自行改正

cd ~/work/hw1
javac HDFSTest.java
java HDFSTest.java

会打印出那个文件的内容,测试完毕。

3.hbase

注意要已经在hdfs中生成hbase文件(见上一步),因为我下面配置文件会如此设置
解压

sudo tar -zxf /home/***/下载/hbase-0.98.24-hadoop2-bin.tar.gz -C /usr/local/java

改变读写权限
注意×××,你的用户名

cd /usr/local/java/ 
sudo chown -R ××× ./hbase-0.98.24-hadoop2

配置

sudo gedit ./conf/hbase-site.xml

复制
注意×××,你的用户名

<configuration>
<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>

<property>
  <name>hbase.rootdir</name>
  <value>hdfs://localhost:9000/hbase</value>
</property>

<property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/××××/work/hbase-zookeeper</value>
</property>
</configuration>

启动hbase
**一定确保hdfs已经启动,注意先开hdfs,其次hbase
关闭时一定先关hbase,再关闭hdfs
每次使用都要记得关闭,否则会有意想不到的错误**

start-hbase.sh

jps 查看,若jps命令出错,可尝试使用haoop version 后在使用jps
这里写图片描述

验证java程序

cd ~/work/hw1
javac HBaseTest.java
java HBaseTest.java

**运行时可能会报log4j错误,是由jar包冲突造成,解决办法如下:
去./hbase-0.98.24-hadoop2/lib 下搜索log4j,把这个jar包剪切到一个新间文件夹,比如笔者放入了orig中**
这里写图片描述
这里写图片描述

程序运行完毕可使用hbase命令查看

hbase shell 
scan "表的名字"
disable "表名” //删除表
drop “表名”  //删除表
exit

这里写图片描述

4.总结

至此,hadoop,与hbase 基础算是搭建完成,在这过程可能会出现各种想不到的错误,大家要学会总结,举一反三,查看错误日志,最直接有效的方法,尝试多操作几遍,感谢浏览。
关于eclipse与hadoop,hbase的搭建,后期会简述一下。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值