Hadoop 集群修改:调整集群版本

Hadoop 集群修改,调整集群版本

修改说明

原有的master集群,采用的不同版本的JAVA、Hadoop、HBase、Hive、Sqoop,现在需要调整到指定版本。

具体的目标版本信息如下:

工具版本
JAVAjdk1.7.0_65
Hadoophadoop-2.5.0.tar.gz
HBasehbase-0.98.6.1-hadoop2-bin.tar.gz
Hiveapache-hive-0.13.1-bin
Sqoopsqoop-1.4.5

详细步骤

提示:
在进行修改操作前,先停掉所有的hadoop的服务!

1. JDK修改

下载jdk1.7.0_65.tar.gz,放到集群中每个机器的/usr/local路径下。

如果已经有JDK,可以直接使用已有的版本。
//压缩 jdk1.7.0_65文件夹 为 jdk1.7.0_65.tar.gz
# tar -czvf jdk1.7.0_65.tar.gz jdk1.7.0_65

在该目录下,解压文件

$ tar zxvf jdk1.7.0_65.tar.gz 

修改/etc/profile配置文件:

#JDK Setting
JAVA_HOME=/usr/local/jdk1.7.0_65
JAVA_BIN=/usr/local/jdk1.7.0_65/bin
PATH=$PATH:$JAVA_BIN
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:./
export JAVA_HOME JAVA_BIN PATH CLASSPATH

执行source /etc/profile命令,执行更新。
然后执行下面的命令,检查当前的JDK配置。

$ java -version

删除压缩包

$ rm jdk1.7.0_65.tar.gz

说明:
实际操作过程中,使用的XShell连接linux机器。
执行source /etc/profile以后,系统的JDK环境并没有改变。
执行source命令以后,关闭当前session,重新打开即可。


将以上操作,运用到集群中所有机器上。

2. Hadoop修改

下载或者重新编译hadoop-2.5.0.tar.gz,将包放到/home下面并解压

$ tar zxvf hadoop-2.5.0.tar.gz

删除压缩包

$ rm hadoop-2.5.0.tar.gz

配置Hadoop:

首先修改/etc/profile文件,添加

#Hadoop Setting
export HADOOP_HOME=/home/hadoop-2.5.0
export PATH=$PATH:$HADOOP_HOME/bin

进入Hadoop配置目录

$ cd /home/hadoop-2.5.0/etc/hadoop

修改以下配置文件:

  1. hadoop-env.sh
  2. yarn-env.sh
  3. core-site.xml
  4. hdfs-site.xml
  5. mapred-site.xml 若没有该文件,可以将 mapred-site.xml.template 转换
  6. yarn-site.xml
  7. slaves 文件

编辑 hadoop-env.sh

# The java implementation to use.
export JAVA_HOME=/usr/local/jdk1.7.0_65

编辑 yarn-env.sh

# some Java parameters
export JAVA_HOME=/usr/local/jdk1.7.0_65

编辑 core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/data/tmp</value>
    <description>Abase for other temporary directories.</description>
  </property>
  <property>
    <name>hadoop.proxyuser.hduser.hosts</name>
    <value>*</value>
  </property>
  <property>
    <name>hadoop.proxyuser.hduser.groups</name>
    <value>*</value>
  </property>
  <property>
    <name>io.compression.codecs</name>
    <value>org.apache.hadoop.io.compress.GzipCodec,
           org.apache.hadoop.io.compress.DefaultCodec,
           org.apache.hadoop.io.compress.BZip2Codec
    </value>
  </property>
</configuration>

编辑 hdfs-site.xml

<configuration>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:9001</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/data/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/data/dfs/data</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
  </property>
</configuration>

编辑 mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master:19888</value>
  </property>
</configuration>

编辑 yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
  <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.address</name>
    <value>master:8032</value>
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master:8030</value>
  </property>
  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master:8031</value>
  </property>
  <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>master:8033</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master:8088</value>
  </property>
</configuration>

编辑 slaves 文件

slave1
slave2
slave3

将以上操作,运用到集群中所有机器上。

启动hadoop,测试运行情况。

3. HBase修改

下载或者重新编译hbase-0.98.6.1-bin.tar.gz,将包放到/home下面并解压

$ tar zxvf hbase-0.98.6.1-bin.tar.gz

删除压缩包

$ rm hbase-0.98.6.1-bin.tar.gz

配置HBase:

首先修改/etc/profile文件,添加

#HBase Setting
HBASE_HOME=/home/hbase-0.98.6.1
export PATH=$PATH:$HBASE_HOME/bin

进入HBase配置目录

$ cd /home/hbase-0.98.6.1/conf

修改以下配置文件:

  1. hbase-env.sh
  2. hbase-site.xml
  3. regionservers 文件

修改 hbase-env.sh

# The java implementation to use. Java 1.6 required.
export JAVA_HOME=/usr/local/jdk1.7.0_65
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=true

修改 hbase-env.xml

<configuration>
    <property>
        <name>hbase.tmp.dir</name>
        <value>/data/hbase_tmp</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.zookeeper.quorum</name>
        <value>slave1,slave2,slave3</value>
    </property>
</configuration>

修改 regionservers

slave1
slave2
slave3

将以上操作,运用到集群中所有机器上。

测试启动。

问题1:部分机器未启动

只有一个机器起了server。在未启动的机器中,Hbase log记录了错误信息如下:

