开始玩hadoop9--最后步骤(简单安装Hbase 和 zookeeper 的入门)

来源:互联网 发布:linux 启动器 编辑:程序博客网 时间:2024/05/19 18:17

这里还是用之前的配置:hadoop 2.6.0 和 ubuntu 14.04 

补充一个小技巧:查看进程 ps aux | grep xxx

1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A 显示所有程序。 
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。 
4)ps -e 此参数的效果和指定"A"参数相同。 
5)ps e 列出程序时,显示每个程序所使用的环境变量。 
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。 
7)ps -H 显示树状结构,表示程序间的相互关系。 
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。 
9)ps s 采用程序信号的格式显示程序状况。 
10)ps S 列出程序时,包括已中断的子程序资料。 
11)ps -t  指定终端机编号,并列出属于该终端机的程序的状况。 
12)ps u  以用户为主的格式来显示程序状况。 
13)ps x  显示所有程序,不以终端机来区分。
ps是显示当前状态处于running的进程,grep表示在这些里搜索,而ps aux是显示所有进程和其状态。
$ ps aux | grep amoeba
查到amoeba的进程
$ kill -s 9 pid


今天突然出现了一点小状况,我有一台机器vmware 里的 ubuntu server 怎么都连不上了

检查原因尽然是 没有连上网,ifconfig 里也没有对应ip

只有inet 6 address 网上说要重新分配一下地址才好使(sudo dhclient),可是我试过以后并没用

没办法,选择vmware --编辑--虚拟网络编辑器--选中VMnet0 选择恢复默认配置,然后等待一段时间后,

在--桥接到:---realtek PCIe ....--然后点击---应用---确定

这些都要在虚拟机poweroff 的情况下才能有用

重启虚拟机--结果很意外,网是连上了,可是ip 改动了 不是原来的ip ,这真的把我吓到了。

虽然之前有好好配置各个机器的hosts 文件,可是大多数 配置我还是直接填写的ip地址。

这要ip 都变了,那我的改动的工作量就大了去了。。。

其实也在意料之中,因为虚拟机的ip估计也是随机分配的,所以,虽然在同一网段。

被分配到不同ip 的可能性非常大


没办法,硬着头皮找绑定ip的办法。最后答案都指向同一个地方。

还记得之前说改/etc/network/interfaces 这个文件么?

我当时说的是没什么特别重要的情况就别改了,现在作用来了。

(强调一下,这里说的是ubuntu系统,不是centos ,

我知道很多人用的centos ,那里的文件应该叫/etc/sysconfig/XXXX,

它的作用在centos 里就比较大了,因为配置hadoop 的时候网卡和认证也要用,hostname 也会用到)

改成 如下:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).


# The loopback network interface
auto lo
iface lo inet loopback


# The primary network interface--- not iface eth0 inet dhcp

# 注意是inet static 哦 gateway 查一下其他hadoop集群的机器,掩码就看看网段分布就好了
auto eth0
iface eth0 inet static
address 192.168.1.115
gateway 192.168.1.1
netmask 255.255.255.0

查网关的命令:ip route show

default via xxx.xxx.xxx.xxx 这个就是你的网关地址


这样我把虚拟机那两台机器的ip都绑定到对应的115 和116 了

如果仅仅这样更改很可能还是上不了网,这里还要改dns

sudo nano /etc/resolv.conf

添加

nameserver 192.168.1.1
nameserver 220.170.64.68


要让其永久改变,因此,执行:sudo nano /etc/resolvconf/resolv.conf.d/base

添加
nameserver 192.168.1.1

nameserver 220.170.64.68


这下安心很多

重启。


有时候还是会出现连不上的情况,看看--我的电脑--管理--服务---telnet---选择“自动” 而不是“自动(延时启动)”

这样就好了


然后开始正题,安装zookeeper 和 Hbase  我这里选择的都是最新的 stable 的版本

hbase-1.0.1.1 版本 和zookeeper-3.4.6 版本

这两个都是可以从Apache官网指定中国镜像地点下载的


下载好了,然后tar xvf xxx xxxx就可以解压了,我都是直接解压到当前用户目录的

然后是先配置zookeeper ,同样因为是在用户工作目录里工作的文件夹,不能配置到系统的环境变量

但是可以 配置到/etc/bash.bashrc 文件里的环境变量

因为之前配置了hadoop 的环境变量,现在只要在末尾添加

HBASE_HOME=/home/luis/hbase-1.0.1.1
ZOOKEEPER_HOME=/home/luis/zookeeper-3.4.6
PATH=$HADOOP_HOME/bin:$HBASE_HOME/bin:$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

就可以了,三台机子都要配,不能用scp 拷贝,可能前面那么大段的代码有机器独有的配置信息。一台一台的配置就好了

配好了重启


复制zookeeper-3.4.6 文件夹下的 /conf/zoo_sample.cfg 改成 conf/zoo.cfg

命令 cp conf/zoo_sample.cfg conf/zoo.cfg

然后nano zoo.cfg 

修改:

#一个的数据,一个是数据日志

dataDir=/home/luis/zookeeper-3.4.6/var/data
dataLogDir=/home/luis/zookeeper-3.4.6/var/datalog

#这些server.x 数字有用的

server.5=h5:2888:3888
server.1=h1:2888:3888
server.2=h2:2888:3888


然后在zookeeper-3.4.6 文件夹下 创建目录 mkdir -p var/data  和 mkdir -p var/datalog

