`

hadoop+hbase+hive+zookeeper集群版本升级配置整理

 
阅读更多

环境:
centos5.6+jdk1.6.2+hadoop-1.1.2+zookeeper3.4.5+hbase0.94.8+hive0.10.0

准备好三台机器,
机器名      ip                作用
namenode    192.168.16.133    namenode、jobTracker、HMaster、zookeeper、hive
datanode1   192.168.16.134    datanode1、taskTracker、HRegionServer、zookeeper、hive
datanode2   192.168.16.135    datanode2、taskTracker、HRegionServer、zookeeper、hive

一、hadoop的安装配置
1、建立用户名和用户组:hdp,hadoop所有安装包将放在hdp目录下,在每个节点中建立vsftpd服务,并关闭防火墙
2、在/etc/hosts中配置机器名和相应的IP(三台机器一样的配置):
192.168.16.133 namenode
192.168.16.134 datanode1
192.168.16.135 datanode2
在/etc/sysconfig/network中配置机器名:
HOSTNAME=namenode
HOSTNAME=datanode1
HOSTNAME=datanode2
修改完后记得使设置生效,运行命令:hostname namenode、hostname datanode1、hostname datanode2

3、配上SSH免密码登陆,在namenode上实现无密码登陆datanode1、datanode2
(1)在master机下生成公钥/私钥对。
[hdp@namenode ~]$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
它在/home/hdp下生成.ssh目录,.ssh下有id_dsa和id_dsa.pub。
(2)、把namenode机下的id_dsa.pub复制到datanode1和datanode2机下,在datanode1机的.ssh/authorized_keys文件里,我用scp复制。
[hdp@namenode ~]$ scp .ssh/id_dsa.pub hdp@datanode1:/home/hdp/id_dsa.pub
hdp@192.168.16.134d1's password:
id_rsa.pub                                    100%  223     0.2KB/s   00:00
由于还没有免密码登录的,所以要输入密码

(3)、datanode1机把从namenode机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里。
[hdp@datanode1 ~]$ cat id_dsa.pub >> .ssh/authorized_keys
[hdp@datanode1 ~]$ chmod 600 .ssh/authorized_keys
authorized_keys的权限要是600
namenode机登录datanode1机:ssh datanode1
第一次登录是时要输入yes
现在namenode机可以无密码登录datanode1机了
datanode2机配置跟datanode1机一模一样,不再赘述,至此无密码登陆已经配置完成(注:配置完后记得关闭防火墙,如果不关闭,会出现找不到datanode问题,分别执行命令:service iptables stop和chkconfig iptables off)

4、安装JDK1.6.0_13,并配置环境变量
JAVA_HOME=/usr/java/jdk1.6.0_13
PATH=$PATH:/usr/java/jdk1.6.0_13/bin
CLASSPATH=.:/usr/java/jdk1.6.0_13/jre/lib/rt.jar
export JAVA_HOME PATH CLASSPATH

5、安装hadoop
下载hadoop-1.1.2.tar.gz:
解压:$ tar –zvxf hadoop-1.1.2.tar.gz

把Hadoop 的安装路径添加到环/etc/profile 中:
export HADOOP_HOME=/home/hdp/hadoop
export PATH=$HADOOP_HOME/bin:$PATH

6、配置hadoop
(1)在conf/hadoop-env.sh 中配置Java 环境(namenode 与datanode 的配置相同):
$ vim hadoop-env.sh
$ export JAVA_HOME=/usr/java/jdk1.6.0_13
 
(2)配置conf/masters 和conf/slaves 文件:(只在namenode 上配置)
masters:
namenode

slaves:
datanode1
datanode2

(3)配置conf/core-site.xml, conf/hdfs-site.xml 及conf/mapred-site.xml(简单配置,namenode 与datanode 的配置相同)
core-site.xml:
<configuration>
 <property>
  <name>fs.default.name</name>
  <value>hdfs://namenode:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hdp/hadoopData</value>
</property>
</configuration>

hdfs-site.xml:( replication 默认为3,如果不修改,datanode 少于三台就会报错)
<configuration>
<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>
<property> 
    <name>dfs.permissions</name> 
    <value>false</value> 
</property>
</configuration>

mapred-site.xml:
<configuration>
<property>
  <name>mapred.job.tracker</name>
  <value>namenode:9001</value>
</property>
</configuration>
(namenode 与datanode的配置一样,只是datanode不用配masters与slaves,其中core.xml与mapred-site.xml的value值均要配成namenode的ip地址。)

7、运行hadoop
进入hadoop/bin,
首先格式化文件系统:$ hadoop namenode –format
(如果在这里输入命令 hadoop namenode –format,返回bash: hadoop:找不到命令;则进入hadoop文件,输入命令bin/hadoop namenode -format 就可以格式化了。)
启动Hadoop:$ start-all.sh
通过jps命令查看当前信息,
通过bin/hadoop dfsadmin -report查看各节点运行状态
使hadoop不以安全模式启动:./hadoop dfsadmin -safemode leave

二、zookeeper的安装配置
zookeeper的安装配置比较简单,下载、解压到/home/hdp/zookeeper,在zookeeper目录下创建data目录来存放zookeeper的数据,这里需要配置的就是/zookeeper/conf下的zoo.cfg配置文件,
zookeeper最初只有zoo.sample.cfg,将其改名为zoo.cfg,然后配置:
起步阶段只需考虑dataDir和clientPort属性,参考别人的教程配置为:
# the directory where the snapshot is stored.
dataDir=/home/hdp/zookeeper/data
# the port at which the clients will connect
clientPort=2181
最后因为我们要配置的是集群,所以需要在zoo.cfg中添加
server.1=namenode:2888:3888
server.2=datanode1:2888:3888
server.3=datanode2:2888:3888
其中等号左边1,2是代表这是第几个zookeeper,也即机器的id,我们还需要在每台机器上的data目录下创建一个文件myid,其内容即为其ip对应的id。
等号右边依次为机器ip,通信端口,选举leader端口
配置好后将zookeeper安装包往每个节点上拷贝一份。

三、hBase安装配置
下载hbase-0.94.8.tar.gz,解压到/home/hdp,并用mv修改其目录名为hbase,
开始集群配置:
1、修改conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_13
export HBASE_CLASSPATH=/home/hdp/hadoop/conf
export HBASE_MANAGES_ZK=false   (表示不用hbase自带的zookeeper)
2、修改hbase-site.xml,增加以下内容
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

<property>
<name>hbase.master.port</name>
<value>6000</value>
</property>

<property>
<name>hbase.zookeeper.quorum</name>
<value>namenode,datanode1,datanode2</value>
</property>
 <property>
      <name>hbase.zookeeper.property.clientPort</name>
      <value>2181</value>
</property>
<property> 
         <name>hbase.zookeeper.property.dataDir</name> 
         <value>/home/hdp/zookeeper</value>   <!--zookeeper的路径-->
         <description>Property from ZooKeeper's config zoo.cfg. 
         The directory where the snapshot is stored. 
         </description> 
       </property>
<property>
 <name>hbase.regionserver.lease.period</name>
 <value>1000*60*10</value>
</property>

<property>
 <name>hfile.block.cache.size</name>
 <value>0.3</value>
</property>
3、把/home/hdp/hadoop/conf/hdfs-site.xml文件拷贝至hbase的conf文件夹下
4、把/home/hdp/zookeeper/conf/zoo.cfg拷贝至/home/hdp/hadoop/conf/文件夹下
5、在conf/regionservers中添加所有的datanode节点datanode1、datanode2
6、删除/hbase-0.94.8/lib/hadoop-core-1.0.4.jar
     拷贝/hadoop/lib/hadoop-1.1.2-core.jar到/hbase/lib/
7、最后,把配置好的hbase,拷贝到其它节点scp
到了这里整个配置就完成了,在namenode上启动hadoop集群,接着在每台机器上启动zookeeper,最后启动hbase,以./hbase shell进入hbase的shell命令行,运行status查看当前的状态,如果命令可正常运行说明集群配置成功。

四、hive安装配置
用hbase做数据库,因为hbase没有类sql查询方式,所以操作和计算数据非常不方便,于是整合hive,让hive支撑在hbase数据库层面的hql查询。hive也即做数据仓库 
配置步骤:
1. 拷贝hbase-0.94.8.jar、zookeeper-3.4.5.jar、protobuf-java-2.4.0a.jar到hive/lib下。
注意:如果hive/lib下已经存在这三个文件的其他版本,建议删除后使用hbase下的相关版本。
2. 修改hive/conf下hive-site.xml文件,在底部添加如下内容:
<property>  
  <name>hive.querylog.location</name>  
  <value>/home/hdp/hive/logs</value>  
  <description>hive.querylog.location</description>
</property>  
 
<property> 
  <name>hive.aux.jars.path</name>  
  <value>file:////home/hdp/hive/lib/hive-hbase-handler-0.10.0.jar,file:////home/hdp/hive/lib/hbase-0.94.8.jar,file:////home/hdp/hive/lib/zookeeper-3.4.5.jar,file:////home/hdp/hive/lib/protobuf-java-2.4.0a.jar</value>
  <description>hive.aux.jars.path</description>
</property>
3.修改hive-log4j.properties.template为hive-log4j.properties并将里面的
log4j.appender.EventCounter==org.apache.hadoop.metrics.jvm.EventCounter改为:
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
4. 拷贝hbase-0.94.8.jar、protobuf-java-2.4.0a.jar到所有hadoop节点(包括master)的hadoop/lib下。
5. 拷贝hbase/conf下的hbase-site.xml文件到所有hadoop节点(包括master)的hadoop/conf下。
6. 拷贝hive目录至每个节点下
启动hive
单节点启动:bin/hive -hiveconf hbase.master=master:60000
集群启动:bin/hive --auxpath /home/hdp/hive/lib/hive-hbase-handler-0.10.0.jar,/home/hdp/hive/lib/hbase-0.94.8.jar,/home/hdp/hive/lib/zookeeper-3.4.5.jar,/home/hdp/hive/lib/protobuf-java-2.4.0a.jar  -hiveconf hbase.zookeeper.quorum=namenode,datanode1,datanode2
客户端访问:./hive --service hiveserver
查看hive进程:ps -Afw | grep -I hive

至此,hadoop+hbase+zookeeper+hive集群版本升级配置完毕。

分享到:
评论
1 楼 zmwxiaoming 2017-05-22  

相关推荐

Global site tag (gtag.js) - Google Analytics