【大数据】Hadoop集群环境搭建
一、环境说明:
组件 | 版本 |
---|---|
Java | Oracle-JDK 1.8 |
Hadoop | 2.10.0 |
Zookeeper | 3.5.7 |
Spark | spark-2.4.4-bin-hadoop2.7 |
HBase | 2.2.3 |
Hive | 3.1.2 |
三台centos7服务器,配置如下
服务器 | 配置 | IP |
---|---|---|
Master | 4核CPU、3G内存 | 192.168.254.137 |
Slave1 | 4核CPU、3G内存 | 192.168.254.140 |
Slave2 | 4核CPU、3G内存 | 192.168.254.139 |
配置文件及安装包下载地址:https://pan.baidu.com/s/1A5d7kJ60btSOX95H2Ll5sg
提取码:7rlk
二、安装JDK
1.解压jdk1.8.0_131.tar.gz至/data/ent/java
2.配置环境变量(vim /etc/profile)添加以下信息:
export JAVA_HOME=/data/ent/java/jdk1.8.0_131
export JRE_HOME=/data/ent/java/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
3.验证是否安装成功
. /etc/profile ; java -version
三、 安装hadoop
1. 解压hadoop-2.10.0.tar.gz至/data/ent/hadoop
2. 配置环境变量(vim /etc/profile)添加以下信息:
export HADOOP_HOME=/data/ent/hadoop/hadoop-2.10.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3. 验证是否安装成功
. /etc/profile ; hadoop version
4. Hadoop集群搭建
4.1每个节点均配置如下机器名
每台机器关闭防火墙
systemctl disable firewalld.service ; systemctl stop firewalld.service
分别设置主机名:
hostnamectl --static set-hostname master
hostnamectl --static set-hostname slave1
hostnamectl --static set-hostname slave2
vim /etc/hosts追加以下配置
192.168.254.137 master
192.168.254.140 slave1
192.168.254.139 slave2
4.2 对master配置节点ssh免密登录
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
4.3 配置文件设置
每台机器,${HADOOP_HOME}/etc/hadoop/hadoop-env.sh文件最后添加
export JAVA_HOME=/data/ent/java/jdk1.8.0_131 #java路径一定要配,hadoop不会去读/etc/profile里面的java配置
export HDFS_NAMENODE_USER=root #以哪个用户启动HDFS NAMENODE
export HDFS_DATANODE_USER=root #以哪个用户启动HDFS DATANODE
export HDFS_SECONDARYNAMENODE_USER=root #以哪个用户启动HDFS SECONDARYNAMENODE
每台机器, ${HADOOP_HOME}/etc/hadoop/core-site.xml编辑为如下信息:
<configuration>
<!-- 默认情况下是在tmp目录,重启数据就会丢失 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/var/lib/hadoop</value>
</property>
<!-- 默认文件系统 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
每台机器,${HADOOP_HOME}/etc/hadoop/hdfs-site.xml编辑为如下信息
<configuration>
<!--hdfs副本数-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
每台机器,${HADOOP_HOME}/etc/hadoop/yarn-site.xml编辑为如下信息
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- 配置运行资源管理器的主机名 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- 配置运行资源管理器的RPC服务器的主机名和端口 -->
<!--
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
-->
<!-- 节点管理器运行的附加服务列表 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 配置节点管理器分配给容器的物理内存容量 -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<!-- 配置节点管理器分配给容器的核数量 -->
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>4</value>
</property>
</configuration>
每台机器,${HADOOP_HOME}/etc/hadoop/mapred-site.xml编辑为如下信息
cp ${HADOOP_HOME}/etc/hadoop/mapred-site.xml.template ${HADOOP_HOME}/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
每台机器,${HADOOP_HOME}/etc/hadoop/slaves编辑为如下信息
slave1
slave2
4.4 master启动HDFS和YARN
cd ${HADOOP_HOME}/sbin
hdfs namenode -format #初始化hdfs,如果重启集群以前数据还在,就不用再初始化,直接运行下一条命令
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
4.5 检查是否安装成功(每台机器运行jps,正常显示如下)
mster: NameNode,Secondary NameNode,ResourceManager, JobHistoryServer
slave1: DataNode,NodeManager
slave2: DataNode,NodeManager
4.6 WEB端管理后台
Hadoop2.x的namenode界面访问端口默认是:50070
Hadoop3.x的namenode界面访问端口默认是:9870
Namenode管理地址:http://192.168.254.137:50070
ResourceManager管理地址:http://192.168.254.137:8088
4.7 样例运行
cd ${HADOOP_HOME}
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/root
bin/hdfs dfs -mkdir input
bin/hdfs dfs -put etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar grep input output 'dfs[a-z.]+'
bin/hdfs dfs -get output output
cat output/*
四、 安装Zookeeper
1.解压apache-zookeeper-3.5.7-bin.tar.gz至/data/ent/zookeeper
2.配置环境变量(vim /etc/profile)添加以下信息:
export ZK_HOME=/data/ent/zookeeper/apache-zookeeper-3.5.7-bin
export PATH=$PATH:$ZK_HOME/bin
3.添加配置文件
3.1 在$ZK_HOME /conf添加zoo.cfg文件
cp zoo_sample.cfg zoo.cfg
3.2修改以下信息:
dataDir=/data/ent/zookeeper/ apache-zookeeper-3.5.7-bin/data
dataLogDir=/data/ent/zookeeper/apache-zookeeper-3.5.7-bin/logs
server.0=master:2888:3888
server.1=slave1:2888:3888
server.2=slave2:2888:3888
3.3创建data和logs目录
mkdir -p /data/ent/zookeeper/apache-zookeeper-3.5.7-bin/data
mkdir -p /data/ent/zookeeper/apache-zookeeper-3.5.7-bin/logs
3.4 data目录下新建myid文件
echo 0 > $ZK_HOME/data/myid #master机器执行
echo 1 > $ZK_HOME/data/myid #slave1机器执行
echo 2 > $ZK_HOME/data/myid #slave2机器执行
4.启动
. /etc/profile ; /data/ent/zookeeper/apache-zookeeper-3.5.7-bin/bin/zkServer.sh start
5.验证是否安装成功
/data/ent/zookeeper/apache-zookeeper-3.5.7-bin/bin/zkServer.sh status
6.安装zkui
将zkui文件夹复制至master的/data/ent/zookeeper/zkui
运行start.sh启动zkui
(配置appconfig
cd /data/ent/zookeeper/apache-zookeeper-3.5.7-bin/bin
zkCli.sh -server master:2181,slave1:2181,slave2:2181
create /appconfig "my appconfig"
create /appconfig/hosts 192.168.254.137)
五、安装Spark
1.解压spark-2.4.4-bin-hadoop2.7.tgz至/data/ent/spark
2.配置环境变量(vim /etc/profile)添加以下信息:
export SPARK_HOME=/data/ent/spark/spark-2.4.4-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
3. 各节点配置文件保存至$SPARK_HOME/conf
4.验证是否安装成功
【两个master(master和slave1),两个workder(slave1,slave2)】
master节点运行:
. /etc/profile ; /data/ent/spark/spark-2.4.4-bin-hadoop2.7/sbin/start-all.sh
slave1节点运行:
. /etc/profile ; /data/ent/spark/spark-2.4.4-bin-hadoop2.7/sbin/start-master.sh
【备注】
1.当要是用yarn资源管理器时,不需要启动${SPARK_HOME}/sbin/start-all.sh,只需要启动${HADOOP_HOME}/sbin/start-yarn.sh即可,运行spark任务是用: spark-shell/spark-submit --master yarn --deploy-mode client/cluster即可
2.当要使用spark自带的standlone或者local模式运行,则需要启动${SPARK_HOME} /sbin/start-all.sh
当${SPARK_HOME}/sbin/start-all.sh和${HADOOP_HOME}/sbin/start-yarn.sh都启动时,任务到底在通过哪个资源管理器进行管理运行,则要看提交任务的方式,如:
1>spark-shell/spark-submit --master yarn --deploy-mode client/cluster //spark on yarn
2>spark-shell/spark-submit --master spark://master:7077 //standlone
3>spark-shell/spark-submit --master local[*] //本地模式
5.spark web ui
http://master:8080/
http://slave1:8080/
6.运行命令
// yarn集群模式
spark-shell/spark-submit --master yarn --deploy-mode client/cluster
//standlone集群模式
spark-shell/spark-submit --master spark://master:7077
//本地模式(用于测试)
spark-shell/spark-submit --master local[*]
【备注】spark-shell/spark-submit二选一,client/cluster二选一,例子:
root@hdp1 /mnt]#spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --driver-memory 2g --executor-memory 1g --executor-cores 1 --queue thequeue /mnt/software/spark-2.2.0-bin-hadoop2.6/examples/jars/spark-examples*.jar 10
六、安装HBase
1.解压hbase-2.2.3-bin.tar.gz至/data/ent/hbase
2.配置环境变量(vim /etc/profile)添加以下信息:
export HBASE_HOME=/data/ent/hbase/hbase-2.2.3
export PATH=$PATH:$HBASE_HOME/bin
3.验证是否安装成功
. /etc/profile ; hbase shell
4.HBase集群搭建
4.1配置文件保存至各个节点$HBASE_HOME/conf
4.2 运行
cd $HBASE_HOME/bin
./start-hbase.sh
4.3 Master Web UI
http://master:16010/master-status
4.4 运行hbase shell命令行操作hbase
七、安装Hive
1.解压apache-hive-3.1.2-bin.tar.gz至/data/ent/hive
2.配置环境变量(vim /etc/profile)添加以下信息:
export HIVE_HOME=/data/ent/hive/apache-hive-3.1.2-bin
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:$HIVE_HOME/bin
3.验证是否安装成功
. /etc/profile ; hive --version
4.Hive集群搭建
4.1 mysql创建hive数据库和hive用户,例如:
create database hive default charset utf8 collate utf8_general_ci;
create user 'hive'@'%' identified by '123456';
grant all privileges on hive.* to 'hive'@'%' identified by '123456';
flush privileges;
4.2将配置文件传至$HIVE_HOME/conf
4.3初始化hive
cd /data/ent/hive/apache-hive-3.1.2-bin/bin
schematool -dbType mysql -initSchema
4.4 启动hive
hive