- 最近公司搭建hadoop+hbase+zookeeper集群,期间遇到了许多问题,这里和大家分享一下安装的一些经验,目的在于大家在部署hadoop集群环境中少走一些弯路:
- 由于刚开始的时候我用虚拟机安装,安装版本是hadoop0.20.2+hbase0.90.3+zookeeper3.3.3版本,在测试hbase集群的时候hmaster不能正常启动或者是启动后进程自杀(在网上找到的答案应该是虚拟机的内存小,不支持0.90.x以后的hbase版本启动hmaster),最后hbase换成0.20.6或者是0.89.X版本的测试没有问题;
- hadoop的下载地址http://archive.apache.org/dist/hadoop/common/
- hbase的下载地址:http://archive.apache.org/dist/hbase/
- zookeeper的下载地址:http://archive.apache.org/dist/hadoop/zookeeper/
- 1、 我的主机配置如下:(添加到/etc/hosts文件里面)
- 192.168.0.211 master (用于集群主机提供hmaster namenode jobtasker服务 )
- 192.168.0.212 s1 (用于集群丛机提供regionsrever datanode tasktacuter服务)
- 192.168.0.213 s2
- 2、安装jdk1.6.2.X
- 3、添加java环境变量(/etc/profile),后执行source /etc/profile ,使环境变量立即生效
- export JAVA_HOME=/usr/java/jdk1.6.0_26/
- export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
- export PATH=$JAVA_HOME/bin:$PATH:$CATALINA_HOME/bin
- export HADOOP_HOME=/home/hadoop/hadoop
- export HBASE_HOME=/home/hadoop/hbase
- PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin
- 4、在三台电脑上添加hadoop用户
- useradd hadoop
- 5、在/home/hadoop/.bashrc添加变量
- (将hadoop hbase的配置文件放到hadoop安装包根目录文件下,目的在于以后升级hadoop和hbase的时候不用重新导入配置文件)
- export HADOOP_CONF_DIR=/home/hadoop/hadoop-config
- export HBASE_CONF_DIR=/home/hadoop/hbase-config
- 6、将hadoop hbase zookepper的安装包解压到/home/hadoop/下,并重命名为hadoop hbase zookepper,在home/hadoop/下建立hadoop-config和hbase-config文件夹,并且将home/hadoop/hadoop/conf下的masters、slaves、core-site、mapred-sit、hdfs-site、hadoop-env拷贝到此文件夹,将home/hadoop/hbase/conf下的hbase-site和hbase-env.sh拷贝到次文件夹。
- 7、修改masters、slaves文件:
- 分别为 master 和s1与s2
- 8、修改hadoop-env.sh的变量:
- export JAVA_HOME=/usr/java/jdk1.6.0_26/
- export HADOOP_PID_DIR=/home/hadoop/hadoop/tmp
- 9、修改core-site.xml
- <configuration>
- <property>
- <name>fs.default.name</name>
- <value>hdfs://master:9000</value>
- </property>
- </configuration>
- 修改mapred-site.xml
- <configuration>
- <property>
- <name>mapred.job.tracker</name>
- <value>hdfs://master:9001/</value>
- </property>
- </configuration>
- 修改hdfs-site.xml(name和data文件夹不要手动建立)
- <configuration>
- <property>
- <name>dfs.name.dir</name>
- <value>/home/hadoop/hadoop/name</value>
- </property>
- <property>
- <name>dfs.data.dir</name>
- <value>/home/hadoop/hadoop/data/</value>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>3</value>
- </property>
- 10、设置master, s1, s2 机几台器之间无密码访问:
- (网上有许多文章,这里就不写了 )
- 11、scp -r /home/hadoop/hadoop s1:/home/hadoop
- scp -r /home/hadoop/hadoop s2:/home/hadoop
- 12、切换到/home/hadoop/hadoop目录下
- 执行bin/hadoop namenode -format(格式化master主机生成name data tmp等文件夹)
- 13、启动namenode
- 执行 bin/start-dfs.sh
- 使用jps命令查看nomenode、secondnamenode是否正常启动:
- ie里面输入http://master:50070 查看namenode的相关配置信息、运行状态和日志文件
- 14、启动mapred
- 执行 bin/start-mapred.sh
- 使用jps命令查看nomenode、secondnamenode是否正常启动:
- ie里面输入http://master:50030 查看jobtasker的相关配置信息、运行状态和日志文件
- hbase+zookeeper集群搭建:
- 1、将/home/hadoop/hadoop/conf/目录下的hbase-site.xml、regionserver和hbase-env.sh拷贝到/home/hadoop/hbase-config/目录下;
- 编辑hbase-site.xml配置文件,如下:
- <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</value>
- </property>
- <property>
- <name>hbase.zookeeper.quorum</name>
- <value>s1,s2</value>
- </property>
- <property>
- <name>zookeeper.session.timeout</name>
- <value>60000000</value>
- </property>
- <property>
- <name>hbase.zookeeper.property.clientport</name>
- <value>2222</value>
- </property>
- 2、编辑regionserver文件
- S1
- S2
- 3、编辑hbase-env.xml文件
- export JAVA_HOME=/usr/java/jdk1.6.0_26/
- export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
- export PATH=$JAVA_HOME/bin:$PATH:$CATALINA_HOME/bin
- export HADOOP_HOME=/home/hadoop/hadoop
- export HBASE_HOME=/home/hadoop/hbase
- export HBASE_MANAGES_ZK=true
- export PATH=$PATH:/home/hadoop/hbase/bin
- 4、scp -r /home/hadoop/hbase s1:/home/hadoop
- scp -r /home/hadoop/hbase s2:/home/hadoop
- 5、进入/home/hadoop/zookeeper/conf/中
- (1)cp zoo_sample.cfg zoo.cfg
- (2)vim zoo.cfg,如下:
- # The number of milliseconds of each tick
- tickTime=2000
- # The number of ticks that the initial
- # synchronization phase can take
- initLimit=10
- # The number of ticks that can pass between
- # sending a request and getting an acknowledgement
- syncLimit=5
- # the directory where the snapshot is stored.
- dataDir=/home/hadoop/zookeeper/data
- # the port at which the clients will connect
- clientPort=2181
- server.1=s1:2888:3888
- server.2=s2:2888:3888
- (3)touch myid
- 编辑:1(此序号设置和zoo.cfg里面的server设置要对应)
- scp -r /home/hadoop/zookeeper s1:/home/hadoop
- scp -r /home/hadoop/zookeeper s2:/home/hadoop
- (4)在所有的节点执行chown -R hadoop.hadoop /home/hadoop
- 启动hbase集群:
- (1)/home/hadoop/hbase/bin/start-base.sh
- (2)执行jps显示Hmaster是否启动
- (3)执行bin/hbase shell
- (4)>create 't1' t2'' 't3'(测试利用hmaster插入数据)
- > list (显示已经插入的数据)
- >t1+t2+t3
- 输入:http://master:60010
hadoop+hbase+zookeeper集群安装方法
最新推荐文章于 2022-10-12 12:10:21 发布