(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 [email protected]: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就可以不用输入密码了 |
1. core-site-xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property> <property> <name>io.native.lib.available</name> <value>true</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/root/hadoop/tmp</value> </property> </configuration>
2. hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_31
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.support.append</name> <value>true</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> <property> <name>dfs.datanode.max.xcievers</name> <value>4096</value> </property> </configuration>
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapred.job.tracker</name> <value>master:9001</value> </property> <property> <name>mapred.map.java.opts</name> <value>-Xmx1024m</value> </property> <property> <name>mapred.child.java.opts</name> <value>-Xmx1024m</value> </property> </configuration>
5. slaves
master slave1 slave2
6. yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.address</name> <value>master:8080</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8081</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8082</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce.shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.nodemanager.local-dirs</name> <value>file:/root/hadoop/nmdata/local</value> <description>thelocal directories used by the nodemanager</description> </property> <property> <name>yarn.nodemanager.log-dirs</name> <value>file:/root/hadoop/nmdata/log</value> </property> </configuration>
7. yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_31 export HADOOP_HOME=/root/hadoop/hadoop-2.0.0-cdh4.2.0 export HADOOP_PREFIX=${HADOOP_HOME} export HADOOP_MAPRED_HOME=${HADOOP_HOME} export HADOOP_COMMON_HOME=${HADOOP_HOME} export HADOOP_HDFS_HOME=${HADOOP_HOME} export HADOOP_YARN_HOME=${HADOOP_HOME} 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 export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
将 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
1. hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_31 export HBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode" export HBASE_MANAGES_ZK=false 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 export HBASE_CLASSPATH=/root/hadoop/hadoop-2.0.0-cdh4.2.0/etc/hadoop
2. hbase-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <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</name> <value>master:60000</value> </property> <property> <name>zookeeper.znode.parent</name> <value>/hbase</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave1,slave2</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> </configuration>
3. regionservers
master slave1 slave2
4. zoo.cfg
将刚配置的zookeeper的zoo.cfg拷贝过来
5. hdfs-site.xml
将刚配置的hadoop的hdfs-site.xml文件拷贝过来