kinght2008 发表于 2018-10-31 10:24:54

Hadoop+Hbase 安装配置实录

  生产环境:
  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.61master
  192.168.0.62slave1
  192.168.0.63slave2
  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步,完成masterslave1 masterslave2的免密码登录
  这样主节点和从节点之间就可以不用密码直接ssh访问,另外,在启动hadoop时需要master ssh master,

  因此,在master的~/.ssh下,也执行下cat>  4.安装JDK到/usr/local下命名为jdk6
  然后:
  编辑三台机器的/etc/profile,增加如下内容
  export JAVA_HOME=/usr/local/jdk6

  export>  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守护
  # 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 -rhbase-0.20.6 hbase-0.20.6.tar.gz hbase-config root@slave1:/hadoop/
  #scp -rhbase-0.20.6 hbase-0.20.6.tar.gz hbase-config root@slave2:/hadoop/
  在slave1和slave2上,分别重做软链接
  #cd /hadoop
  #ln -shbase-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

页: [1]
查看完整版本: Hadoop+Hbase 安装配置实录