Hbase分布式详细安装步骤

时间:2024.4.13

Hbase分布式详细安装步骤

Hbase(版本:0.20.6)安装

注:自0.20.5以后版本集成了zookeeper,可匹配Hadoop0.20.2 准备工作:

二台机器上是这样的:都有一个coole的帐户,主目录是/home/coole 两台机器(内存应在512以上,否则可能会出现计算极度缓慢的情况): 一台机器名:master IP:211.87.239.181

一台机器名:slave IP:211.87.239.182

每台都建coole用户

四、配置Hbase

coole用户登录

1、下载/

下载hbase-0.20.6.tar.gz

2、coole用户解压hbase-0.20.6.tar.gz最终目录结构为/home/coole/hbase-0.20.6 解压命令:$tar zxvf hbase-0.20.6.tar.gz

3、配置/home/coole/hbase-0.20.6/conf下文件hbase-env.sh

用gedit打开hbase-env.sh修改

文件未尾加:

# The java implementation to use. Required.

export JAVA_HOME=/usr/java/jdk1.6.0_20

4、配置/home/coole/hbase-0.20.6/conf下文件hbase-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

<property>

<name>hbase.rootdir</name>

<value>hdfs://master:9000/hbase</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<property>

<name>hbase.master.port</name>

<value>60000</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>slave</value>

</property>

</configuration>

hbase.rootdir设置hbase在hdfs上的目录,主机名为hdfs的namenode节点所在的主机 hbase.cluster.distributed设置为true,表明是完全分布式的hbase集群

hbase.master设置hbase的master主机名和端口

hbase.zookeeper.quorum设置zookeeper的主机,官方推荐设置为3,5,7比较好,奇数。

5、配置/home/coole/hbase-0.20.6/conf下文件regionservers

Slave

6、设置环境变量,用gedit打开/etc/profile文件在文件未尾添加:

export HBASE_HOME=/home/coole/ hbase-0.20.6

export PATH=$PATH:$HBASE_HOME/bin

7、 在完成以上修改之后,把master上的hbase-0.20.6原样复制到slave上,保证目录结构一致,可使用如下命令:

scp –r /home/coole/ hbase-0.20.6 coole@slave:/home/coole

8、启动Hbase

start-hbase.sh

stop-hbase.sh

http://10.10.71.1:60010/master.jsp

http://10.10.71.1:60030/regionserver.jsp

http://10.10.71.1:60010/zk.jsp

使用jdk小工具jps,提供的一个显示当前所有java进程pid的命令。jps存放在JAVA_HOME/bin/jps,使用时为了方便请将JAVA_HOME/bin/加入到Path。笔者没有加入path故需到JAVA_HOME下使用此命令。

[coole@master coole]$ cd $JAVA_HOME

[coole@master jdk1.6.0_20]$ bin/jps

[coole@slave jdk1.6.0_20]$ bin/jps

1、安装hbase 0.20.5版本自带了zookeeper-3.2.2,所以不需要单独安装zookeeper。

2、hbase默认通过zookeeper管理,配置项在/jz/hbase-0.20.5/conf/hbase-env.sh文件中: # Tell HBase whether it should manage it's own instance of Zookeeper or not.

# export HBASE_MANAGES_ZK=true如果需要采用自带安装的zookeeper,可以将注释取消,把true修改为false。否则启动hbase的时候将会提示地址被占用。不过不影响hbase正常使用。

3、通过shell控制台想hbase插入中文数据将会报错,这是由于hbase中只是存放字节,采用程序将汉字改为字节录入即可。

4、permission denied的解决方法

如果想让bin下的所有文件都可执行 则 chmod a+x bin/*


第二篇:Hadoop分布式详细安装步骤


Hadoop分布式详细安装步骤

版本:0.20.2

准备工作:

由于Hadoop要求所有主机上hadoop的部署目录结构要相同,并且都有一个相同的用户名的帐户。

二台机器上是这样的:都有一个coole的帐户,主目录是/home/coole

两台机器(内存应在512以上,否则可能会出现计算极度缓慢的情况):

一台机器名:master IP:211.87.239.181

一台机器名:slave IP:211.87.239.182

每台都建coole用户

如果是ubuntu,为了便于用coole帐号修改系统设置和访问系统文件,推荐把coole也设为 sudoers(有 root 权限的用户),具体做法是用已有的 sudoer登录系统,执行

sudo visudo –f /etc/sudoers, 并在此文件中添加以下一行:

mapred ALL=(ALL) ALL

一、更改主机名:

1、修改/etc/sysconfig/network

NETWORKING=yes

HOSTNAME=yourname (在这修改hostname,把yourname换成你想用的名字) NISDOMAIN=eng-

修改后机器211.87.239.181中/etc/sysconfig/network文件内容为:

NETWORKING=yes

HOSTNAME=master

修改后机器211.87.239.182中/etc/sysconfig/network文件内容为:

NETWORKING=yes

HOSTNAME=slave

2、最后在终端下执行:

# hostname ***** (*****为修改后的hostname,即你想用的名字)

例如

#hostname master

特别提示:各处修改的名字要保持一致,否则会出现问题。

3、修改每台机器的/etc/hosts,保证每台机器间都可以通过机器名解析

配置etc/hosts文件,以 root 身份打开/etc/hosts文件。Master/slave做同样修改。内容如下(格式为:IP 主机名)(注意把127.0.0.1用#注释掉,不注释也行):

# Do not remove the following line, or various programs

# that require network functionality will fail.

#127.0.0.1 localhost.localdomain localhost

211.87.239.181 master

211.87.239.182 slave

二、实现无密码登录的SSH

准备工作:

由于 Hadoop 需要通过 ssh 服务在各个节点之间登录并运行服务,因此必须确保安装 Hadoop 的各个节点之间的网络畅通,网络畅通的标准是每台机器的主机名和IP 地址能够被所有机器正确解析(包括它自己) 。一个简单的测试方法是 PING 主机名。 例如:ping slave

如果 ping 不通,则需要更新主机上的主机名文件。具体做法是,以 root 身份打开/etc/hosts 文件(见步骤1.3)

ssh必须安装,且每次系统启动时 sshd 服务也必须自动启动。Ubuntu 用户可以用以下命令自动下载并安装:

$ sudo apt-get install ssh

$ sudo apt-get install rsync

其他Linux版本的用户可以到/portable.html下载openssh并按 照相关说明安装;

1、coole用户登录master机器。

$执行:ssh-keygen -t rsa 一路回车(当提示要为密钥输入 passphrase时回车采用空密码)将在home/coole/.ssh下生成密钥id_rsa和公钥id_rsa.pub

id-rsa.pub可能内容:

ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAIEAsCdZkkr4At9szhPIyGcwM/KfgITUZbA+PokP+zHULI+qYRPdjLXuqMEH/LFd9EjjsitBLuWHCVxX9SC+8ToY5/PFUjB1ZgnOopb5SS3QFJ84pgFXP/HR+9jWUl3LTOTGF5uCWLZfusRP8rV3wG88vpltAjBaUKhK+6bB4npjagc= coole@master

2、把公钥id_rsa.pub内容拷贝到authorized下

$cat /home/coole/.ssh/id_rsa.pub>>/home/coole/.ssh/authorized_keys

3、把authorized_keys复制到slave机器的/home/coole/.ssh文件夹下(先建好.ssh文件夹) $scp authorized_keys coole@211.87.239.182:/home/hadoop/.ssh

说明:步骤2、3把公钥拷到所有节点的~/.ssh/authorized_keys这个文件中(包括自己本 身,保证ssh登录自己时也不需要密码),如果该文件已经存在则追加到这个文件中。 authorized_keys可能内容:

ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAIEAsCdZkkr4At9szhPIyGcwM/KfgITUZbA+PokP+zHULI+qYRPdjLXuqMEH/LFd9EjjsitBLuWHCVxX9SC+8ToY5/PFUjB1ZgnOopb5SS3QFJ84pgFXP/HR+9jWUl3LTOTGF5uCWLZfusRP8rV3wG88vpltAjBaUKhK+6bB4npjagc= coole@master ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAIEA1SU4S5ltdWBySgJMi1sxh1VX1a8KyFvzfxUwgsEX21aOvpO/S2ub8nOuN0he04llO1AbBE494JCR350fXYcq3G58P2JAZR1VwY0bFbnWBkvWeym+WNr+dM948x3h+T3xYZ/YFW+SqB31h4ClRfDMhgo/f0CA8MTOePRCM9witbc= coole@slave

4、设置文件夹权限

$chmod 750 hadoop

$chmod 750 .ssh

$chmod 644 authorized_keys (只有所有者对 authorized_keys 有读写权限,其他人不允许有写权限)

5、验证

如果配置正确,输出如下信息:

[root@master root]# ssh slave

The authenticity of host 'slave (211.87.239.182)' can't be established.

RSA key fingerprint is 01:f1:de:28:87:9f:60:3e:8a:cd:7d:f9:38:63:14:c8.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'slave,211.87.239.182' (RSA) to the list of known hosts.

root@slave's password:

Last login: Thu Nov 25 10:36:02 2010

[root@slave root]#

敲入 yes 并回车即可。此后在从 node1 向 node2 发起 ssh 连接时将不再需要输 入任何信息。

补充:当然在slave机器上也可以执行同样的内容,则slave就可以无密码访问msater了。

三、安装JDK

root用户登陆(其它用户登录似乎也行)

1.首先下载最新版jdk1.6, 名称为 jdk-6u2-linux-i586-rpm.bin

2.给所有的用户添加可执行的权限 chmod a+x jdk-6u2-linux-i586-rpm.bin

3./jdk-6u2-linux-i586-rpm.bin会生成文件jdk-6u2-linux-i586.rpm

4、安装程序 rpm -ivh jdk-6u2-linux-i586.rpm

5、设置环境变量,用gedit打开/etc/profile文件在文件未尾添加:

# set java and hadoop environment

export JAVA_HOME=/usr/java/jdk1.6.0_20

export JRE_HOME=/usr/java/jdk1.6.0_20/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH

export HADOOP_HOME=/home/coole/hadoop-0.20.2

export PATH=$PATH:$HADOOP_HOME/bin

6、验证:#echo $JAVA_HOME

#echo $CLASSPATH

#echo $PATH

四、配置Hadoop

coole用户登录

1、下载/

点页面中的common进入/common/

点Download进入/common/releases.html

再点Download进入/common/releases.html#Download

再点Download a release now进入/dyn/closer.cgi/hadoop/core/ 点/hadoop/core/ 进入/hadoop/core/ 点hadoop-0.20.2/下载hadoop-0.20.2.tar.gz

2、coole用户解压hadoop-0.20.2.tar.gz最终目录结构为/home/coole/hadoop-0.20.2 解压命令:$tar zxvf hadoop-0.13.0.tar.gz

也可以创建一个链接:$ln -s hadoop0.20.2 hadoop

3、配置home/coole/hadoop-0.20.2/conf下文件hadoop-env.sh

用gedit打开hadoop-env.sh修改

# The java implementation to use. Required.

# export JAVA_HOME=/usr/lib/j2sdk1.5-sun

# The java implementation to use. Required.

export JAVA_HOME=/usr/java/jdk1.6.0_2

4、配置home/coole/hadoop-0.20.2/conf下文件core-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<!-- 设置本机的namenode的端口号和临时文件的目录

fs.default.name是NameNode的URI。hdfs://主机名:端口/

根目录 hdfs://master:9000/

-->

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://master:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/coole/tmp/</value>

</property>

</configuration>

5、配置home/coole/hadoop-0.20.2/conf下文件hdfs-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<!-- dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。 dfs.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。 当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。

dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。 -->

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

<description>副本个数,不配置默认是3,应小于datanode机器数量</description> </property>

<property>

<name>dfs.name.dir</name>

<value>/home/coole/name/</value>

<description>namenode上存储hdfs名字空间元数据 </description>

</property>

<property>

<name>dfs.data.dir</name>

<value>/home/coole/data/</value>

<description>datanode上数据块的物理存储位置</description>

</property>

</configuration>

6、配置home/coole/hadoop-0.20.2/conf下文件mapred-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<!-- mapred.job.tracker是JobTracker的主机(或者IP)和端口。主机:端口。 -->

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>hdfs://master:9001/</value>

</property>

</configuration>

7、配置home/coole/hadoop-0.20.2/conf下文件masters,内容为master主机名master

8、配置home/coole/hadoop-0.20.2/conf下文件slaves,内容为slave主机名,本例只有一台。slave

9、 在完成以上修改之后,把master上的Hadoop-0.20.2原样复制到slave上,保证目录结构一致,可使用如下命令:

scp –r /home/coole/hadoop-0.20.2 coole@slave:/home/coole

10、hadoop namenode –format

Hadoop的web方式查看,浏览器内打开:http://msater:50070

Hadoop查看工作情况,浏览器内打开:http://msater:50030

使用jdk小工具jps,提供的一个显示当前所有java进程pid的命令。jps存放在JAVA_HOME/bin/jps,使用时为了方便请将JAVA_HOME/bin/加入到Path。笔者没有加入path故需到JAVA_HOME下使用此命令。

[coole@master coole]$ cd $JAVA_HOME

[coole@master jdk1.6.0_20]$ bin/jps

3285 SecondaryNameNode

3167 NameNode

3415 Jps

3349 JobTracker

[coole@slave jdk1.6.0_20]$ bin/jps

7636 DataNode

7962 Jps 7749 TaskTracker

其它技巧

也可以创建链接$ln -s hadoop0.20.2 hadoop

按照以上步骤完成设置之后,所有的配置文件都在/hadoop/conf/目录中,所有的可执 行程序都在/hadoop/bin 目录中,但是 hadoop 的配置文件和 hadoop 的安装目录是放 在一起的,这样一旦日后升级,所有的配置文件都会被覆盖,因此建议将配置文件 与安装目录分离,一种比较好的方法就是建立一个存放配置文件的目录,例如

/home/coole/HadoopInstall/hadoop-config/ ,然后将 /hadoop/conf/ 目录中的

hadoop_site.xml,masters,slaves,hadoop_env.sh 四个文件拷贝到 hadoop-config/目 录中;

设置环境变量$HADOOP_CONF_DIR 指向存放配置文件的目录,为保证用户每次登 录到系统中都自动设置此环境变量,需要在/home/mapred/.bashrc 和/etc/profile 两个 文件中都添加一行命令:

export HADOOP_CONF_DIR=/home/mapred/hadoopinstall/hadoop_config/

这种配置方法使得 hadoop 的配置文件与安装目录分离,并通过设定一个链接指向当 前使用的 Hadoop 版本,大大降低了人工部署和维护 Hadoop 的复杂度和工作量;

如果要新加入节点的话,还要修改其它所有机器的/ets/hosts和.ssh/authorized_keys,加入对新节点的识别。

追加操作(视情况而定):

对 sshd 服务进行 配 置,去 除 密码验 证 ,方法 是 修改每 台 机器的

/etc/ssh/sshd_config 文件,把对应的项设置成如下所示的形式:

#去除密码认证

PasswordAuthentication no

AuthorizedKeysFile .ssh/authorized_keys 重启 sshd 服务:

sudo /etc/init.d/ssh restart

更多相关推荐:
英国论文Essay参考文献知识辅导—优越论文

英国论文Essay参考文献知识辅导—优越论文在每次辅导过后,英国优越论文的老师都会总结学生们的问题,本次总结中,优越论文老师发现有的学生在写作论文时很不注重参考文献,总是觉得没必要。很多学生在写完论文之后就觉得…

英国论文Essay写作注意事项指导——留学论文宝

英国论文Essay写作注意事项指导——留学论文宝在英国留学的同学可都是知道的,国外论文写作可不像国内的大学这么松松垮垮,国外的管理是非常严格的,在学术上导师可是绝对追求质量的,因此不仅在选题上有价值,资料数据上…

WM-会计品质-ESSAY-范文

wordsunny.com|顶尖的留学文书写作机构|DIY留学Whatqualitiesdoyouhavethatwillmakeyouagoodaccountant?Nowadaystheinternatio…

英国essay范文

要写出一篇漂亮的命题小essay可不是那么容易内容技巧以及格式都不可小视尽量做到全面和细节如果哪一点出了错误录取官很容易认为该学生大意不注重细节学生的形象也许就会打折扣了一些学生的小文章没有通过有共同的地方也有...

essay范文

Essay由introductionmainbodyconclusionreference四部分组成下面以这篇文章为例教你如何写作一篇符合格式的essay全文统一用timesnewroman字体小四15倍行距文...

美国高中申请essay范文

美国高中申请essay范文Essay在国外被称为话题作文或论文也可以看作是说明文在申请高中时都要写Essay每年一到招生季美国学校就会收到大量申请如何让校方对你留下深刻印象如何让你的申请在激烈竞争中脱颖而出除了...

分享一篇申请哈佛大学成功的留学文书(Essay)范文

分享一篇申请哈佛大学成功的留学文书Essay范文Sameer在美国的底特律长大高中时他的随着家人移居加拿大Sameer有色盲和音盲这两个题目他在他的申请短文时解释为什么对于他来说他在烹饪的创造表现能力是有限的他...

How to write essay

HowtowriteessayManyfriendsofmineaskmeabouttherightwayofwritinganessayTherearecertainstepsonemustfollowtomakeagoodes...

英语记叙文--Narrative essay

NarrativeessayIfyouaskmetosharemybestexperienceduringmyuniversityIwillfirsttellyouthisexperiencethatIactedasamanage...

申请国外大学的优秀essay

美国留学部分大学会要求学生写Essay尤其是名校几乎是都会有所要求其实这也是一个有力的展现自己的途径所以如果要申请名词靠前的学校还是多多练习一下Essay文章的写作Sameer在美国的底特律长大高中时他的随着家...

Persuasive Essay 英语专业写作 原创范文(议论文)

Kimi胡劼No0210650123010PersuasiveEssayRevisedLifeinCitiesisofMoreQualityinChinaInrecentyearspeoplehavepaidc...

Process Essay

AistodescribehowsomethingisdonehowsomethingoperatesknownasaProcessThefirstthingtodowhenwritingaProcessEssayis1deter...

essay(40篇)