debian 系统安装 hadoop 和hbase 环境。

  1. 云栖社区>
  2. 博客>
  3. 正文

debian 系统安装 hadoop 和hbase 环境。

freegolang 2013-03-04 15:54:00 浏览663
展开阅读全文

由于 自己使用的电脑 是debian 系统。所以 也想在自己的电脑上面安装一个 hbase 的环境。

 

笔记本 是64 bit 的但好像不可以,虚拟 64bit的系统。

 

所以干脆 装一个 环境算了。。

 

参考文档:

 

https://ccp.cloudera.com/display/CDHDOC/CDH3+Installation


 

https://ccp.cloudera.com/display/DOC/Documentation

 

1,下载 all.deb 安装包

 

wget http://archive.cloudera.com/one-click-install/squeeze/cdh3-repository_1.0_all.deb

 

sudo dpkg -i cdh3-repository_1.0_all.deb

 

2,增加 一个 source 源

 

sudo vi /etc/apt/sources.list.d/cloudera.list 

添加如下内容:

 

deb http://archive.cloudera.com/debian <RELEASE>-cdh3 contrib
deb-src http://archive.cloudera.com/debian <RELEASE>-cdh3 contrib

 

3,增加源的 key

 

curl -s http://archive.cloudera.com/debian/archive.key | sudo apt-key add -

 

返回 OK 说明添加成功

 

4,安装 hadoop , hbase

 

 sudo apt-get install hadoop-0.20

 

sudo apt-get  install hadoop-hbase

 

5,配置 hadoop ,hbase 

 

sudo apt-get install rsync

 

 

 

使用 cloudera 的hadoop 安装的完成 ,其实 hadoop的目录是在 /usr/lib/hadoop/

修改配置文件:

conf/core-site.xml:

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>

conf/hdfs-site.xml:

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

conf/mapred-site.xml:

<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
  </property>
</configuration>

说明下。 rpm 安装包安装之后 将会创建一个 hdfs的用户。并且将用户的根目录设置在 /usr/lib/hadoop/下。
但是这个目录可以访问但不能创建文件夹。所以要用户root 创建一个 .ssh的文件夹。并将所有着给hdfs。

配置ssh

#root 操作
mkdir /usr/lib/hadoop/.ssh
#修改所有者。
chown hdfs:hdfs /usr/lib/hadoop/.ssh -R

#切换用户
su hdfs

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

#测试
ssh localhost
#如果可以登录说明配置好了。


然后就可以测试是否可以启动。停止了。

在启动前一点要格式化 namenode

hadoop namenode -format


su hdfs

cd /usr/lib/hadoop/bin
#启动
sh start-all.sh
#停止
sh stop-all.sh


然后就可以运行下 官方的测试了。


官方的例子是统计一个文章里面的字符出现的频率。(很经典的例子)

这里直接把Hadoop 目录下的 README.txt 拷贝到文件系统上。

#上传到hadoop的文件系统.
hadoop fs -put /usr/lib/hadoop/README.txt /tmp/input 
#执行example 例子。
hadoop jar hadoop-examples.jar wordcount /tmp/input /output

运行结果如下:





如果没有报错误。就说明都配置对了。并且可以正常启动关闭。


配置 hbase:

首先要修改 配置文件hbase-site.xml。目录在/usr/lib/hbase/conf/。 

vi /usr/lib/hbase/conf/hbase-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9000/hbase</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>


需要修改下 /var/log/hbase/ 这个文件夹的权限。否则在启动的时候会报文件没有创建。

#root 用户修改

chmod 777 /var/log/hbase/

修改hbase-env.sh 文件。在里面设置JAVA_HOME,需要重新设置下。

vi /usr/lib/hbase/conf/hbase-env.sh

java 默认安装 在 /usr/java/default/ 目录下。



 



#使用hdfs 用户启动 hbase。
su hdfs

sh /usr/lib/hbase/bin/start-hbase.sh

正常启动。



 

进入 hbase 命令行。

hbase shell

这个时候可以进入 shell 但是报错:



 

ERROR: org.apache.hadoop.hbase.ZooKeeperConnectionException: HBase is able to connect to
ZooKeeper but the connection closes immediately. This could be a sign that the server has too many
connections (30 is the default).

需要修改 limits.conf

vi /etc/security/limits.conf

在最后添加两行:

hdfs  -       nofile  32768
hbase  -       nofile  32768



 

重启下 hbase 就可以创建表查询表了。。




 

都没有报错。


hbase(main):003:0> create 'test', 'cf'
0 row(s) in 1.2200 seconds
hbase(main):003:0> list 'table'
test
1 row(s) in 0.0550 seconds
hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0560 seconds
hbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0370 seconds

其他的就自己去练习吧。

 

 

网友评论

登录后评论
0/500
评论
freegolang
+ 关注