2014-12-12 14:46:56,369 FATAL [regionserver60020] regionserver.HRegionServer: Master rejected startup because clock is out of sync
org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException: Server slave3,60020,1418366813077 has been rejected; Reported time is too far out of sync with master.  Time difference of 33233ms > max allowed of 30000ms

原因是,两个未启动的机器的时间和master不同步。

解决方式:
对集群中所有的机器同步时间即可。

4. Hive修改

下载或者重新编译apache-hive-0.13.1-bin.tar.gz,将包放到/home下面并解压

$ tar zxvf apache-hive-0.13.1-bin.tar.gz

删除压缩包

$ rm apache-hive-0.13.1-bin.tar.gz

配置Hive:

Hive将元数据存在关系数据库中。这里选用的是mysql

  1. mysql-connector-java-5.1.34-bin.jar上传到/home/apache-hive-0.13.1-bin/lib
  2. 配置好MySQL数据库,创建数据库hive63

接下来,修改/etc/profile文件,添加

#Hive Setting
export HIVE_HOME=/home/apache-hive-0.13.1-bin
export PATH=$HIVE_HOME/bin:$PATH

进入Hive配置目录

$ cd /home/apache-hive-0.13.1-bin/conf

修改以下配置文件:

  1. hive-site.xml

编辑 hive-site.xml 文件,内容如下:
具体 IP 地址、用户名、密码等根据实际情况填写。

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://your_mysql_IP/hive63?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
</property>
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>your_username</value>
    <description>username to use against metastore database</description>
</property>
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>your_password</value>
    <description>password to use against metastore database</description>
</property>
<property>
    <name>hive.metastore.warehouse.dir</name>
    <!-- base hdfs path -->
    <value>hdfs://master:9000/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
</property>
<property>
    <name>hive.stats.dbclass</name>
    <value>jdbc:mysql</value>
</property>
<property>
    <name>hive.stats.jdbcdriver</name>
    <value>com.mysql.jdbc.Driver</value>
</property>
<property>
    <name>hive.stats.dbconnectionstring</name>
    <value>jdbc:mysql://your_mysql_ip:3306/tempstatsstore63</value>
</property>
<property>
    <name>hive.zookeeper.quorum</name>
    <value>slave1,slave2,slave3</value>
    <description>
        The list of ZooKeeper servers to talk to. 
        This is only needed for read/write locks.
    </description>
</property>
<property>
    <name>hive.zookeeper.client.port</name>
    <value>3888</value>
    <description>
        The port of ZooKeeper servers to talk to. 
        This is only needed for read/write locks.
    </description>
</property>
<property>
    <name>hive.metastore.uris</name>
    <value>thrift://your_master_ip:9083</value>
    <description>
        Thrift uri for the remote metastore. 
        Used by metastore client to connect to remote metastore.
    </description>
</property>

拷贝HBase的jar包到Hive(from lib to lib)

$ cp hbase-client-0.98.6.1.jar       /home/apache-hive-0.13.1-bin/lib/
$ cp hbase-common-0.98.6.1-tests.jar /home/apache-hive-0.13.1-bin/lib/
$ cp hbase-common-0.98.6.1.jar       /home/apache-hive-0.13.1-bin/lib/
$ cp hbase-protocol-0.98.6.1.jar     /home/apache-hive-0.13.1-bin/lib/
$ cp hbase-server-0.98.6.1.jar       /home/apache-hive-0.13.1-bin/lib/
$ cp htrace-core-2.04.jar            /home/apache-hive-0.13.1-bin/lib/

将以上操作,运用到集群中所有机器上。

在 HDFS 上创建文件夹,并把依赖的 jar 包放到文件夹中

$ hdfs dfs -mkdir /hive
$ hdfs dfs -mkdir /hive/lib
$ hdfs dfs -put   /home/apache-hive-0.13.1-bin/lib/hbase-common-0.98.6.1.jar     /hive/lib
$ hdfs dfs -put   /home/apache-hive-0.13.1-bin/lib/hive-hbase-handler-0.13.1.jar /hive/lib
$ hdfs dfs -put   /home/apache-hive-0.13.1-bin/lib/zookeeper-3.4.6.jar           /hive/lib

Hive依赖HBase中的zookeeper,
需要先启动Hadoop,再启动HBase,最后启动Hive

hive 启动流程

$ nohup hive --service metastore > $HIVE_HOME/log/hive_metastore.log &

hive 远程服务启动(编程需要)

$ nohup hive --service hiveserver > $HIVE_HOME/log/hiveserver.log &

5. Sqoop修改

下载tar包到指定位置,并解压

配置环境变量
编辑/etc/profile文件,在结尾加入如下代码

export SQOOP_HOME=/home/sqoop-1.4.5
export PATH=$PATH:$SQOOP_HOME/bin

复制lib包:
包括 sqoop 和 mysql-connector

$ cp sqoop-1.4.5.jar /home/hadoop-2.5.0/share/hadoop/common
$ cp mysql-connector-java-5.1.34-bin.jar /home/hadoop-2.5.0/share/hadoop/common

修改 sqoop-env.sh(从 sqoop-env-template.sh 转换)

#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/home/hadoop-2.5.0 

#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/home/hadoop-2.5.0 

#set the path to where bin/hbase is available
export HBASE_HOME=/home/hbase-0.98.6.1

#Set the path to where bin/hive is available
export HIVE_HOME=/home/apache-hive-0.13.1-bin

#Set the path for where zookeper config dir is (使用的是Hbase自带的zookeeper,暂不配置)
#export ZOOCFGDIR=

转载于:https://www.cnblogs.com/DamianZhou/p/4184026.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值