标签:
实验开发环境所用软件:
[root@hadoop11 local]# ll
total 320576
-rw-r--r-- 1 root root 52550402 Mar 6 10:34 apache-flume-1.6.0-bin.tar.gz
drwxr-xr-x 7 root root 4096 Jul 15 10:46 flume
drwxr-xr-x. 11 root root 4096 Jul 10 21:04 hadoop
-rw-r--r--. 1 root root 124191203 Jul 2 11:44 hadoop-2.4.1-x64.tar.gz
drwxr-xr-x. 7 root root 4096 Jul 14 10:02 hbase
-rw-r--r--. 1 root root 79367504 Jan 21 20:40 hbase-0.96.2-hadoop2-bin.tar.gz
drwxr-xr-x 9 root root 4096 Jul 15 09:09 hive
-rw-r--r-- 1 root root 30195232 Dec 12 2015 hive-0.9.0.tar.gz
-rw-r--r-- 1 root root 7412135 Jul 14 19:51 MySQL-client-5.1.73-1.glibc23.x86_64.rpm
-rw-r--r--. 1 root root 875336 Jan 21 20:17 mysql-connector-java-5.1.28.jar
-rw-r--r-- 1 root root 16775717 Jul 14 19:50 MySQL-server-5.1.73-1.glibc23.x86_64.rpm
drwxr-xr-x 9 root root 4096 Apr 27 2015 sqoop
-rw-r--r-- 1 root root 16870735 Jul 15 10:23 sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
具体配置如下:
Hadoop开发环境集群搭建总结:
(一)hadoop2.4.1集群搭建(非联盟方式):
hadoop2.4.1 64位
集群环境介绍:
hadoop11 NameNode 、SecondaryNameNode
hadoop22 ResourceManager
hadoop33 DataNode、NodeManager
hadoop44 DataNode、NodeManager
hadoop55 DataNode、NodeManager
hadoop66 DataNode、NodeManager
前期准备:
①>关闭防火墙
②>设置静态IP地址
③>修改主机名
④>IP地址与主机名绑定
⑤>设置SSH免密码登录
⑥>安装JDK并配置环境变量
安装hadoop2.4.1
1>解压缩
2>修改配置文件
-----------hadoop-env.sh------------------
JAVA_HOME=/usr/local/jdk
-------core-site.xml----------------------
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop11:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
-------hdfs-site.xml----------------------
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
-------mapred-site.xml--------------------
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
-------yarn-site.xml----------------------
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop22</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
------------slaves------------------------
hadoop33
hadoop44
hadoop55
hadoop66
------------------------------------------
hdfs namenode -format 格式化
3>启动HDFS与YARN集群
start-dfs.sh
start-yarn.sh
显示进程:
4334 SecondaryNameNode
4781 Jps
4614 NodeManager
4188 DataNode
4074 NameNode
4474 ResourceManager
(二)Zookeeper集群搭建:(QuorumPeerMain)
Zookeeper集群对应服务器:hadoop33、hadoop44、hadoop55
2.1 zk服务器集群规模不小于3个节点,要求各服务器之间系统时间要保持一致。
2.2 在hadoop33的/usr/local目录下,解压缩zk....tar.gz,设置环境变量
2.3 在conf目录下,修改文件 vi zoo_sample.cfg zoo.cfg
2.4 编辑该文件,执行vi zoo.cfg
修改dataDir=/usr/local/zk/data
新增
server.0=hadoop33:2888:3888
server.1=hadoop44:2888:3888
server.2=hadoop55:2888:3888
2.5 创建文件夹mkdir /usr/local/zk/data
2.6 在data目录下,创建文件myid,值为0
2.7 把zk目录复制到hadoop44和hadoop55中
2.8 把hadoop44中相应的myid的值改为1
把hadoop55中相应的myid的值改为2
2.9 启动,在三个节点上分别执行命令zkServer.sh start
2.10 检验,在三个节点上分别执行命令zkServer.sh status
检验:
[root@hadoop33 local]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo.cfg
Mode: follower
[root@hadoop44 data]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo.cfg
Mode: leader
[root@hadoop55 data]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo.cfg
Mode: follower
(三)Hbase集群搭建
Hbase集群环境描述:
HMaster hadoop11、hadoop22(active与standby)
HRegionServer hadoop33、hadoop44、hadoop55
安装Hbase
1>解压缩
2>修改配置文件(注意最后一条)
-----------------------hbase-env.sh-------------------------------------
export JAVA_HOME=/usr/local/jdk
export HBASE_MANAGES_ZK=false
-----------------------hbase-site.xml-----------------------------------
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop11:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop33:2181,hadoop44:2181,hadoop55:2181</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
----------------------regionservers-------------------------------------
hadoop33
hadoop44
hadoop55
**********************并没有涉及到Hmaster相关的配置***************
-----------------------因为hbase中的数据在hdfs中存储----------------------
将Hadoop(hdfs)的hdfs-site.xml和core-site.xml 放到hbase/conf下
3、启动hbase
start-hbase.sh
******启动hbase之前,确保hadoop是运行正常的,并且可以写入文件*******
******启动hbase之前,确保zk集群已经启动****************************
******Hmaster的位置在配置文件中并没有进行配置,结果就是在哪个节点启动hbase,哪个节点就是Hmaster*******
******Hbase在启动的时候可以通过hbase-daemon.sh start master启动多个hmaster,多余的是standby状态******
查看启动进程:
------------------------------------------------------------------------
HMaster
HRegionServer
------------------------------------------------------------------------
若使用的是自己的zk实例(true),jps后显示的进程是HQuorumPeer
若使用的不是自己的zk实例(false),jps后显示的进程是QuorumPeerMain
使用浏览器访问http://hadoop11(Hmaster):60010。
(四)Hive工具的搭建使用
注:hive本身就是一个客户端工具,没有分布与伪分布搭建之分
1、解压缩、重命名、设置环境变量
-----------------------------------------------------------------------------------------------------
2、安装mysql---直到可以通过Navicate进行远程连接
(1)执行命令 service mysql status 以及 rpm -qa |grep -i mysql 命令检查是否已经安装了mysql
(2)执行命令 rpm -e xxxxxxx --nodeps 删除已经安装的mysql
(3)执行命令 service mysql status 以及rpm -qa |grep -i mysql 检查是否删除干净
(4)执行命令 rpm -i mysql-server-******** (--nodeps --force) 安装服务端
(5)执行命令 mysqld_safe & 启动mysql 服务端
(6)执行命令 service mysql status 检查mysql服务端是否启动
(7)执行命令 rpm -i mysql-client-******** 安装mysql客户端
(8)执行命令 mysql_secure_installation 设置mysql客户端root登录密码 【3个N 1个Y】
(9)执行命令 mysql -uroot -padmin登录到mysql客户端
(10)执行命令 grant all on *.* to ‘root‘@‘%‘ identified by ‘admin‘ ; {第一个* 本来是hive的}
flush privileges; 使mysql可以远程连接
(11)把mysql的jdbc驱动放置到hive的lib目录下 *******!!!!!!!!!!!!!!!
-----------------------------------------------------------------------------------------------------
3、修改配置文件
(1)修改hadoop的配置文件hadoop-env.sh,修改内容如下:(hadoop2.0的时候没有配置这一项)
export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin
(2)在目录$HIVE_HOME/bin下面,修改文件hive-config.sh,增加以下内容:
export JAVA_HOME=/usr/local/jdk
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop
(3) 在目录$HIVE_HOME/conf/下,
将hive-env.sh.template、hive-default.xml.template、hive-log4j.properties重命名
修改hive_env.sh(1处)
1、添加HADOOP_HOME的安装目录地址
修改hive-log4j.properties (1处)
1、log4j.appender.EventCounter的值修改为org.apache.hadoop.log.metrics.EventCounter
修改配置文件hive-site.xml:(4处)
/******在哪个主机上安装的mysql就写哪台机器的主机名,而不是都写老大的主机名hadoop*******/
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop11:3306/hive?createDatabaseIfNotExist=true</value> /注意:路径是hive/
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>admin</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/hive</value> /***设置hive在hdfs中的工作目录****/
</property>
-----------------------------------------------------------------------------------------------------------
4、启动hive工具
hive
检验:在hive中创建一个表table,然后在mysql的(shell+Navicate中)的TBLS表中看是否可以查到元数据信息
(五)Sqoop工具的搭建使用
sqoop仅仅是一个工具,谈不上分布与伪分布的概念
sqoop安装(非常简单):
1、解压缩
2、重命名
3、配置环境变量
4、source /etc/profile
5、将Mysql的驱动放到sqoop的lib的目录下
OK!
(六)Sqoop工具的搭建使用
Flume的配置没有集群、非集群一说
Flume配置:
1>解压缩
2>重命名
3>修改环境变量,source /etc/profile
4>更改flume-env.sh添加JAVA_HOME
4>****************编写配置文件并添加到conf目录下************
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = spooldir
a1.sources.r1.spoolDir = /usr/local/datainput
a1.sources.r1.fileHeader = true
a1.sources.r1.interceptors = i1
a1.sources.r1.interceptors.i1.type = timestamp
# Describe the sink
# Describe the sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://hadoop11:9000/dataoutput
a1.sinks.k1.hdfs.writeFormat = Text
a1.sinks.k1.hdfs.fileType = DataStream
a1.sinks.k1.hdfs.rollInterval = 10
a1.sinks.k1.hdfs.rollSize = 0
a1.sinks.k1.hdfs.rollCount = 0
a1.sinks.k1.hdfs.filePrefix = %Y-%m-%d-%H-%M-%S
a1.sinks.k1.hdfs.useLocalTimeStamp = true
# Use a channel which buffers events in file
a1.channels.c1.type = file
a1.channels.c1.checkpointDir = /usr/flume/checkpoint
a1.channels.c1.dataDirs = /usr/flume/data
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
5>执行命令 bin/flume-ng agent -n agent1 -c conf -f conf/baby -Dflume.root.logger=DEBUG,console 即可执行。
如有问题,欢迎指正留言!
Hadoop2.0集群、Hbase集群、Zookeeper集群、Hive工具、Sqoop工具、Flume工具搭建总结
标签:
原文地址:http://blog.csdn.net/a2011480169/article/details/51916960