分享

CDH4源码搭建hbase开发环境

pig2 2014-4-6 22:34:42 发表于 安装配置 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 20586
本帖最后由 pig2 于 2014-4-6 23:31 编辑
c​d​h​源​码​搭​建​h​b​a​s​e​开​发​环境



zoo.cfg的作用是什么?

开发环境中zookeeper配置 配置那些内容?
hbase配置需要修改那些内容?
如果配置完成之后mapreduce不工作,有可能是因为端口被其他服务占用,尝试修改端口重启 ?

1. 准备工作

(1) 首先在cloudera的官网上下载CDH4的hadoop-2.0.0-cdh4.2.0、
hbase-0.94.2-cdh4.2.0、zookeeper-3.4.5-cdh4.2.0的tar包

(2) 在安装hbase开发环境之前,先安装好java开发环境,配置好环境变量

(3) 准备三台主机,在用vi 打开/etc/sysconfig/network修改
HOSTNAME=master
其他两台主机分别作为slave1,slave2

(4) 在/etc/hosts中将添加将三台主机的ip和主机名的映射
192.168.10.200 master 192.168.10.201 slave1 192.168.10.202 slave2

(5) 在/etc/rc.d/rc.local中增加一些linux开机启动或关闭的服务
service sshd start启动ssh服务 service iptables stop关闭防火墙

(6) SSH设置
openssh可以实现客户端无密码访问服务端。 操作过程如下:
客户端和服务端系统都是CentOS,用户名都是root,都安装了openssh。 服务器端地址是192.168.10.201,客户端的地址是192.168.10.200  
客户端配置:
用root登陆客户端CentOS,执行命令:  
ssh-keygen -t dsa  
提示Enter passphrase时留空,直接回车。
在/root/.ssh目录下生成了两个文件id_dsa, id_dsa.pub,将其中的 id_dsa.pub通过scp命令复制到服务器端的root目录下,命名为public_key  
scp ~/.ssh/id_dsa.pub root@192.168.10.201:public_key 服务器端配置:
用root登陆服务器端CentOS,将刚才从客户端复制过来的public_key文件的内容附加到~/.ssh/authorized_keys文件后面,顺便删除public_key。  
cat ~/public_key>> ~/.ssh/authorized_keys rm ~/public_key
如果服务器端是新装的系统,可能主目录下没有.ssh这个子目录,登陆一下其他的ssh服务器端,就会自动生成这个子目录和子目录下的文件。 之后从192.168.10.200的系统使用root账户登陆192.168.10.201就可以不用输入密码了

2. Hadoop配置

1. core-site-xml
  1. <configuration>
  2. <property>
  3. <name>fs.default.name</name>
  4. <value>hdfs://master:9000</value>
  5. </property>
  6. <property>
  7. <name>io.native.lib.available</name>
  8. <value>true</value>
  9. </property>
  10. <property>
  11. <name>hadoop.tmp.dir</name>
  12. <value>/root/hadoop/tmp</value>
  13. </property>
  14. </configuration>
复制代码

2. hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_31

3. hdfs-site.xml
  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>3</value>
  5. </property>
  6. <property>
  7. <name>dfs.support.append</name>
  8. <value>true</value>
  9. </property>
  10. <property>
  11. <name>dfs.permissions</name>
  12. <value>false</value>
  13. </property>
  14. <property>
  15. <name>dfs.datanode.max.xcievers</name>
  16. <value>4096</value>
  17. </property>
  18. </configuration>
复制代码

注意:dfs.replication备份数根据实际情况配置

4. mapred-site.xml
  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <property>
  7. <name>mapred.job.tracker</name>
  8. <value>master:9001</value>
  9.   </property>
  10.    <property>
  11. <name>mapred.map.java.opts</name>
  12. <value>-Xmx1024m</value>
  13.   </property>
  14.    <property>
  15.   <name>mapred.child.java.opts</name>
  16.   <value>-Xmx1024m</value>
  17.   </property>
  18. </configuration>
复制代码






5. slaves
master slave1 slave2  

6. yarn-site.xml
  1. <configuration>
  2. <property>
  3. <name>yarn.resourcemanager.address</name>
  4. <value>master:8080</value>
  5. </property>
  6. <property>
  7. <name>yarn.resourcemanager.scheduler.address</name> <value>master:8081</value>
  8. </property>
  9. <name>yarn.resourcemanager.resource-tracker.address</name>
  10. <value>master:8082</value>
  11. </property>
  12. <property>
  13. <name>yarn.nodemanager.aux-services</name>
  14. <value>mapreduce.shuffle</value>
  15. </property>
  16. <property>
  17. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  18. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  19. </property>
  20. <property>
  21. <name>yarn.nodemanager.local-dirs</name>
  22. <value>file:/root/hadoop/nmdata/local</value>
  23. <description>thelocal directories used by the nodemanager</description>
  24. </property>
  25. <property>
  26. <name>yarn.nodemanager.log-dirs</name>
  27. <value>file:/root/hadoop/nmdata/log</value>
  28. </property>
  29. </configuration>
