Hadoop+Hbase 安装配置实录
admin
2023-02-08 14:40:04
0

生产环境:

3台机器:master(192.168.0.61),slave1(192.168.0.62),slave2(192.168.0.63)
注意:hostname设置为master/slave1/slave2
操作系统:rhel5.4 x86_64

master做为namenonde,将slave1和slave2做为datanode

1.在master:(在slave1和slave2上操作和以下相同)
vi /etc/hosts
192.168.0.61  master
192.168.0.62  slave1
192.168.0.63  slave2

2.用root操作

3.免密码登录
#ssh-keygen -t rsa #建立ssh目录,敲回车到底 ,这一步需要先在每台机器上执行。
在master上
#scp ~/.ssh/id_rsa.pub root@slave1:/root/.ssh/id_rsa.pub_m 将master上的密钥传到slave1的/home/hadoop下
在slave1上
#cat /root/.ssh/id_rsa.pub_m >> ~/.ssh/authorized_keys
#chmod 644 ~/.ssh/authorized_keys

反复操作第3步,完成master<-->slave1 master<-->slave2的免密码登录
这样主节点和从节点之间就可以不用密码直接ssh访问,另外,在启动hadoop时需要master ssh master,
因此,在master的~/.ssh下,也执行下cat id_rsa.pub >> authorized_keys即可。

4.安装JDK到/usr/local下命名为jdk6
然后:
编辑三台机器的/etc/profile,增加如下内容
export JAVA_HOME=/usr/local/jdk6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export HADOOP_HOME=/hadoop/hadoop
export HBASE_HOME=/hadoop/hbase
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin

#vi /root/.bashrc
增加
export HADOOP_CONF_DIR=/hadoop/hadoop-config
export HBASE_CONF_DIR=/hadoop/hbase-config

5、防火墙
   各机器加入iptables策略:
#iptables -I INPUT -s 192.168.0.0/255.255.255.0 -j ACCPET
#service iptables save

-----------------------------------------
hadoop配置:

1.下载安装
#cd /hadoop
#wget http://labs.renren.com/apache-mirror//hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz
#tar -zxvf hadoop-0.20.2.tar.gz
#ln -s hadoop-0.20.2 hadoop
    由于上述目录中hadoop的配置文件和hadoop的安装目录是放在一起的,这样一旦日后升级hadoop版本的时候所有的配置文件都会被覆盖,因 此将配置文件与安装目录分离,一

种比较好的方法就是建立一个存放配置文件的目录,/hadoop/hadoop-config/,然后将 /hadoop/hadoop/conf/目录中的core-site.xml,slaves,hadoop-env.sh,masters, hdfs-

site.xml,mapred-site.xml,这6个文件拷贝到 /hadoop/hadoop-config/目录中,并指定环境变量$HADOOP_CONF_DIR指向该目录。环境变量在/root/.bashrc 中设定。
#mkdir /hadoop/hadoop-config
#cd  /hadoop/hadoop/conf/
#cp core-site.xml slaves hadoop-env.sh masters hdfs-site.xml mapred-site.xml /hadoop/hadoop-config/


2.修改6个文件
masters:
master

slaves:
slave1
slave2

#切忌不要创建:/hadoop/hadoop/tmp
hadoop-env.sh:
export JAVA_HOME=/usr/local/jdk6
export HADOOP_PID_DIR=/hadoop/hadoop/tmp

core-site.xml:





   fs.default.name
   hdfs://master:54310

#切忌不要创建:/hadoop/hadoop/name
#mkdir /hadoop/hadoop/data
hdfs-site.xml:





dfs.name.dir
/hadoop/hadoop/name/  #hadoop的name目录路径      


dfs.data.dir
/hadoop/hadoop/data/  #hadoop的data目录路径


   dfs.replication
   3      #指定 HDFS 中每个 Block 被复制的次数,起数据冗余备份的作用。在典型的生产系统中,这个数常常设置为3

mapred-site.xml:





   mapred.job.tracker
   hdfs://master:54311/


3、格式化namenode
#cd /hadoop/hadoop/bin
#./hadoop namenode -format
#cd /hadoop
#scp -r ./* root@slave1:/hadoop/
#scp -r ./* root@slave2:/hadoop/
到slave1和slave2上,分别重做软链接
#cd /hadoop
#rm -rf hadoop
#ln -s hadoop-0.20.2 hadoop

