《hadoop与hbase与hive与oozie安装使用文档.doc》由会员分享,可在线阅读,更多相关《hadoop与hbase与hive与oozie安装使用文档.doc(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、hadoop与hbase与hive与oozie安装使用文档HadoopHBaseHiveOozie安装使用文档目录Hadoop-2.0 HA 解决方案安装文档11.安装NFS并配置共享目录22.修改hadoop安装目录下etc/hadoop/core-site.xml43.修改hdfs-site.xml44.NameNode格式化65.HDFS (HA) 的初始化76.zkfc格式化77.HDFS(HA) 的管理78.验证hadoop-2.0 HA高可用是否成功7HBase 安装文档10一、环境简介10二、安装步骤101.解压安装包102. 修改配置文件hbase-site.xml103. 修
2、改配置文件regionservers114. 修改配置文件hbase-evn.sh115. 使用scp命令将HBase主目录复制到另外三台服务器相同的路径下:116.对每台服务器进行时间同步117. 启动HBase128.验证是否成功启动129.关闭HBase13Hive安装文档14一、环境简介14二、 安装步骤141. 为Hive创建mysql用户与数据库,并赋予足够的权限142. 解压Hive安装包143. 生成配置文件144. 修改配置文件155. 下载、安装mysql驱动156. 验证Hive安装16三、Hive的连接161.使用jdbc连接Hive数据库162使用HBase连接Hiv
3、e数据库17Oozie安装使用文档20一、 环境简介20二、 安装步骤201. 解压Tomcat安装包202. 验证Tomcat安装203.为Oozie创建mysql用户与数据库,并赋予足够的权限214.解压Oozie安装包215.添加环境变量216.修改配置文件217.安装mysql驱动228.在mysql上为Oozie创建数据库模式229.安装Oozie Web控制台2210. 启动Oozie2211. 查看Web控制台2212. 关闭Oozie23三、 使用范例231解压Oozie自带的examples包232.将解压出的examples文件夹上传至hadoop存储环境的根文件夹下233
4、. 修改Hadoop的core-site.xml配置文件234.修改map-reduce job的job.properties文件245. 执行map-reduce job24Hadoop-2.0 HA 解决方案安装文档版本:v1.0 发布日期:2012年8月21日 1.安装NFS并配置共享目录NFS是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。CentOS系统中如何安装和配置nfs呢,下面
5、我们就来学习一下方法。首先我们来介绍一些会用到的CentOS系统命令。1) 安装$yum -y install nfs-utils2) 创建共享目录$su root (切换到root用户,因为NFS只能被root用户使用)$mkdir p /smp/hadoop-cdh4$chmod R 777 /smp/hadoop-cdh4 (因为是root用户创建,要给当前用户赋可读写的权限)3) 配置$vi /etc/exports在配置文件中添加你要共享的目录等信息,例如:/smp/hadoop-cdh4 *(rw,sync,no_root_squash)内容具体参数说明如下:共享的目录 主机名或I
6、P(参数,参数)其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay。CentOS系统中,当主机名或IP地址为空时,则代表共享给任意客户机提供服务。当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:共享的目录 主机名1或IP1(参数1,参数2) 主机名2或IP2(参数3,参数4)下面是一些NFS共享的常用参数:1.ro 只读访问 2.rw 读写访问 3.sync 所有数据在请求时写入共享 4.async NFS在写入数据前可以相应请求 5.secure NFS通过1024以下的安全TCP/IP端
7、口发送 6.insecure NFS通过1024以上的端口发送 7.wdelay 如果多个用户要写入NFS目录,则归组写入(默认) 8.no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。 9.hide 在NFS共享目录中不共享其子目录 10.no_hide 共享NFS目录的子目录 11.subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认) 12.no_subtree_check 和上面相对,不检查父目录权限 13.all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目
8、录。 14.no_all_squash 保留共享文件的UID和GID(默认) 15.root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认) 16.no_root_squash root用户具有根目录的完全管理访问权限 17.anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID4) 启动$/etc/init.d/nfs restart在你要共享的机器上同样使用root用户创建同步的目录并赋读写权限,并挂在该目录,具体的命令如下:$mkdir
9、 p /smp/avatarshare$mount -v -t nfs -o tcp,soft,retry=20,timeo=20,rsize=32768,wsize=32768 hadoop04:/smp/hadoop-cdh4 /smp/hadoop-cdh4说明:hadoop04在此处为NFS服务器的主机名。到此我们就将NFS配置并启动好了5) 安装zookeeper-3.4.2a. 下载zookeeper-3.4.2.tar.gz。b. 将tar包解压到指定目录。tar zxvf zookeeper-3.4.2.tar.gzc. 修改zookeeper配置, 将zookeeper安装目
10、录下conf/zoo_sample.cfg重命名为zoo.cfg, 修改其中的内容。# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=5# the directory
11、where the snapshot is stored.# do not use /tmp for storage, /tmp here is just # example sakes.dataDir=/home/hadoop/zookeeper# the port at which the clients will connectclientPort=2181server.1=hadoop01:2888:3888server.2=hadoop02:2888:3888server.3=hadoop03:2888:3888# Be sure to read the maintenance se
12、ction of the # administrator guide before turning on autopurge.#http:/zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance# The number of snapshots to retain in dataDir#autopurge.snapRetainCount=3# Purge task interval in hours# Set to 0 to disable auto purge feature#autopurge.purgeInt
13、erval=1在配置的dataDir目录下创建一个myid文件,里面写入一个0-255之间的一个随意数字,每个zookeeper上这个文件的数字要是不一样的。修改下面的内容变成你自己的服务器地址server.1=hadoop01:2888:3888server.2=hadoop02:2888:3888server.3=hadoop03:2888:3888说明:hadoop01、hadoop02和hadoop03在此处为用作Server的主机名。分别启动所有的zookeeperbin/zkServer.sh start使用客户端连接zookeeper测试是否成功bin/zkCli.sh -ser
14、ver ip地址:clientPort2.修改hadoop安装目录下etc/hadoop/core-site.xml加入以下内容: fs.defaultFS hdfs:/dinglicom ha.zookeeper.quorum hadoop03:2181,hadoop04:2181,hadoop05:2181说明:hadoop03、hadoop04和hadoop05在此处为用作client的主机名。3.修改hdfs-site.xml dfs.federation.nameservices dinglicom dfs.namenode.name.dir /home/hadoop/hadoop-
15、cdh4-nn dfs.ha.namenodes.dinglicom nn1,nn2 dfs.namenode.rpc-address.dinglicom.nn1 hadoop01:8020 dfs.namenode.rpc-address.dinglicom.nn2 hadoop02:8020 dfs.namenode.http-address.dinglicom.nn1 hadoop01:50070 dfs.namenode.http-address.dinglicom.nn2 hadoop02:50070说明:hadoop01和hadoop02均为NameNode,且互为主备关系。 df
16、s.namenode.shared.edits.dir /smp/hadoop-cdh4 dfs.client.failover.proxy.provider.dinglicom org.apache.Hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider dfs.ha.fencing.methods sshfence dfs.ha.fencing.ssh.private-key-files /home/smp/.ssh/id_rsa dfs.ha.automatic-failover.enabled true ha.zoo
17、keeper.quorum hadoop03:2181,hadoop04:2181,hadoop05:2181 dfs.data.dir /home/hadoop/hadoop-cdh4-dn4.NameNode格式化bin/hadoop namenode -format clusterid dinglicom5.HDFS (HA) 的初始化设定所有的必要配置项后,必须首先同步两个NameNode 上的元数据。如果是新建的HDFS 集群,则应首先格式化一个NameNode ,或者想把非HA 集群转换为HA 集群,按照dfs.namenode.name.dir 、dfs.namenode.edi
18、ts.dir 的配置把当前NameNode 节点的元数据目录复制到另一个NameNode. 还应该确保共享存储目录下(dfs.namenode.shared.edits.dir ) 包含NameNode 所有的元数据。6.zkfc格式化bin/hdfs zkfc formatZK7.HDFS(HA) 的管理sbin/start-dfs.sh默认以HA 方式启动集群,启动后为Standby 状态,使用如下命令设置Active 节点 (手动方式)bin/hdfs haadmin DFSHAadmin transitionToActive nn1如果让nn2 成为变为active nn1 变为sta
19、ndby ,则# bin/hdfs haadmin -DfSHAadmin -failover nn1 nn2如果失败(is not ready to become active) 则# bin/hdfs haadmin -DfSHAadmin -failover -forceactive nn1 nn2具体参照bin/hdfs haadmin命令8.验证hadoop-2.0 HA高可用是否成功验证Hadoop-2.0 HA 高可用是否成功可以通过两种方式实现。安装图形界面的系统请采用方法1),安装非图形界面的系统请采用方法2)。1) 在地址栏输入:http:/hostname:50070/d
20、fshealth.jsp,按“Enter”键,检查是否出现如图1和图2中的界面。图1 NameNode主用节点登录界面图2 NameNode备用节点登录界面2) 使用JPS命令查看主备节点上是否存在进程NameNode和DFSZKFailoverController,当且仅当两个进程都存在时说明HA高可用成功。HBase 安装文档一、环境简介本次安装使用了四台已安装CentOS 6.2的服务器,且已搭建好Hadoop环境。主机名与ip分别为:主机名iphadoop01192.168.6.2hadoop02192.168.6.4hadoop03192.168.6.6hadoop04192.168
21、.6.8其中将hadoop01作为主节点,其余三个作为从节点与zookeeper。HBase安装包使用hbase-0.94.6-cdh4.3.0.tar.gz。二、安装步骤1.解压安装包$su hadoop$cd (进入hadoop用户主目录,HBase安装包放置此目录下)$tar -zxvf hbase-0.94.6-cdh4.3.0.tar.gz2. 修改配置文件hbase-site.xml$cd hbase-0.94.6-cdh4.3.0 (进入HBase安装目录)$vi conf/hbase-site.xml在与之间加入以下代码(红字部分根据实际情况进行替换): hbase.rootd
22、ir hdfs:/hadoop01:9000/hbase 区域服务器使用存储HBase数据库数据的目录 hbase.cluster.distributed true 指定HBase运行的模式:false: 单机模式或者为分布式模式 true: 全分布模式 hbase.zookeeper.quorum hadoop02,haddop03,hadoop04 ZooKeeper集群服务器的hostname,必须为奇数 hbase.zookeeper.property.clientPort 2222 Property fromZooKeepers config zoo.cfg. The port at
23、 which the clients willconnect. 3. 修改配置文件regionservers$vi conf/regionservers将文件内容改为从节点的hostname:hadoop02hadoop03hadoop044. 修改配置文件hbase-evn.sh $vi conf/hbase-evn.sh 在此文件中配置各环境变量JAVA_HOME、HBASE_HOME、HADOOP_HOME分别为jdk、hbase、hadoop的安装目录。export HBASE_OPTS=$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:+
24、UseConcMarkSweepGC -XX:+CMSIncrementalModeexport JAVA_HOME=/usr/java/jdk1.6.0_43export HBASE_MANAGES_ZK=true #如果是true说明是使用Hbase本身集成的zookeeper服务export HBASE_HOME=/home/hadoop/hbase-0.94.6-cdh4.3.0export HADOOP_HOME=/home/hadoop/hadoop-2.0.0-cdh4.3.0到此HBase配置完毕5. 使用scp命令将HBase主目录复制到另外三台服务器相同的路径下:$ scp
25、 -r /home/hadoop/hbase-0.94.6-cdh4.3.0/ hadoop02:/home/hadoop/$ scp -r /home/hadoop/hbase-0.94.6-cdh4.3.0/ hadoop03:/home/hadoop/$ scp -r /home/hadoop/hbase-0.94.6-cdh4.3.0/ hadoop04:/home/hadoop/6.对每台服务器进行时间同步$ ntpdate 210.0.235.147. 启动HBase$ bin/start-hbase.sh注:启动HBase前必须先启动Hadoop服务,启动方法为$ cd (进入h
26、adoop用户主目录)$ hadoop-2.0.0-cdh4.3.0/sbin/start-all.sh8.验证是否成功启动使用jps命令查看进程,若主节点有HMaster,zookeeper有HQuorumPeer,从节点有HRegionServer即安装成功。或是在浏览器中输入http:/192.168.6.2:60010/master.jsp (红字部分为主节点的ip地址)即可查看到HBase的状态信息,如下图:9.关闭HBase$ bin/stop-hbase.shHive安装文档一、环境简介Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供
27、完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。用HBase做数据库时,由于HBase没有类似sql查询方式,所以操作和计算数据非常不方便,于是整合Hive,让Hive支撑在HBase数据库层面的 hql查询。本次安装使用了四台已安装CentOS 6.2的服务器,且已安装好Hadoop、HBase与Mysql。主机名与ip分别为:主机名iphadoop01192.168.6.2hadoop02192.168.6.4hadoop03192.168.6.6hadoop04192.168.6.8将hadoop01作为Hive安装节点,Hive安装包使用hive-0.10.
28、0-cdh4.3.0.tar.gz。二、 安装步骤1. 为Hive创建mysql用户与数据库,并赋予足够的权限$mysql -u root -pmysqlcreate user hive identified by password; (创建用户名为hive,密码为password的用户)mysqlcreate database hive;mysqlgrant all privileges on hive.* to hivelocalhost identified by password;mysqlgrant all privileges on hive.* to hive% identifi
29、ed by password;(为用户hive授予对hive数据库的所有操作权限)mysqlflush privileges;2. 解压Hive安装包$su hadoop$cd (进入hadoop用户主目录,Hive安装包放置此目录下)$tar -zxvf hive-0.10.0-cdh4.3.0.tar.gz3. 生成配置文件$cd hive-0.10.0-cdh4.3.0/conf (进入Hive配置文件所在目录)$cp hive-default.xml.template hive-default.xml$cp hive-default.xml.template hive-site.xml
30、$cp hive-env.sh.template hive-env.sh4. 修改配置文件a)修改hive-env.sh$vi hive-env.sh在配置文件中添加你的Hadoop和jdk安装目录,如:export JAVA_HOME=/usr/java/jdk1.6.0_43export HADOOP_HOME=/home/hadoop/hadoop-2.0.0-cdh4.3.0b)修改hive-site.xml$vi hive-site.xml这里主要是配置存放hive元数据的数据库信息,找到如下区域,修改红字部分: javax.jdo.option.ConnectionURL jdbc
31、:mysql:/hadoop01:3306/hive?createDatabaseIfNotExist=true JDBC connect string for a JDBC metastorejavax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver Driver class name for a JDBC metastorejavax.jdo.option.ConnectionUserName hive username to use against metastore databasejavax.jdo.option.Conne
32、ctionPassword password password to use against metastore database到此Hive配置文件修改完毕。5. 下载、安装mysql驱动a)下载地址: ,选择与已安装的mysql版本一致的mysql-connector-java驱动包,在此我们选择mysql-connector-java-5.1.26.tar.gz。注:Linux系统请下载后缀名为“.tar.gz”的驱动包。b)解压mysql驱动包:$tar -zxvf mysql-connector-java-5.1.26.tar.gzc)进入解压后生成的文件夹下,将mysql驱动复制到
33、Hive安装目录的lib目录下:$cd mysql-connector-java-5.1.26$cp mysql-connector-java-5.1.26-bin.jar /home/hadoop/hive-0.10.0-cdh4.3.0/lib6. 验证Hive安装启动Hive,查看所有表:$cd /home/hadoop/hive-0.10.0-cdh4.3.0$./bin/hivehiveshow tables;若出现“OK”,则表示安装成功。若出现以下错误,则进入mysql中的hive数据库里执行 alter database hive character set latin1; 改
34、变hive元数据库的字符集,即可解决。FAILED: Error in metadata: javax.jdo.JDODataStoreException: Error(s) were found while auto-creating/validating the datastore for classes. The errors are printed in the log, and are attached to this exception.NestedThrowables:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorExceptio
35、n: Specified key was too long; max key length is 767 bytesFAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask三、Hive的连接1.使用jdbc连接Hive数据库a)后台启动hiveserver2服务,并生成日志:$nohup ./bin/hiveserver2 ./log/hiveserver2.log &b)使用hiveserver2 client连接:$cd ./bin/beelineBeeline version 0.10.0-cdh4.3.0 by Apache Hivebeeline !connect jdbc:hive2:/localhost:10000 hive password org.apache.hive.jdbc.HiveDriver (使用第1步创建的用户名与密码)Connecting to jdbc:hive2:/localhost:10000SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in jar:file:/home/hado