复制代码




注意:如果配置完成之后mapreduce不工作,有可能是因为端口被其他服务占用,尝试修改端口重启

7. yarn-env.sh
  1. export JAVA_HOME=/usr/java/jdk1.6.0_31
  2. export HADOOP_HOME=/root/hadoop/hadoop-2.0.0-cdh4.2.0 export HADOOP_PREFIX=${HADOOP_HOME}
  3. export HADOOP_MAPRED_HOME=${HADOOP_HOME} export HADOOP_COMMON_HOME=${HADOOP_HOME} export HADOOP_HDFS_HOME=${HADOOP_HOME} export HADOOP_YARN_HOME=${HADOOP_HOME}
  4. export PATH=$PATH:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin export JAVA_HOME JAVA_BIN PATH CLASSPATH JAVA_OPTS export HADOOP_LIB=${HADOOP_HOME}/lib
  5. export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop  
复制代码

8. hadoop配置完成,格式化文件系统 ./bin/hdfsnamenode -format 9. 启动hadoop ./sbin/start-all.sh


3. zookeeper配置


将conf目录下的zoo-example.cfg文件重命名为zoo.cfg,修改其中的内容如下 dataDir=/root/hadoop/zookeeper server.1=master:2888:3888   server.2=slave1:2888:3888   server.3=slave2:2888:3888   
dataDir默认在/tmp下,系统重启会导致数据丢失。后面的三行在文件的末尾,每行描述一个节点。然后将配置好的Zookeeper 分发到server.1/2/3 上的/root/hadoop/zookeeper-3.4.5-cdh4.2.0下,并在每一个节点的dataDir,即/root/hadoop/zookeeper下创建一个myid文件,其中包含一个该节点对应的数字,即server.1/2/3 中'.'后面的数字,该数字应该在1-255 之间。在server.1/2/3 上分别启动 Zookeeper: zkServer.sh start   
注意:zookeeper根据需要配置,hbase自带有zk,所以这项可以不配置,只需要将export HBASE_MANAGES_ZK=true就ok了

4. hbase配置


1. hbase-env.sh

  1. export JAVA_HOME=/usr/java/jdk1.6.0_31
  2.   export HBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"   export HBASE_MANAGES_ZK=false
  3.   export HADOOP_HOME=/root/hadoop/hadoop-2.0.0-cdh4.2.0   export HBASE_LOG_DIR=/root/hadoop/hbase-0.94.2-cdh4.2.0/logs
  4.   export HBASE_CLASSPATH=/root/hadoop/hadoop-2.0.0-cdh4.2.0/etc/hadoop
复制代码




2. hbase-site.xml
  1. <configuration> <property>
  2.   <name>fs.defaultFS</name>
  3.   <value>hdfs://master:9000</value>
  4. </property>
  5. <property>
  6.   <name>hbase.rootdir</name>
  7.   <value>hdfs://master:9000/hbase</value>
  8. </property>
  9. <property>
  10. <name>hbase.cluster.distributed</name>
  11. <value>true</value>
  12. </property>
  13. <property>
  14. <name>hbase.master</name>
  15. <value>master:60000</value>
  16. </property>
  17. <property>
  18. <name>zookeeper.znode.parent</name>
  19. <value>/hbase</value>
  20. </property>
  21. <property>
  22. <name>hbase.zookeeper.quorum</name>
  23. <value>master,slave1,slave2</value>
  24. </property> <property>
  25. <name>hbase.zookeeper.property.clientPort</name>
  26. <value>2181</value>
  27. </property>
  28. </configuration>
复制代码


3. regionservers
master slave1 slave2
4. zoo.cfg
将刚配置的zookeeper的zoo.cfg拷贝过来
5. hdfs-site.xml
将刚配置的hadoop的hdfs-site.xml文件拷贝过来





党毅飞

已有(5)人评论

跳转到指定楼层
xuluo008 发表于 2014-4-7 10:52:34
谢谢分享,学习一下!
回复

使用道具 举报

chuyuan_zhou 发表于 2014-12-22 14:16:48
谢谢分享,学习一下!
回复

使用道具 举报

a530491093 发表于 2016-2-15 11:14:14
感谢分享!来学习的。。。。。
回复

使用道具 举报

hebina 发表于 2016-11-22 19:05:49
LoadError: no such file to load -- irb/completion
require at org/jruby/RubyKernel.java:1062
(root) at /opt/install/hbase/hbase-1.2.0-cdh5.9.0/bin/hirb.rb:41

帮帮看下 谢谢!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条