大数据环境搭建
一、准备环境
说明:为了简化和统一安装,这里对安装包的上传目录和安装目录进行统一,如果没有特殊说明,则默认上传和安装至以下目录:
sudo mkdir /export/software/
sudo mkdir /export/servsers/
1. Java环境
1.1 卸载系统默认安装的OpenJDK
1.2 安装JDK
-
上传安装包至你的软件包目录下(看自己的习惯),这里以/export/software/ 为例,jdk包为jdk-8u141-linux-x64.tar.gz -
修改安装包权限并解压至java工作目录(看自己的习惯),这里以/export/servers/ 为例 chmod 755 /export/softwares/jdk-8u141-linux-x64.tar.gz
tar -zxvf /export/softwares/jdk-8u141-linux-x64.tar.gz -C /export/servers/
1.3 配置环境变量
-
使用命令:sudo vim /etc/profile 编辑配置文件,添加 export JAVA_HOME=/export/servers/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin
-
重新编译加载配置文件 sudo source /etc/profile
-
测试环境 java -version
出现下图则表示jdk安装成功 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b1J60SpE-1628870362667)(http://picbed.vicjax.top/Install&Config/20191121145003jdk安装.png)]
注:多台节点请确保每个节点的jdk都安装成功
2. Scala安装(非必须)
scala可以搭建在自己的开发环境中,如果不需要在服务器手动运行scala,则不需要在服务器安装scala
scala的安装和java类似
-
下载 下载地址:https://www.scala-lang.org/download/ 选择gz包: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6PdcmsMd-1628870362670)(http://picbed.vicjax.top/Install&Config/20191123004849scala-env-download.png)] -
上传 -
解压 tar -zxvf /export/softwares/scala-2.13.1.tgz -C /export/servers/
-
配置环境变量 vim /etc/profile
export SCALA_HOME=/export/servers/scala-2.13.1
export PATH=:$PATH:$SCALA_HOME/bin
source /etc/profile
-
测试 scala --version
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kJd9NHpe-1628870362672)(http://picbed.vicjax.top/Install&Config/20191123005903scala-env-test.png)]
3. Zookeeper(CDH版本)搭建
为与cdh版本的hadoop环境对应,这里使用cdh版本的zookeeper
3.1 安装zookeeper
-
下载上传 /export/softwares/zookeeper-3.4.5-cdh5.14.0.tar.gz
-
解压 tar -zxvf /export/softwares/zookeeper-3.4.5-cdh5.14.0.tar.gz -C /export/servers/
-
创建数据存放目录 mkdir -p /export/servers/zookeeper-3.4.5-cdh5.14.0/zkdatas
3.2 配置zookeeper
-
主机名IP地址映射 sudo vim /etc/hosts
192.168.100.100 node01
192.168.100.200 node02
192.168.100.300 node03
reboot
-
复制配置文件 cp /export/servers/zookeeper-3.4.5-cdh5.14.0/conf/zoo_sample.cfg /export/servers/zookeeper-3.4.5-cdh5.14.0/conf/zoo.cfg
-
修改配置文件 vim /export/servers/zookeeper-3.4.5-cdh5.14.0/conf/zoo.cfg
dataDir=/export/servers/zookeeper-3.4.5-cdh5.14.0/zkdatas
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888
注: 这里的node01、node02、node03是ip映射之后的主机名,若有多个节点,请自行映射ip之后添加即可
-
创建节点myid echo 1 > /export/servers/zookeeper-3.4.5-cdh5.14.0/zkdatas/myid
3.3 多节点分发
3.4 启动zookeeper
-
启动 bash /export/servers/zookeeper-3.4.5-cdh5.14.0/bin/zkServer.sh start
-
查看 bash /export/servers/zookeeper-3.4.5-cdh5.14.0/bin/zkServer.sh status
-
停止 bash /export/servers/zookeeper-3.4.5-cdh5.14.0/bin/zkServer.sh stop
4 Mysql的安装
如果使用hive,请在该节点安装MySQL
4.1 添加mysql yum源
在centOS上直接使用yum install mysql 安装,最后安装上的会是MariaDB,所以要先添加mysql yum 源
rpm -Uvh https://repo.mysql.com//mysql80-community-release-el7-2.noarch.rpm
4.2 安装(如果要安装最新版,可直接开始安装)
-
查看yum 源中所有Mysql版本 yum repolist all | grep mysql
-
此时的最新版本是mysql8.0,把它禁用掉 yum-config-manager --disable mysql80-community
-
mysql5.7是我要安装的版本,启用mysql5.7 yum-config-manager --enable mysql57-community
-
检查刚才的配置是否生效 yum repolist enabled | grep mysql
-
开始安装 yum install mysql-community-server
4.3 启动服务
service mysqld start
-
启动完成之后检查mysql状态, service mysqld status
-
查看临时密码 grep 'temporary password' /var/log/mysqld.log
-
登录 mysql -uroot -p
-
修改临时密码 ALTER USER user@localhost IDENTIFIED BY 'newpasswd';
这里user 一般为root ,或者是当前的使用用户,localhost 为访问地址。 -
开放mysql远程访问权限 grant all privileges on *.* to 'root'@'%' identified by'Mysql@node03' with grant option;
二、Hadoop(CDH版)搭建
1. 集群部署规划
类别 | 属性 | 测试节点(ip) | 生产节点(ip) |
---|
hdfs | NameNode | node01 | node01 | - | SecondaryNameNode | node02 | node02 | - | DataNode | node01,node02,node03,… | node03,node04,… | yarn | ResourceManager | node02 | node01/node02 | | NodeManager | node01,node02,node03,… | node03,node04… | MapReduce | JobHistoryServer | node03 | node01/node02 |
这里的节点分配仅供参考,测试环境采用三台服务器搭建,部分节点分配有重复,可根据实际配置更改
2. 安装
2.1 上传解压
-
将需要的cdh版本的hadoop安装包上传至服务器 /export/softwares/hadoop-2.6.0-cdh5.14.0.tar.gz
-
解压文件 tar -zxvf /export/softwares/hadoop-2.6.0-cdh5.14.0.tar.gz -C /export/servers/
2.2 配置hadoop
-
core-site.xml
cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/
vim core-site.xml
配置以下内容: <configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/tempDatas</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>2048</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
</configuration>
-
hdfs-site.xml cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim hdfs-site.xml
添加以下内容: <configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node02:50070</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>node01:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/datanodeDatas</value>
</property>
<property>
<name>dfs.namenode.edits.dir</name>
<value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/snn/name</value>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/snn/edits</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
</configuration>
-
hadoop-env.sh cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim hadoop-env.sh
添加以下内容: export JAVA_HOME=/export/servers/jdk1.8.0_141
这里配置JAVA_HOME建议给出绝对路径,不然容易出现jave不存在的错误:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o8gya9Wp-1628870362674)(http://picbed.vicjax.top/Install&Config/20191122100003hadoop-env-error-no-java.png)]
-
mapred-site.xml cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim mapred-site.xml
添加以下内容: <configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node01:19888</value>
</property>
</configuration>
-
yarn-site.xml cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim yarn-site.xml
添加以下内容: <configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
-
slaves cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim slaves
添加以下内容: node01
node02
node03
2.3 创建文件目录
2.4 向节点分发
2.5 配置环境变量
3. 启动测试
所有的脚本启动命令皆存在于$HADOOP_HOME/sbin 目录下,使用命令之前建议先进入该目录:
cd /export/servers/hadoop-2.6.0-cdh5.14.0/sbin/
-
单节点启动/停止集群 单节点启动需要在每个节点上启动对应的服务: "hdfs主节点/备用主节点启动NameNode"
bash hadoop-daemon.sh start namenode
"hdfs从节点启动DataNode"
bash hadoop-daemon.sh start datanode
"yarn主节点启动ResouceManager"
bash yarn-daemon.sh start resourcemanager
"yarn从节点启动NodeManager"
bash yarn-daemon.sh start nodemanager
"Mapred节点启动HistoryServer"
bash mr-jobhistory-daemon.sh start historyserver
关闭集群只需将start改为stop即可。 -
脚本一键启动 脚本启动是将以上命令进行封装为一个启动脚本,需要配置$HADOOP_HOME/etc/hadoop/slaves 文件和ssh免密登录
bash start-dfs.sh
bash start-yarn.sh
bash mr-jobhistory-daemon.sh start historyserver
也可以直接启动/停止所有服务:
bash start-all.sh
bash stop-all.sh
-
测试 命令行查看节点上启动的服务: jps | grep -v Jps
这里以测试环境为例,查看节点上启动的服务: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wFq1Vm3F-1628870362676)(http://picbed.vicjax.top/Install&Config/20191122125006hadoop-env-jps.png)] 使用浏览器界面查看启动的集群: "hdfs集群访问地址"
http://192.168.100.100:50070/dfshealth.html#tab-overview
"yarn集群访问地址"
http://192.168.100.200:8088/cluster
"jobhistory访问地址"
http://192.168.100.300:19888/jobhistory
这里的IP换成相应服务启动的节点ip即可。
出现类似的界面代表集群搭建成功: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EyV4QFK5-1628870362677)(http://picbed.vicjax.top/Install&Config/20191122125817hadoop-env-test.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VAHF1MRK-1628870362678)(http://picbed.vicjax.top/Install&Config/20191122125925hadoop-env-test.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pHwnCrGb-1628870362679)(http://picbed.vicjax.top/Install&Config/20191122130732hadoop-env-test.png)]
三、Hive的安装部署
1 上传安装
1.1 上传
- 这里使用cdh版本的hive,
hive-1.1.0-cdh5.14.0.tar.gz ,选择一个节点上传
1.2 解压
cd /export/softwares/
tar -zxvf /export/softwares/hive-1.1.0-cdh5.14.0.tar.gz -C /export/servers/
2 使用
cd /export/servers/hive-1.1.0-cdh5.14.0/
/bin/hive
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GNdjqOWa-1628870362680)(http://picbed.vicjax.top/Install&Config/20191122165804hadoop-env-hive.png)]
3 Mysql管理元数据
3.1 修改hive-env.sh
cd /export/servers/hive-1.1.0-cdh5.14.0/conf/
HADOOP_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
export HIVE_CONF_DIR=/export/servers/hive-1.1.0-cdh5.14.0/conf
3.2 修改hive-site.xml
如果不存在,则创建即可
cd /export/servers/hive-1.1.0-cdh5.14.0/conf/
vim hive-site.xml
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node03:3306/hive?createDatabaseIfNotExist=true</value>
</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>Mysql@node03</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node03</value>
</property>
</configuration>
3.3 上传mysql驱动包
上传mysql驱动包至/export/servers/hive-1.1.0-cdh5.14.0/lib 下
这里使用对应版本的驱动包或者更新的驱动包即可。
3.4 hive的交互方式
-
Hive交互shell cd /export/servers/hive-1.1.0-cdh5.14.0
bin/hive
hive (default)> show databases;
hive (default)> create database myhive;
hive (default)> use myhive;
hive (myhive)> create table test(id int,name string);
以上命令操作完成之后,一定要确认mysql里面出来一个数据库hive
-
HiveJDBC服务 启动hiveserver2服务
cd /export/servers/hive-1.1.0-cdh5.14.0
bin/hive --service hiveserver2
cd /export/servers/hive-1.1.0-cdh5.14.0
nohup bin/hive --service hiveserver2 &
beeline连接hiveserver2 bin/beeline
beeline> !connect jdbc:hive2://node03:10000
注意:如果使用beeline方式连接hiveserver2,一定要保证hive在mysql当中的元数据库已经创建成功,不然就会拒绝连接,这里的端口是hive连接mysql的端口,不是mysql的端口,不建议更改。
-
Hive命令
bin/hive -e "use myhive;select * from test;"
vim hive.sql
use myhive;select * from test;
bin/hive -f hive.sql
## 四、Hbase搭建
### 1 上传安装
1.1 上传
这里hbase版本为`hbase-1.2.0-cdh5.14.0.tar.gz `
1.2 解压
?```bash
tar -zxvf /export/softwares/hbase-1.2.0-cdh5.14.0.tar.gz -C /export/servers/
2 配置
所有的配置位于$HBASE_HOME/conf/ 目录下:
cd /export/servers/hbase-1.2.0-cdh5.14.0/conf/
这里需要将hdoop的hdfs-site.xml和core-site.xml放到该目录下:
cp /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/hdfs-site.xml /export/servers/hbase-1.2.0-cdh5.14.0/conf/
cp /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/core-site.xml /export/servers/hbase-1.2.0-cdh5.14.0/conf/
2.1 hbase-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_141
export HBASE_MANAGES_ZK=false
这里的java路径配置为当前节点的javahome即可
2.2 hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://node01:8020/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node01:2181,node02:2181,node03:2181</value>
</property>
</configuration>
替换配置中字节的zk集群几点即可
2.3 regionservers
配置region节点,可根据实际情况更改即可
node01
node02
node03
2.4 backup-masters
vim backup-masters
node02
3 分发
将配置好的分发到其他节点
cd /export/servers
scp -r hbase-1.2.0-cdh5.14.0/ node02:$PWD
scp -r hbase-1.2.0-cdh5.14.0/ node03:$PWD
4 启动测试
确保zk和hdfs已经启动这里使用jps 命令查看进程即可:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iaKgyueU-1628870362681)(http://picbed.vicjax.top/Install&Config/20191122233005hadoop-env-jps.png)]
cd /export/servers/hbase-1.2.0-cdh5.14.0/bin
bash start-hbase.sh
浏览器访问masetre-node:60010 查看成功画面:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0r3y7JvP-1628870362682)(http://picbed.vicjax.top/Install&Config/20191122232201hadoop-env-habse.png)]
命令行使用jps 查看进程:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R2nseQN5-1628870362683)(C:\Users\sword\AppData\Roaming\Typora\typora-user-images\image-20191122233222341.png)]
五、Spark搭建
1. 准备
这里下载的是spark-3.0.3-bin-hadoop2.7.tgz 安装包,上传至/export/softwares/ 下
2. 配置
配置文件位于/export/servers/spark-3.0.3-bin-hadoop2.7.tgz/conf 下,这里配置的是高可用spark集群,需要依赖zk
2.1 spark-env.sh
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_141
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node01:2181,node02:2181,node03:2181 -Dspark.deploy.zookeeper.dir=/spark"
export SPARK_MASTER_PORT=7077
2.2 spark-slaves
cp slaves.template slaves
vim slaves
node02
node03
3. 分发
向其他节点分发配置好的spark
cd /export/servers
scp -r spark-3.0.3-bin-hadoop2.7/ node02:/export/servers
scp -r spark-3.0.3-bin-hadoop2.7/ node03:/export/servers
4. 添加环境变量
将spark添加到环境变量,需要每台机器都执行
vim /etc/profile
export SPARK_HOME=/export/servers/spark-3.0.3-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
source /etc/profile
5. 启动测试
-
任意节点启动spark cd /export/servers/spark-3.0.3-bin-hadoop2.7/sbin/
bash start-all.sh
-
另外一台启动master配置高可用 cd /export/servers/spark-3.0.3-bin-hadoop2.7/sbin/
bash start-master.sh
停止集群只需将start换成stop即可
-
测试cli界面 使用jps命令即可: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ZdyDhd7-1628870362685)(http://picbed.vicjax.top/Install&Config/20191123003403spark-env-jps.png)] -
测试web界面 # 这里使用主节点即可
http://node01:8080
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HK0UU78I-1628870362686)(http://picbed.vicjax.top/Install&Config/20191123003624spark-env-web.png)] R_PORT=7077
2.2 spark-slaves
```bash
cp slaves.template slaves
vim slaves
#添加以下内容 请根据需要添加或删除
node02
node03
3. 分发
向其他节点分发配置好的spark
cd /export/servers
scp -r spark-3.0.3-bin-hadoop2.7/ node02:/export/servers
scp -r spark-3.0.3-bin-hadoop2.7/ node03:/export/servers
4. 添加环境变量
将spark添加到环境变量,需要每台机器都执行
vim /etc/profile
export SPARK_HOME=/export/servers/spark-3.0.3-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
source /etc/profile
5. 启动测试
-
任意节点启动spark cd /export/servers/spark-3.0.3-bin-hadoop2.7/sbin/
bash start-all.sh
-
另外一台启动master配置高可用 cd /export/servers/spark-3.0.3-bin-hadoop2.7/sbin/
bash start-master.sh
停止集群只需将start换成stop即可
-
测试cli界面 使用jps命令即可: [外链图片转存中…(img-3ZdyDhd7-1628870362685)] -
测试web界面 # 这里使用主节点即可
http://node01:8080
[外链图片转存中…(img-HK0UU78I-1628870362686)]
|