欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-13 14:24:21
...

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,至此所有升级执行完成。