然后在data 文件夹下 创建一个myid 文件

这里写对应 server 的id

比如前面 h5 号机器,的server.x 的数字是5 这里就写个5

其他机器做对应修改

然后scp 拷贝到其他机器的用户目录上

我这里是给每台机器都装上了zookeeper,其实你也可以不这样


安装hbase的步骤,这里说一下,好像说hadoop 和hbase 要版本对应,我查了一下

hadoop-2.6.0 的对应版本找到hbase 的最新的稳定版就好。

环境变量上一步就已经加了

修改配置文件hbase-env.sh

这个里头把java 环境变量写进去

补充:然后有的博客写到:配置文件hbase-env.sh时候,
要修改:HBASE_MANGES_ZK=false (表示不使用hbase自带的zookeeper)
HBASE_HEAPSIZE=8000
HBASE_LOG_DIR=/home/luis/hbase-1.0.1.1/logs


修改hbase-site.xml

<configuration>
<property>
<name>hbase.rootdir</name>

<!--这里写的是namenode 的地址,一定要用ip表示,然后distributed写成true-->

<value>hdfs://192.168.1.113:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>h5,h1,h2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/luis/zookeeper-3.4.6/var/data</value>
</property>
</configuration>


后面两个属性是关于Zookeeper集群的配置。我的Zookeeper安装在h5,h1和h2上。

修改regionservers:改成如下内容

h1

h2


同样的scp 到其他用户的用户目录:


然后把zookeeper-2.4.6 和 hbase-1.0.1.1 的文件夹权限全部设置成775

sudo -R 775 xxxx


最后一个步骤 同步时钟,这个步骤是很重要的,尤其是你要用到时间戳字段的时候,怎么能忍受时间不一致

用113,就是那个namenode 节点用作我的ntp服务器,但是三台都要装

sudo apt-get install ntp

但是这里又有一个问题,有可能装不上,依赖不完全,sudo apt-get -f install ntp

还有可能连不上us.achieve.ubuntu.com

这个就是天朝的伟大的墙了

修改hosts 文件,哪台装不上修改哪台,加在后面就可以了

91.189.92.152 extras.ubuntu.com
91.189.91.13 security.ubuntu.com
91.189.91.14 us.archive.ubuntu.com

然后就可以装上了

然后设置namenode 节点的


#草稿文件
driftfile /var/lib/ntp/ntp.drift

#ntp server
server 202.112.0.7 prefer


server 127.127.1.0

fudge 127.127.1.0 stratum 5

restrict -4 default kod notrap nomodify nopeer noquery

restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
restrict 192.168.1.113 mask 255.255.255.0 nomodify

其他的我都没改


然后修改 slaves 的/etc/ntp.conf

# Use Ubuntu's ntp server as a fallback.设置成从113 ,namenode同步时间就好啦
#server ntp.ubuntu.com
server 192.168.1.113 prefer
server 127.127.1.0
fudge 127.127.1.0 stratum 10


# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
restrict 192.168.1.113
restrict 192.168.1.115 mask 255.255.255.0 nomodify


其他的我也没改

然后修改namenode 的ntp /etc/crontab

在里头加一行

#连接的是清华的ntp服务器。国家授时中心怎么都连不上,每十五分钟同步一次
*/15 * * * * /usr/sbin/ntpdate 202.112.0.7


在其他的slaves 节点的ntp /etc/crontab 加上

# connect 113 server and  lock-in time during every 5 minutes
*/5 * * * * /usr/sbin/ntpdate 192.168.1.113


然后保存,重启


第一次启动所有集群

1.启动Zookeeper
分别在每个机器上运行命令zkServer.sh start或者在$ZOOKEEPER_HOME/bin目录下运行./zkServer.sh start命令。然后可以通过命令jps来查看Zookeeper启动的进程QuorumPeerMain。 

2、这里我没有实现!!格式化zookeeper 集群(高可用HA)

hdfs zkfc -formatzk

他会根据$HADOOP_HOME/etc/hadoop/core-site.xml文件中ha.zookeeper.quorum的值来进行初始化。

3、启动journalnode进程

在每个节点上启动 hadoop-daemon.sh start journalnode

或者在master节点启动hadoop-daemons.sh start journalnode 但是这种启动方式不会启动master的journalnode

4、格式化namenode

在master节点,hdfs namenode -format

5、启动namenode

hadoop-daemon.sh start namenode

6、这里我也没做!!我只有一台master ,secondnamenode 和namenode是同一台机子,

将刚才格式化的namenode信息同步到备用namenode上

hdfs namenode -bootstrapStandby

7、这一步我也没做,理由同上,在master2上启动namenode

 hadoop-daemon.sh start namenode

8、启动所有datanode

在master 里执行 hadoop-daemons.sh start datanode

9、启动yarn

在master 执行 start-yarn.sh

10、这一步我也没做,也是高可用HA时才会用到,启动ZKFC

11、hadoop 启动成功

12、启动hbase

master 启动 start-hbase.sh

至此,第一次启动全部完成


日后启动:

1、对于高可用(HA):要先启动Zookeeper   zkServer.sh.start(每个节点)

2、启动hadoop: start-dfs.sh start-yarn.sh (master1节点)

3、启动hbase:start-hbase.sh (master1节点)


参考文章网址:http://blog.csdn.net/onepiecehuiyu/article/details/45271493

(我和他配置还是有很大的不同,但是,后一部分的高可用HA 有参考他的)

0 0