标签:
Hadoop集群安装配置文档
日期 | 内容 | 修订人 |
2015.6.3 | 文档初始化 | 易新 |
目录
本文档针对的系统版本和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 |
宿主机及虚拟机配置情况,见表
虚拟机master | 虚拟机slave1 | 虚拟机slave2 | |
内存 | 1G | 1G | 1G |
硬盘 | 20G | 20G | 20G |
网络 | 192.168.163.10 | 192.168.163.11 | 192.168.163.12 |
说明:虚拟机内存及硬盘的大小需要根据宿主机情况,进行合理分配。
文件 - 新建虚拟机
编辑 - 虚拟网络编辑器
关闭防火墙,运行完成后查看防火墙关闭状态
打开SElinux配置文件,将SELINUX的值改成disabled,即关闭安全服务。
修改配置文件后在下次启动时才生效,所以当前正在运行的selinux服务需要手动关闭。
配置IP,打开配置文件
按下图进行配置,IP地址段和网关,参见虚拟机设置
重启网络服务,以便生效
查看网络信息
ping百度,看是否已经联网成功
通过yum install安装vim
出现complete后,安装成功
新建系统用户,用户名为hadoop,密码为password
打开Xshell,新建会话
按照3.2.6登陆会话后,可直接通过菜单栏的文件传输按钮,建立FTP连接
至此,系统的基本配置已设置完成。由于虚拟机一共有三台,每台都按照上面的过程进行设置是较为费时的,所以采用克隆虚拟机的办法。
克隆完成后,启动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是否正确,网络是否畅通。
打开hostname配置文件
将HOSTNAME设置为master(slave1虚拟机设置为slave1,slave2虚拟机设置为slave2)
重启虚拟机,通过hostname命令查看是否修改成功
打开hosts配置文件
将master,slave1,slave2加到hosts文件。三台虚拟机的hosts文件都要按下图进行设置
配置完成后,尝试ping各个节点的hostname,看是否配置成功。
查看是否安装有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节点的免密码配置。
以slave1为例,在slave1上生成自己的公钥和私钥
查看是否生成
追加到授权文件中
把公钥复制到master节点
切换到master节点,查看公钥文件是否已经过来,然后把公钥文件追加到授权文件,最后删除公钥文件。
在slave1节点测试是否可以免密码登陆到master节点。
至此slave1到master的免密码登陆配置完成,slave2到master也照此步骤进行即可。
通过3.2.7中的FTP,将jdk安装包放入/home/hadoop/soft中,并解压,解压后的目录为jdk1.7.0_75。
切换到root用户,打开环境变量配置文件
在文件末尾增加以下内容,并用wq命令进行保存并退出vim
使配置文件生效
检验jdk是否配置成功
上传hadoop-2.5.0-cdh5.2.0.tar.gz到/home/hadoop/soft。
使用tar –zxvf hadoop-2.5.0-cdh5.2.0.tar.gz 命令,进行解压。
使用rm –f hadoop-2.5.0-cdh5.2.0.tar.gz删除hadoop安装包。
进入/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
<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>
<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>
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://master:9001</value>
</property>
</configuration>
master
slave1
slave2
将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 hadoop@slave1:~/
进入 /home/hadoop/soft/hadoop-2.5.0-cdh5.2.0/bin
执行 ./hadoop namenode –format
进入 /home/hadoop/soft/hadoop-2.5.0-cdh5.2.0/sbin
执行 ./start-all.sh
在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
上传zookeeper-3.4.5-cdh5.2.0.tar.gz到/home/hadoop/soft目录下。
使用tar -zxvf zookeeper-3.4.5-cdh5.2.0.tar.gz命令,进行解压。
使用rm -f zookeeper-3.4.5-cdh5.2.0.tar.gz,删除安装包。
进入/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
将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 hadoop@slave2:~/
手动创建好5.1.4中的目录:mkdir /home/hadoop/zookeeperdata
在目录下创建文件,文件名为“myid”:touch myid
编辑该文件:vim myid
根据5.1.4中设置的id号,填入相应的id,如果是master节点,myid的内容就是1。
进入soft/zookeeper-3.4.5-cdh5.2.0/bin/
执行./zkServer.sh start
每个节点都要手动启动。
启动后,执行./zkServer.sh status,可以查看该节点是follower还是leader。
在master或者slave节点上,通过jps查看,进程名为:
QuorumPeerMain
上传hbase-0.98.6-cdh5.2.0.tar.gz到/home/hadoop/soft目录下。
使用tar -zxvf hbase-0.98.6-cdh5.2.0.tar.gz命令,进行解压。
使用rm -f hbase-0.98.6-cdh5.2.0.tar.gz,删除安装包。
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
<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>
slave1
slave2
修改hadoop集群配置文件hdfs-site.xml,如果没有下面这一项,则在此文件中增加
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
每台节点的配置文件都要修改。
将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 hadoop@slave2:~/
在master节点,进入hbase-0.98.6-cdh5.2.0/bin/
执行./start-hbase.sh
在master节点,通过jps命令查看,进程名为
HMaster
在slave节点,通过jps命令查看,进程名为
HRegionServer
在浏览器中打开以下地址查看
Master: http://192.168.163.10:60010
RegionServer: http://192.168.163.11:60030
上传kafka_2.10-0.8.2.1.tgz到/home/hadoop/soft目录下。
使用tar -zxvf kafka_2.10-0.8.2.1.tgz命令,进行解压。
使用rm -f kafka_2.10-0.8.2.1.tgz,删除安装包。
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
每台节点都要启动
nohup ./kafka_2.10-0.8.2.1/bin/kafka-server-start.sh kafka_2.10-0.8.2.1/config/server.properties &
在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
上传hive-0.13.1-cdh5.2.0.tar.gz到/home/hadoop/soft目录下。
需要注意的是,hive只需安装在一个节点,不用每个节点都安装。
使用tar -zxvf hive-0.13.1-cdh5.2.0.tar.gz命令,进行解压。
使用rm -f hive-0.13.1-cdh5.2.0.tar.gz,删除安装包。
进入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>
切换到root用户,打开环境变量配置文件 vim /etc/profile
增加以下内容
执行source /etc/profile,使环境变量生效
将mysql的连接驱动包mysql-connector-java-5.1.35-bin.jar放入/ hive-0.13.1-cdh5.2.0/lib目录下
登陆mysql:
mysql –u root –p
创建数据库:
create database dbhive;
新建用户:
create user dbhive identified by ‘dbhive‘;
设置权限
grant all privileges on dbhive.* to dbhive@‘%‘ identified by ‘dbhive‘;
grant all privileges on dbhive.* to dbhive @localhost identified by ‘ dbhive ‘;
进入hive的bin目录,执行./hive
通过jps命令查看,进程名为RunJar
执行./hive启动hive后,可以进行查询。
例如执行show tables;
上传apache-storm-0.9.4.tar.gz到/home/hadoop/soft目录下。
使用tar -zxvf apache-storm-0.9.4.tar.gz命令,进行解压。
使用rm -f apache-storm-0.9.4.tar.gz,删除安装包。
注意,yaml配置文件对格式要求较高,编写时需要仔细。
storm.zookeeper.servers:
- "master"
- "slave1"
- "slave2"
nimbus.host: "master"
ui.port: 12321
supervisor.slots.ports:
- 6700
- 6701
在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 &
在master节点上,通过jps命令查看,进程名为
core
nimbus
在slave节点上,通过jps命令查看,进程名为
supervisor
在浏览器中打开以下地址查看
Storm UI:http://192.168.163.10:12321
上传spark-1.3.0-bin-hadoop2.4.tgz到/home/hadoop/soft目录下。
使用tar -zxvf spark-1.3.0-bin-hadoop2.4.tgz命令,进行解压。
使用rm -f spark-1.3.0-bin-hadoop2.4.tgz,删除安装包。
master
slave1
slave2
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
将以上两个配置文件复制到其他节点后,在master节点执行
./spark-1.3.0-bin-hadoop2.4/sbin/start-all.sh
在master和slave节点上,通过jps命令查看,进程名为
Master
Worker
在浏览器中打开以下地址查看
Spark UI:http://192.168.163.10:8011/
标签:
原文地址:http://www.cnblogs.com/yixing1337/p/4848750.html