HADOOP VM三台虚拟机配置hadoop分布式

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: HADOOP VM三台虚拟机配置hadoop分布式

1、为aboutyun用户添加管理员权限:

1)创建aboutyun用户和配置密码:

创建用户:useradd aboutyun
设置密码:passwd aboutyun

2)修改sudoers只读权限:

chmod u+w sudoers
vi  /etc/sudoers

4d7e50b6221e72728aa1d4c94845e38.png

3)切换用户:su - aboutyun

4)需要ifconfig命令:yum install net-tools.x86_64

5)同步互联网时间:

yum install -y ntpdate;
ntpdate time.windows.com
ntpdate cn.pool.ntp.org

修改hosts文件,做IP->用户名映射

Chmod u+w /etc/hosts修改只读权限

添加:

192.168.0.10 master
192.168.0.20 worker1
192.168.0.30 worker2

2、SSH免密配置:

ssh-keygen -t rsa

1)免密节点统一添加到指定文件:

cat id_rsa.pub >> authorized_keys

2)将authorized_keys设置成可执行文件:

chmod u+x authorized_keys

3)将免密文件传输到其它节点:

scp authorized_keys aboutyun@worker1:~/.ssh/

3、JDK安装配置:

1)解压缩jdk包:tar  -zxvf  jdkxxx

2)编辑:vi  /etc/profile文件,添加Java路径:

#Java_Path
JAVA_HOME=/usr/data/jdk1.8.0_111
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/lib:
export PATH

3)重新启动文件生效:

source /etc/profile

4)测试JDK安装是否OK:java -version

4、HADOOP安装配置

1)解压缩文件参考jdk:

2)配置环境变量:

vi /etc/profile
HADOOP_HOME=/usr/data/hadoop-2.7.4
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:
export PATH

3)配置文件:

(1)Hadoop-env.sh:

增加:export JAVA_HOME=/usr/data/jdk1.8.0_111

(2)

core-site.xml 
               fs.defaultFS
               hdfs://master:9000
               hadoop.tmp.dir
               /usr/data/logs/hadoop/tmp

(3)

)hdfs-site.xml
               dfs.replication
               3
               dfs.namenode.name.dir
               /usr/data/logs/hadoop/tmp/dfs/name
               dfs.datanode.data.dir
               /usr/data/logs/hadoop/tmp/dfs/data

(4)

mapred-site.xml
               mapreduce.framework.name
               yarn

(5)

yarn-site.xml
               yarn.resourcemanager.hostname
               master
               yarn.nodemanager.aux-services
               mapreduce_shuffle

(6)

yarn-env.sh
export JAVA_HOME=/usr/data/jdk1.8.0_111

(7)检查安装配置:

hadoop version

(8)格式化:

hadoop namenode -format

(9)启动:

./start-all.sh 一次性启动
./start-dfs.sh 分别启动
./start-yarn.sh

(10)检查启动是否成功:

jps     master和slave

65ece24121a22055e88a8114857ba92.png

5、SCALA安装配置

1)解压缩文件参考JDK:

2)配置环境变量:

vi /etc/profile
SCALA_HOME=/usr/data/scala-2.11.8
PATH=$PATH:$HOME/bin:$SCALA_HOME/bin:
export PATH

3)检查安装配置:

scala -version

6、ZOOKEEPER安装配置

1)解压缩文件参考JDK:

2)配置环境变量:

vi /etc/profile
ZOOKEEPER_HOME=/usr/data/zookeeper-3.4.9
PATH=$PATH:$HOME/bin:$ZOOKEEPER_HOME:/bin:
export PATH

3)zoo.cfg配置:

mv zoo_sample.cfg zoo.cfg

添加以下参数:注释原相同路径

#数据存储路径

dataDir=/usr/data/logs/zookeeper/zk_data

#日志存储路径

dataLogDir=/usr/data/logs/zookeeper/logs_data
server.1=master:2888:3888
server.2=worker1:2888:3888
server.3=worker2:2888:3888

4)分别在zk_data文件夹下面添加文件:

master:
echo “1” > /usr/data/logs/zookeeper/zk_data/myid
worker1:
echo “2” > /usr/data/logs/zookeeper/zk_data/myid
worker2:
echo “3” > /usr/data/logs/zookeeper/zk_data/myid
启动:./zkServer.sh star

5)检查是否正常:

./zkServer.sh status

d98d6f955ab676b0f3a2dab64f5b1a9.png

7、FLUME安装配置

1)解压缩文件参考JDK:

2)配置环境变量:

vi /etc/profile
FLUME_HOME=/usr/data/flume-1.9.0
PATH=$PATH:$HOME/bin:$FLUME_HOME/bin:
export PATH

3)检查安装配置:

flume-ng version

8、KAFKA安装配置

1)解压缩文件参考JDK:

2)配置环境变量:

vi /etc/profile
KAFKA_HOME=/usr/data/kafka_2.11-2.1.1
PATH=$PATH:$HOME/bin:$KAFKA_HOME/bin:
export PATH

3)server.properties---注释原相同路径

broker.id=0
log.dirs=/usr/data/logs/kafka/logs_data
zookeeper.connect=master:2181,worker1:2181,worker2:2181

4)启动KAFKA:加&后台运行

./kafka-server-start.sh ../config/server.properties

5)创建topic:

./kafka-topics.sh --create --zookeeper master:2181,worker1:2181,worker2:2181 --replication-factor 1 --partitions 1 --topic test

8ae813bc07af1e0dc4d2670f9bb142f.png


6)查询创建topic:

./kafka-topics.sh --list   --zookeeper master:2181,worker1:2181,worker2:2181

4e4cfee62f8c1d6cab9eae322c1d93a.png

7)生产者:

./kafka-console-producer.sh   --broker-list master:9092,worker1:9092,worker2:9092 --topic test

af2db262a54c085bf979a68f673ec78.png

8)消费者:从刚开始读取数据加--from-beginning

./kafka-console-consumer.sh   --bootstrap-server master:9092,worker1:9092,worker2:9092 --topic test

65f96dcf38479c39f3b2da98de37c73.png9)验证消费是否成功:

./kafka-run-class.sh   kafka.tools.GetOffsetShell --broker-list   master:9092,worker1:9092,worker2:9092 --topic test --time -1

1be7284b3e93b8655b249b694612800.png

9、FLUME和KAFKA整合:

1)flume输出到控制台

文件名:flume_project.conf

a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /usr/data/logs/flume/access.log
a1.sources.r1.shell = /bin/bash -c
a1.channels.c1.type = memory
a1.sinks.k1.type = logger
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
启动:flume-ng agent --conf conf --conf-file /usr/data/logs/flume/flume_project.conf --name a1 -Dflume.root.logger=WARN,console

2)对接到kafka中

文件名:kafka_project.conf

a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /usr/data/logs/flume/access.log
a1.sources.r1.shell = /bin/bash -c
a1.channels.c1.type = memory
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.topic = test
a1.sinks.k1.kafka.bootstrap.servers = master:9092,worker1:9092,worker2:9092
a1.sinks.k1.kafka.flumeBatchSize = 20
a1.sinks.k1.kafka.producer.acks = 1
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
启动:flume-ng agent --conf conf --conf-file /usr/data/logs/flume/kafka_project.conf --name a1 -Dflume.root.logger=WARN,console
控制台输出:./kafka-console-consumer.sh --bootstrap-server master:2181,worker1:2181,worker2:2181 --topic test --from-beginning

10、MYSQL安装配置:

1)解压缩文件参考JDK:

把文件改名为mysql放到/usr/local/路径下

2)配置环境变量:

vi /etc/profile
MYSQL_HOME=/usr/data/mysql-5.7.24
PATH=$PATH:$HOME/bin:$MYSQL_HOME/bin:
export PATH

3)创建mysql用户组和用户

创建用户组:groupadd mysql

创建用户放到用户组下面:useradd  -r -g mysql mysql

4)Mysql下面创建data目录,并修改mysql权限

mkdir data
Chown -R mysql:mysql

5)初始化安装--会生成随机密码:

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US

1ca121d90cb7d04967d747c30ff7b67.png

如报错:

error while loading shared libraries: libaio.so.1: cannot open shared object

5a355c6b8aa820e0423cad53e5813bb.png

请安装:

yum install -y libaio

6)配置/etc/my.conf文件--修改参数路径,没有文件的需要自己手动创建

6ecf6300cbaf7e2e1f4367ec2b9a60a.png

7)安全模式启动:

./mysqld_safe --user=mysql &

8)加入开机启动项:

(1)cd ../support-files
(2)cp mysql.server /etc/init.d/mysql
(3)chmod +x /etc/init.d/mysql
(4)chkconfig --add mysql

9)启动服务:

systemctl start mysql.service

10)登录mysql--密码在初始化时生成:

mysql -uroot -p

11)修改密码:

SET Password=PASSWORD('123');
flush privileges;

12)授权:

grant all privileges on *.* to'root' @'%' identified by '123';
flush privileges;
验证:
Show databases;

715b1667278db734f7df37f96c04648.png

11、HIVE安装配置:

1)解压缩文件参考JDK:

2)配置环境变量:

vi /etc/profile
HIVE_HOME=/usr/data/hive-2.2.0
PATH=$PATH:$HOME/bin:$HIVE_HOME/bin:
export PATH

3)hive-env.sh配置

4)hive-site.xml配置

mv hive-default.xml.template hive-site.xml
       javax.jdo.option.ConnectionURL
       jdbc:mysql://master:3306/metastore?createDatabaseIfNotExist=true
       JDBC connect string for a JDBC metastore
       javax.jdo.option.ConnectionDriverName
       com.mysql.jdbc.Driver
       Driver class name for a JDBC metastore
       javax.jdo.option.ConnectionUserName
       root
       username to use against metastore database
       javax.jdo.option.ConnectionPassword
       123
       password to use against metastore database
       hive.metastore.schema.verification
       false
       hive.cli.print.header
       true
       Whether to print the names of the columns in query output.
       hive.cli.print.current.db
       true
       Whether to include the current database in the Hive prompt.

5)hive-log4j2.properties配置

mv hive-log4j2.properties.template hive-log4j2.properties
property.hive.log.dir = /usr/data/logs/hive/${user.name}
appender.DRFA.filePattern =  /usr/data/logs/hive/${hive.log.file}.%d{yyyy-MM-dd}

2d271cf1c2541d2e9edd83dddd4220d.png

6)将mysql-connector-java-5.1.37-bin.jar拷贝到hive/lib下面

7)元数据库的初始化  

schematool -dbType mysql -initSchema

c4fbb455f775772bb84b7e24660de2e.png

12、FLINK安装配置:

1)解压缩文件参考JDK:

2)配置环境变量:

vi /etc/profile
HIVE_HOME=/usr/data/hive-2.2.0
PATH=$PATH:$HOME/bin:$HIVE_HOME/bin:
export PATH

3)slaves配置:


7cf73fb3676377dea610cef1fa7eade.png

4)启动./start-cluster.sh

d06393709c181b0f1e8283fad2595ba.png

相关文章
|
1月前
|
分布式计算 Hadoop Devops
Hadoop集群配置https实战案例
本文提供了一个实战案例,详细介绍了如何在Hadoop集群中配置HTTPS,包括生成私钥和证书文件、配置keystore和truststore、修改hdfs-site.xml和ssl-client.xml文件,以及重启Hadoop集群的步骤,并提供了一些常见问题的故障排除方法。
45 3
Hadoop集群配置https实战案例
|
2月前
|
虚拟化
如何为VM虚拟机添加D盘
这篇文章介绍了如何在VMware虚拟机中将E盘修改为D盘,并提供了详细的操作步骤,包括在计算机管理中更改驱动器号和路径,以及初始化和格式化新磁盘的指导。
如何为VM虚拟机添加D盘
|
2月前
|
存储 分布式计算 算法
探索Hadoop的三种运行模式:单机模式、伪分布式模式和完全分布式模式
在配置Hadoop集群之前,了解这三种模式的特点、适用场景和配置差异是非常重要的。这有助于用户根据个人需求和资源情况,选择最适合自己的Hadoop运行模式。在最初的学习和开发阶段,单机模式和伪分布式模式能为用户提供便利和成本效益。进而,当用户要处理大规模数据集时,完全分布式模式将是理想的选择。
79 2
|
2月前
|
安全
【Azure 云服务】Azure Cloud Service 关于虚拟机资源,杀毒软件配置,补丁机制的问答
【Azure 云服务】Azure Cloud Service 关于虚拟机资源,杀毒软件配置,补丁机制的问答
|
2月前
|
存储 分布式计算 Hadoop
【揭秘Hadoop背后的秘密!】HDFS读写流程大曝光:从理论到实践,带你深入了解Hadoop分布式文件系统!
【8月更文挑战第24天】Hadoop分布式文件系统(HDFS)是Hadoop生态系统的关键组件,专为大规模数据集提供高效率存储及访问。本文深入解析HDFS数据读写流程并附带示例代码。HDFS采用NameNode和DataNode架构,前者负责元数据管理,后者承担数据块存储任务。文章通过Java示例演示了如何利用Hadoop API实现数据的写入与读取,有助于理解HDFS的工作原理及其在大数据处理中的应用价值。
57 1
|
2月前
|
存储 网络协议 搜索推荐
在Linux中,如何配置和管理虚拟机的网络和存储?
在Linux中,如何配置和管理虚拟机的网络和存储?
|
2月前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
48 0
|
2月前
|
XML 分布式计算 监控
详细指南:在Hadoop中配置Oozie作业
【8月更文挑战第31天】
33 0
|
2月前
|
安全 Windows
【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
|
2月前
|
API 网络架构
【Azure Developer】如何通过Azure REST API 获取到虚拟机(VM)所使用的公共IP地址信息
【Azure Developer】如何通过Azure REST API 获取到虚拟机(VM)所使用的公共IP地址信息
下一篇
无影云桌面