4、启动所有hadoop守护进程
# ./start-all.sh
说明:
在bin/下面有很多启动脚本,可以根据自己的需要来启动。
* start-all.sh 启动所有的Hadoop守护。包括namenode, datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的Hadoop
* start-mapred.sh 启动Map/Reduce守护。包括Jobtracker和Tasktrack
* stop-mapred.sh 停止Map/Reduce守护
* start-dfs.sh 启动Hadoop DFS守护.Namenode和Datanode
* stop-dfs.sh 停止DFS守护
[root@master bin]# jps
6813 NameNode
7278 Jps
7164 JobTracker
7047 SecondaryNameNode
出现4个这样的进程,且datanode没有error,同时访问ui正常才算成功。
ui:http://masterip:50070  --web UI for HDFS name node(s)
http://masterip:50030  --web UI for MapReduce job tracker(s)
http://slaveip:50060    --web UI for task tracker(s)

5、hdfs简单测试
#cd /hadoop/hadoop/bin
#./hadoop dfs -mkdir testdir
#./hadoop dfs -put /root/install.log testdir/install.log-dfs
将/root/install.log 存储到hdfs中的testdir中,重命名为install.log-dfs
#./hadoop dfs -ls
#./hadoop dfs -ls testdir


----------------------------------
1、hbase安装部署
#cd /hadoop
#wget http://apache.etoak.com//hbase/hbase-0.20.6/hbase-0.20.6.tar.gz
#tar -zxvf hbase-0.20.6.tar.gz
#ln -s hbase-0.20.6 hbase
#mkdir hbase-config
#cd /hadoop/hbase/conf/
#cp hbase-env.sh hbase-site.xml regionservers /hadoop/hbase-config/

2、配置文件修改
#mkdir /hadoop/hbase/tmp
#vim /hadoop/hbase-config/hbase-env.sh
增加
export JAVA_HOME=/usr/local/jdk6
export HBASE_MANAGES_ZK=true
export HBASE_PID_DIR=/hadoop/hbase/tmp

#vim hbase-site.xml




    hbase.rootdir
    hdfs://master:54310/hbase 注意主机名和端口号要与hadoop的dfs name的对应


    hbase.cluster.distributed
    true


    hbase.zookeeper.quorum
    master


    zookeeper.session.timeout
    60000


    hbase.zookeeper.property.clientPort
    2222

配置hbase服务器名称
#vi regionservers
slave1
slave2

3、复制hbase文件
在master上
#cd /hadoop
#scp -r  hbase-0.20.6 hbase-0.20.6.tar.gz hbase-config root@slave1:/hadoop/
#scp -r  hbase-0.20.6 hbase-0.20.6.tar.gz hbase-config root@slave2:/hadoop/
在slave1和slave2上,分别重做软链接
#cd /hadoop
#ln -s  hbase-0.20.6 hbase

4、测试
在master上启动
#cd /hadoop/hbase/bin
#./hbase shell
HBase Shell; enter 'help' for list of supported commands.
Version: 0.20.6, r965666, Mon Jul 19 16:54:48 PDT 2010
hbase(main):001:0> create 'test','data'
0 row(s) in 1.1920 seconds
hbase(main):002:0> list
test                                                                                                          
1 row(s) in 0.0200 seconds
hbase(main):003:0> quit


----------------------------------------------
总结:
在安装hadoop-0.21.0+hbase-0.20.6过程中,出现:org.apache.hadoop.hbase.masternotrunningexception异常。
使用hadoop-0.20.2+hbase-0.20.6问题解决。

51cto.com/a/luyoujiaohuan/index.html
http://www.net527.com
linux系统思科论坛Cisco


相关内容

热门资讯

德国总理:美国正在被伊朗羞辱 德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...
理响中国|“长”歌以行,风云激... 光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...
白宫:特朗普及其国安团队开会讨... 新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...
人民日报刊文:日本放开杀伤性武... 日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...
医疗保障法草案二审:明确生育保... 满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...
天津一景区发生自转旋翼机事故1... 澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...
卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...