`

HBase0.94-Hadoop1升级至HBase1.0-Hadoop2.6

阅读更多

1.编译hadoop2
编译的开发环境安装
必要的有JDK,svn,cmake,ncurses,openssl,gcc,maven,protobuf
1. 

#yum install svn
#yum install autoconfautomake libtool cmake
#yum install openssl-devel
#yum install ncurses-devel
#yum install gcc*

 
2.安装maven
下载并解压maven:http://maven.apache.org/download.cgi

#mvapache-maven-3.1.1 /usr/local

将/usr/local/apache-maven-3.1.1/bin加载到环境变量中
3.安装protobuf
从https://code.google.com/p/protobuf/downloads/list
  中下载protobuf-2.5.0.tar.gz,解压安装包,进入protobuf根目录,执行下面命令:
 

#.configure
#make
#make check
#make install
#protoc --version
libprotoc 2.5.0

下载hadoop2源码并安装
直接从apache官网上下载最新的稳定版,此时为2.6。进入hadoop的根目录,执行下面的命令:

# mvn package -Pdist,native -DskipTests -Dtar

 

 

 

2编译hbase0.94—Hadoop2版本
环境
编译环境(JDK、Maven)
版本
hbase0.94.26,hadoop2.6.0,jdk1.7
将下载的hbase0.94.26的源码解压,修改pom.xml
将hadoop-2.0的profile里面的version修改为2.6.0
<hadoop.version>2.6.0</hadoop.version>
将protobuf的version修改为2.5.0
<protobuf.version>2.5.0</protobuf.version>
编译
命令:(指明使用hadoop2编译其中hadoop2的版本由上一条中指定为2.6.0)

# mvn -e -Dmaven.test.skip.exec=true -Dhadoop.profile=2.0 package

 

 

 

3Hadoop1升级到hadoop2
修改配置升级HDFS(本环境直接采用的硬盘镜像备份,故未涉及备份部分)
1. 修改环境变量指向新的HADOOP_HOME
2. 修改配置为hadoop1原来的配置
3. 再进行备份之后使用hadoop2的环境执行(配置文件仍使用hadoop1的配置文件):

hadoop-daemon.sh start namenode –upgrade

4. namenode升级完成后,将datanode启动,datanode会自动升级到与namenode相同版本执行:

hadoop-daemons.sh start datanode

确保每个datanode都启动完毕
5. 关闭集群,修改为hadoop2的HA配置
6. 启动所有journalnode,并初始化数据,执行:

hadoop-daemons.sh start journalnode
hdfs namenode –initializeSharedEdits

7. 启动namenode以及datanode(此处只需启动一个namenode原hadoop1的namenode)
在另一个namenode下(node2)执行:

hdfs namenode –bootstrapStandby

8. 格式化ZK ,在node1上面执行:

hdfs zkfc –formatZK

9. 重新启动hdfs(先关闭所有相关进程,然后start-dfs)
10. 启动zookeeper以及DFSZKFailoverController,执行:

hadoop-daemon.sh start zkfc

11. 定妥升级,在active namenode上面执行:

hadoop dfsadmin –finalizeUpgrade

配置文件
1. 配置core-site.xml 文件

<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/${user.name}-hadoop</value>
</property>

2. 配置mapred-site.xml 文件

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

 
3. 配置hdfs-site.xml文件
各项配置都需注意检查,并明确其具体意义

<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>node1,node2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.node1</name>
<value>node1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.node2</name>
<value>node2:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.node1</name>
<value>node1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.node2</name>
<value>node2:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node1:8485;node2:8485;node3:8485/mycluster</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled.mycluster</name>
<value>true</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>node4:2181,node5:2181,node6:2181</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFail
overProxyProvider</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/hadoop/hadoop-2.4.1/tmp/journal</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<name>dfs.datanode.max.xcievers</name>
<value>8192</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/mnt/hadoopdata/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/mnt/hadoopdata/data</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>

 
4. 配置yarn-site.xml

<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.resourcemanager.hostname</name>
<value>node1</value>
</property>

 
4HBase升级
HBase0.94升级到0.96
1. 编译hbase0.96.2-hadoop2.6.0,修改pom.xml中hadoop2的版本然后执行:

mvn -e -Dmaven.test.skip.exec=true -Dhadoop.profile=2.0 package -Dtar -DskipTests assembly:single -Prelease -Drequire.snappy

生成的hbase-0.96.2-bin.tar.gz位于hbase-assembly/target中。
2. 修改$NEW_HBASE_HOME中的配置执行升级,只需修改hbase-site.xml

<property>
<name>hbase.rootdir</name>
<value>hdfs://mycluster/hbase</value>
</property>

配置hdfs-site.xml的软链接

ln $HADOOP_HOME/etc/hadoop/hdfs-site.xml hdfs-site.xml

3. 执行升级:

$NEW_HBASE_HOME/bin/hbase upgrade –check
$NEW_HBASE_HOME/bin/hbase upgrade –execute

查看日志确保regionserver中数据升级完毕,但是start-hbase.sh的时候master启动不了,可能是不支持hadoop2.6。(直接没管继续升级)
HBase0.96升级到0.98
1. 编译hbase0.98.11-hadoop2.6.0, 修改pom.xml中hadoop2的版本然后依次执行:

chmod +x $HBASE0.98_SRC/dev-support/*.sh
$HBASE0.98_SRC /dev-support/generate-hadoopX-poms.sh 0.98.11 0.98.11-hadoop2
MAVEN_OPTS="-Xmx3g" mvn -f pom.xml.hadoop2 clean install -DskipTests –Prelease
MAVEN_OPTS="-Xmx3g" mvn -f pom.xml.hadoop2 install -DskipTests site assembly:single –Prelease -DcompileSource=1.7

2. 编译hbase0.98.11时如果按照上述步骤执行可能会编译报错:
提示找不到hbase/checkstyle.xml
此时只需将hbase-checkstyle/src/main/resources/hbase/checkstyle.xml,拷贝至当前目录的新建子目录hbase下,重新执行编译命令即可
生成的hbase-0.98.11-bin.tar.gz位于hbase-assembly/target中。
3. 修改配置,直接使用原hbase0.96版的配置文件替换即可:
4. 执行升级(滚动重启):

$NEW_HBASE_HOME/bin/rolling-restart.sh

如果成功,应该可以进入shell界面进行查看,或者使用hbck命令检查HFile
HBase0.98升级到HBase1.0
1. 编译hbase1.0.0-hadoop2.6.0, 修改pom.xml中hadoop2的版本然后依次执行:

MAVEN_OPTS="-Xmx1200m -XX:MaxPermSize=256m" mvn install -DskipTests site assembly:single -Prelease -DcompileSource=1.7

2. 编译hbase0.98.11时如果按照上述步骤执行可能会编译报错:
提示找不到hbase/checkstyle-suppressions.xml
此时只需将hbase-checkstyle/src/main/resources/hbase/checkstyle-suppressions.xml,拷贝至当前目录的新建子目录hbase下,重新执行编译命令即可
生成的hbase-1.0.0-bin.tar.gz位于hbase-assembly/target中
3. 修改配置,直接使用原hbase0.98版的配置文件替换即可:
4. 执行升级(滚动重启):

$NEW_HBASE_HOME/bin/rolling-restart.sh

如果成功,应该可以进入shell界面进行查看,或者使用hbck命令检查HFile,至此所有升级执行完成。

 

 

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics