Hadoop集群安装配置文档
日期 |
内容 |
修订人 |
2015.6.3 |
文档初始化 |
易新 |
目录
1 文档概要... 5
1.1软件版本... 5
1.2机器配置... 5
2 虚拟机配置... 5
2.1新建虚拟机... 5
2.2虚拟网络配置... 8
3 CentOS安装及配置... 9
3.1系统安装... 9
3.2系统配置... 10
3.2.1防火墙配置... 10
3.2.2 SElinux配置... 10
3.2.3 IP配置... 11
3.2.4安装vim.. 12
3.2.5新建用户... 12
3.2.6 SSH客户端连接... 12
3.2.7 FTP客户端连接... 13
3.2.8克隆虚拟机... 13
3.2.9设置hostname. 14
3.2.10设置hosts. 15
3.2.11 配置SSH免密码登陆... 15
3.2.12安装jdk. 20
4 Hadoop配置与优化... 20
4.1配置... 20
4.1.1最大文件打开数... 20
4.1.2上传安装包... 21
4.1.3解压安装包... 21
4.1.4删除安装包... 21
4.1.5配置hadoop-env.sh. 21
4.1.6配置 core-site.xml 21
4.1.7配置hdfs-site.xml 21
4.1.8配置mapred-site.xml 22
4.1.9配置masters文件... 22
4.1.10配置slaves文件... 22
4.1.11复制到其他节点... 22
4.1.12格式化namenode. 23
4.1.13启动hadoop. 23
4.1.14查看启动结果... 23
5 Zookeeper配置与优化... 24
5.1配置... 24
5.1.1上传安装包... 24
5.1.2解压安装包... 24
5.1.3删除安装包... 24
5.1.4配置zoo.cfg. 24
5.1.5复制到其他节点... 24
5.1.6配置server_id. 24
5.1.7启动zookeeper. 25
5.1.8查看启动结果... 25
6 Hbase配置与优化... 25
6.1配置... 25
6.1.1上传安装包... 25
6.1.2解压安装包... 25
6.1.3删除安装包... 25
6.1.4配置hbase-env.sh. 25
6.1.5配置hbase-site.xml 26
6.1.6配置regionservers. 27
6.1.7修改hdfs-site.xml 27
6.1.8复制到其他节点... 27
6.1.9启动hbase. 27
6.1.10查看启动结果... 27
7 Kafka配置与优化... 28
7.1配置... 28
7.1.1上传安装包... 28
7.1.2解压安装包... 28
7.1.3删除安装包... 28
7.1.4配置server.properties. 28
7.1.5启动kafka. 29
7.1.6查看启动结果... 29
8 Hive配置与优化... 29
8.1配置... 29
8.1.1上传安装包... 29
8.1.2解压安装包... 29
8.1.3删除安装包... 29
8.1.4配置hive-site.xml 29
8.1.5配置环境变量... 30
8.1.6配置mysql驱动包... 30
8.1.7配置mysql 31
8.1.8启动hive. 31
8.1.9查看启动结果... 31
9 Storm配置与优化... 31
9.1配置... 31
9.1.1上传安装包... 31
9.1.2解压安装包... 31
9.1.3删除安装包... 32
9.1.4配置storm.yaml 32
9.1.5启动storm.. 32
9.1.6查看启动结果... 32
10 Spark配置与优化... 33
10.1配置... 33
10.1.1上传安装包... 33
10.1.2解压安装包... 33
10.1.3删除安装包... 33
10.1.4配置conf/slaves. 33
10.1.5配置conf/spark-env.sh. 33
10.1.6启动spark. 34
10.1.7查看启动结果... 34
1文档概要
1.1软件版本
本文档针对的系统版本和Hadoo版本,见表
名称 |
版本 |
说明 |
VMware Workstation |
11.0.0 |
|
Linux发行版 |
CentOS-6.3 |
|
SSH客户端 |
Xshell 5 |
|
FTP客户端 |
Xftp 5 |
|
Hadoop |
hadoop-2.5.0-cdh5.2.0 |
|
Zookeeper |
zookeeper-3.4.5-cdh5.2.0 |
|
Kafka |
kafka_2.10-0.8.2.1.tgz |
|
Hbase |
hbase-0.98.6-cdh5.2.0 |
|
Hive |
hive-0.13.1-cdh5.2.0 |
|
Storm |
apache-storm-0.9.4.tar.gz |
|
Spark |
spark-1.3.0-bin-hadoop2.4.tgz |
1.2机器配置
宿主机及虚拟机配置情况,见表
虚拟机master |
虚拟机slave1 |
虚拟机slave2 |
|
内存 |
1G |
1G |
1G |
硬盘 |
20G |
20G |
20G |
网络 |
192.168.163.10 |
192.168.163.11 |
192.168.163.12 |
说明:虚拟机内存及硬盘的大小需要根据宿主机情况,进行合理分配。
2虚拟机配置
2.1新建虚拟机
文件 - 新建虚拟机
2.2虚拟网络配置
编辑 - 虚拟网络编辑器
3 CentOS安装及配置
3.1系统安装
3.2系统配置
3.2.1防火墙配置
关闭防火墙,运行完成后查看防火墙关闭状态
3.2.2 SElinux配置
打开SElinux配置文件,将SELINUX的值改成disabled,即关闭安全服务。
修改配置文件后在下次启动时才生效,所以当前正在运行的selinux服务需要手动关闭。
3.2.3 IP配置
配置IP,打开配置文件
按下图进行配置,IP地址段和网关,参见虚拟机设置
重启网络服务,以便生效
查看网络信息
ping百度,看是否已经联网成功
3.2.4安装vim
通过yum install安装vim
出现complete后,安装成功
3.2.5新建用户
新建系统用户,用户名为hadoop,密码为password
3.2.6 SSH客户端连接
打开Xshell,新建会话
3.2.7 FTP客户端连接
按照3.2.6登陆会话后,可直接通过菜单栏的文件传输按钮,建立FTP连接
3.2.8克隆虚拟机
至此,系统的基本配置已设置完成。由于虚拟机一共有三台,每台都按照上面的过程进行设置是较为费时的,所以采用克隆虚拟机的办法。
克隆完成后,启动slave1和slave2虚拟机。由于克隆后的系统MAC地址都是一样的,造成MAC地址冲突,无法连接网络,按下面步骤进行设置。以slave1为例:
打开配置文件
删除Mac地址行HWADDR,设置slave1节点的IP为192.168.163.11
删除/etc/udev/rules.d/70-persistent-net.rules
slave2节点也按照上面步骤进行操作,IP设置为192.168.163.12
重新启动slave1和slave2两台虚拟机,通过ifconfig命令查看IP是否正确,网络是否畅通。
3.2.9设置hostname
打开hostname配置文件
将HOSTNAME设置为master(slave1虚拟机设置为slave1,slave2虚拟机设置为slave2)
重启虚拟机,通过hostname命令查看是否修改成功
3.2.10设置hosts
打开hosts配置文件
将master,slave1,slave2加到hosts文件。三台虚拟机的hosts文件都要按下图进行设置
配置完成后,尝试ping各个节点的hostname,看是否配置成功。
3.2.11配置SSH免密码登陆
3.2.11.1配置master节点到slave节点的免密码登陆
查看是否安装有ssh和rsync,可以看到ssh已经安装,但rsync还没有安装
通过yum安装rsync
安装完毕后,重启ssh服务
在master节点上用hadoop用户登陆,并进入该用户的家目录。执行命令,生成公钥和私钥。
查看用户目录下,是否生成.ssh文件夹,公钥和私钥文件是否已经生成
把id_rsa.pub公钥追加到授权文件中
修改授权文件的读写权限,如果不进行设置,在验证时仍提示要输入密码
切换到root用户,修改ssh配置文件
删除这三项前面的注释符号
重启SSH服务
SSH登陆自己,看是否能成功,没问题的话,继续往下走
切换到hadoop用户,将master上生成的公钥,复制到slave节点上,例如传到slave1。
询问是否连接时,输入yes。询问密码时,输入slave1上hadoop用户的登陆密码。
在slave1上用hadoop用户登录,查看是否已经有id_rsa.pub这个文件
查看/home/hadoop下是否有.ssh文件夹
如果没有此文件夹,需要手动创建。并把权限修改为700
把master的公钥追加到slave2的授权文件中,并修改slave2授权文件的权限。
切换到root用户,修改ssh配置文件
删除这三项前面的注释符号
重启SSH服务
在master节点上,测试是否能够免密码登陆到slave1节点
在slave1节点上,删除刚才master节点发过来的公钥文件
按照上面步骤,完成master到slave2节点的免密码配置。
3.2.11.2 slave节点到master节点的免密码登陆
以slave1为例,在slave1上生成自己的公钥和私钥
查看是否生成
追加到授权文件中
把公钥复制到master节点
切换到master节点,查看公钥文件是否已经过来,然后把公钥文件追加到授权文件,最后删除公钥文件。
在slave1节点测试是否可以免密码登陆到master节点。
至此slave1到master的免密码登陆配置完成,slave2到master也照此步骤进行即可。
3.2.12安装jdk
通过3.2.7中的FTP,将jdk安装包放入/home/hadoop/soft中,并解压,解压后的目录为jdk1.7.0_75。
切换到root用户,打开环境变量配置文件
在文件末尾增加以下内容,并用wq命令进行保存并退出vim
使配置文件生效
检验jdk是否配置成功
4 Hadoop配置与优化
4.1配置
4.1.1最大文件打开数
4.1.2上传安装包
上传hadoop-2.5.0-cdh5.2.0.tar.gz到/home/hadoop/soft。
4.1.3解压安装包
使用tar –zxvf hadoop-2.5.0-cdh5.2.0.tar.gz 命令,进行解压。
4.1.4删除安装包
使用rm –f hadoop-2.5.0-cdh5.2.0.tar.gz删除hadoop安装包。
4.1.5配置hadoop-env.sh
进入/home/hadoop/soft/hadoop-2.5.0-cdh5.2.0/etc/hadoop,打开hadoop-env.sh,修改JAVA_HOME。
export JAVA_HOME=/home/hadoop/soft/jdk1.7.0_75
4.1.6配置 core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
4.1.7配置hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
</configuration>
4.1.8配置mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://master:9001</value>
</property>
</configuration>
4.1.9配置masters文件
master
4.1.10配置slaves文件
slave1
slave2
4.1.11复制到其他节点
将master上配置好的hadoop,复制到其他节点。为了提高复制速度,可以采用先打包,然后复制,然后再解压的办法。
打包命令:tar -zcvf hadoop-2.5.0-cdh5.2.0.tar.gz hadoop-2.5.0-cdh5.2.0/
复制命令:scp hadoop-2.5.0-cdh5.2.0.tar.gz [email protected]:~/
4.1.12格式化namenode
进入 /home/hadoop/soft/hadoop-2.5.0-cdh5.2.0/bin
执行 ./hadoop namenode –format
4.1.13启动hadoop
进入 /home/hadoop/soft/hadoop-2.5.0-cdh5.2.0/sbin
执行 ./start-all.sh
4.1.14查看启动结果
在master中通过jps命令查看,包含以下进程:
NameNode
SecondaryNameNode
ResourceManager
在slave中通过jps命令查看,包含以下进程
DataNode
NodeManager
在浏览器中打开以下地址查看
Namenode information:http://192.168.163.101:50070/
All applications:http://192.168.163.10:8088
5 Zookeeper配置与优化
5.1配置
5.1.1上传安装包
上传zookeeper-3.4.5-cdh5.2.0.tar.gz到/home/hadoop/soft目录下。
5.1.2解压安装包
使用tar -zxvf zookeeper-3.4.5-cdh5.2.0.tar.gz命令,进行解压。
5.1.3删除安装包
使用rm -f zookeeper-3.4.5-cdh5.2.0.tar.gz,删除安装包。
5.1.4配置zoo.cfg
进入/home/hadoop/soft/zookeeper-3.4.5-cdh5.2.0/conf,复制zoo_sample.cfg,并改名为zoo.cfg
修改dataDir=/home/hadoop/zookeeperdata
新增以下参数
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
5.1.5复制到其他节点
将master上配置好的zookeeper,复制到其他节点。为了提高复制速度,可以采用先打包,然后复制,然后再解压的办法。
打包命令:tar -zcvf zookeeper-3.4.5-cdh5.2.0.tar.gz zookeeper-3.4.5-cdh5.2.0/
复制命令:scp zookeeper-3.4.5-cdh5.2.0.tar.gz [email protected]:~/
5.1.6配置server_id
手动创建好5.1.4中的目录:mkdir /home/hadoop/zookeeperdata
在目录下创建文件,文件名为“myid”:touch myid
编辑该文件:vim myid
根据5.1.4中设置的id号,填入相应的id,如果是master节点,myid的内容就是1。
5.1.7启动zookeeper
进入soft/zookeeper-3.4.5-cdh5.2.0/bin/
执行./zkServer.sh start
每个节点都要手动启动。
5.1.8查看启动结果
启动后,执行./zkServer.sh status,可以查看该节点是follower还是leader。
在master或者slave节点上,通过jps查看,进程名为:
QuorumPeerMain
6 Hbase配置与优化
6.1配置
6.1.1上传安装包
上传hbase-0.98.6-cdh5.2.0.tar.gz到/home/hadoop/soft目录下。
6.1.2解压安装包
使用tar -zxvf hbase-0.98.6-cdh5.2.0.tar.gz命令,进行解压。
6.1.3删除安装包
使用rm -f hbase-0.98.6-cdh5.2.0.tar.gz,删除安装包。
6.1.4配置hbase-env.sh
export JAVA_HOME=/home/hadoop/soft/jdk1.7.0_75/
export HBASE_HOME=/home/hadoop/soft/hbase-0.98.6-cdh5.2.0
export HBASE_CLASSPATH=/home/hadoop/soft/hadoop-2.5.0-cdh5.2.0/etc/hadoop
export HBASE_HEAPSIZE=200
export HBASE_OPTS="-ea -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
export HBASE_LOG_DIR=/home/hadoop/soft/hbase-0.98.6-cdh5.2.0/logs
export HBASE_PID_DIR=/home/hadoop/soft/hadoop-2.5.0-cdh5.2.0/pids
export HBASE_MANAGES_ZK=false
6.1.5配置hbase-site.xml
<configuration>
<property>
<name>hbase.tmp.dir</name>
<value>file:/home/hadoop/hbasetmp</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>The mode the cluster will be in. Possible values are
false: standalone and pseudo-distributed setups with managed Zookeeper
true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh)
</description>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description>Property from ZooKeeper‘s config zoo.cfg.
The port at which the clients will connect.
</description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
<description>Comma separated list of servers in the ZooKeeper Quorum.
For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
By default this is set to localhost for local and pseudo-distributed modes
of operation. For a fully-distributed setup, this should be set to a full
list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh
this is the list of servers which we will start/stop ZooKeeper on.
</description>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>file:/home/hadoop/zookeeperdata</value>
<description>Property from ZooKeeper‘s config zoo.cfg.
The directory where the snapshot is stored.
</description>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://master:60000</value>
</property>
</configuration>
6.1.6配置regionservers
slave1
slave2
6.1.7修改hdfs-site.xml
修改hadoop集群配置文件hdfs-site.xml,如果没有下面这一项,则在此文件中增加
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
每台节点的配置文件都要修改。
6.1.8复制到其他节点
将master上配置好的hbase,复制到其他节点。为了提高复制速度,可以采用先打包,然后复制,然后再解压的办法。
打包命令:tar -zcvf hbase-0.98.6-cdh5.2.0.tar.gz hbase-0.98.6-cdh5.2.0/
复制命令:scp hbase-0.98.6-cdh5.2.0.tar.gz [email protected]:~/
6.1.9启动hbase
在master节点,进入hbase-0.98.6-cdh5.2.0/bin/
执行./start-hbase.sh
6.1.10查看启动结果
在master节点,通过jps命令查看,进程名为
HMaster
在slave节点,通过jps命令查看,进程名为
HRegionServer
在浏览器中打开以下地址查看
Master: http://192.168.163.10:60010
RegionServer: http://192.168.163.11:60030
7 Kafka配置与优化
7.1配置
7.1.1上传安装包
上传kafka_2.10-0.8.2.1.tgz到/home/hadoop/soft目录下。
7.1.2解压安装包
使用tar -zxvf kafka_2.10-0.8.2.1.tgz命令,进行解压。
7.1.3删除安装包
使用rm -f kafka_2.10-0.8.2.1.tgz,删除安装包。
7.1.4配置server.properties
master节点的server.properties配置如下:
broker.id=0
host.name=master
log.dirs=/home/hadoop/kafka/kafka-logs
zookeeper.connect=master:2181,slave1:2181,slave2:2181
slave1节点的server.properties配置如下:
broker.id=1
host.name=slave1
log.dirs=/home/hadoop/kafka/kafka-logs
zookeeper.connect=master:2181,slave1:2181,slave2:2181
slave2节点的server.properties配置如下:
broker.id=2
host.name=slave2
log.dirs=/home/hadoop/kafka/kafka-logs
zookeeper.connect=master:2181,slave1:2181,slave2:2181
7.1.5启动kafka
每台节点都要启动
nohup ./kafka_2.10-0.8.2.1/bin/kafka-server-start.sh kafka_2.10-0.8.2.1/config/server.properties &
7.1.6查看启动结果
在master和slave节点上,通过jps命令查看,进程名为
kafka
创建一个名称为test的topic
./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
创建producer
./bin/kafka-console-producer.sh --broker-list 192.168.163.10:9092 --topic test
创建consumer
./bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test
8 Hive配置与优化
8.1配置
8.1.1上传安装包
上传hive-0.13.1-cdh5.2.0.tar.gz到/home/hadoop/soft目录下。
需要注意的是,hive只需安装在一个节点,不用每个节点都安装。
8.1.2解压安装包
使用tar -zxvf hive-0.13.1-cdh5.2.0.tar.gz命令,进行解压。
8.1.3删除安装包
使用rm -f hive-0.13.1-cdh5.2.0.tar.gz,删除安装包。
8.1.4配置hive-site.xml
进入hive 的/conf目录中,将hive-default.xml.template复制一份,重命名为hive-site.xml
hive需要数据库配合,例如mysql或者sqlserver,这里以mysql为例。
配置hive-site.xml
将mysql-ip需要替换成你的mysql 地址
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://mysql-ip:3306/dbhive?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> dbhive </value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value> dbhive </value>
<description>password to use against metastore database</description>
</property>
8.1.5配置环境变量
切换到root用户,打开环境变量配置文件 vim /etc/profile
增加以下内容
执行source /etc/profile,使环境变量生效
8.1.6配置mysql驱动包
将mysql的连接驱动包mysql-connector-java-5.1.35-bin.jar放入/ hive-0.13.1-cdh5.2.0/lib目录下
8.1.7配置mysql
登陆mysql:
mysql –u root –p
创建数据库:
create database dbhive;
新建用户:
create user dbhive identified by ‘dbhive‘;
设置权限
grant all privileges on dbhive.* to [email protected]‘%‘ identified by ‘dbhive‘;
grant all privileges on dbhive.* to dbhive @localhost identified by ‘ dbhive ‘;
8.1.8启动hive
进入hive的bin目录,执行./hive
8.1.9查看启动结果
通过jps命令查看,进程名为RunJar
执行./hive启动hive后,可以进行查询。
例如执行show tables;
9 Storm配置与优化
9.1配置
9.1.1上传安装包
上传apache-storm-0.9.4.tar.gz到/home/hadoop/soft目录下。
9.1.2解压安装包
使用tar -zxvf apache-storm-0.9.4.tar.gz命令,进行解压。
9.1.3删除安装包
使用rm -f apache-storm-0.9.4.tar.gz,删除安装包。
9.1.4配置storm.yaml
注意,yaml配置文件对格式要求较高,编写时需要仔细。
storm.zookeeper.servers:
- "master"
- "slave1"
- "slave2"
nimbus.host: "master"
ui.port: 12321
supervisor.slots.ports:
- 6700
- 6701
9.1.5启动storm
在master上启动ui 和nimbus
nohup ./apache-storm-0.9.4/bin/storm ui &
nohup ./apache-storm-0.9.4/bin/storm nimbus &
在slave上启动supervisor
nohup ./apache-storm-0.9.4/bin/storm supervisor &
9.1.6查看启动结果
在master节点上,通过jps命令查看,进程名为
core
nimbus
在slave节点上,通过jps命令查看,进程名为
supervisor
在浏览器中打开以下地址查看
Storm UI:http://192.168.163.10:12321
10 Spark配置与优化
10.1配置
10.1.1上传安装包
上传spark-1.3.0-bin-hadoop2.4.tgz到/home/hadoop/soft目录下。
10.1.2解压安装包
使用tar -zxvf spark-1.3.0-bin-hadoop2.4.tgz命令,进行解压。
10.1.3删除安装包
使用rm -f spark-1.3.0-bin-hadoop2.4.tgz,删除安装包。
10.1.4配置conf/slaves
master
slave1
slave2
10.1.5配置conf/spark-env.sh
export JAVA_HOME=/home/hadoop/soft/jdk1.7.0_75
export SPARK_MASTER_IP=master
export SPARK_MASTER_WEBUI_PORT=8011
export SPARK_MASTER_PORT=7071
export SPARK_WORKER_CORES=2
export SPARK_WORKER_MEMORY=500m
export SPARK_WORKER_INSTANCES=2
10.1.6启动spark
将以上两个配置文件复制到其他节点后,在master节点执行
./spark-1.3.0-bin-hadoop2.4/sbin/start-all.sh
10.1.7查看启动结果
在master和slave节点上,通过jps命令查看,进程名为
Master
Worker
在浏览器中打开以下地址查看
Spark UI:http://192.168.163.10:8011/