赞
踩
操作系统 | IP地址 | 主机名 | 备注 |
---|---|---|---|
centos7.9 | 192.168.10.128 | node1 | jdk-8u171-linux-x64.rpm hadoop-2.6.5.tar.gz hbase-1.0.2-bin.tar.gz |
centos7.9 | 192.168.10.129 | node2 | jdk-8u171-linux-x64.rpm |
centos7.9 | 192.168.10.130 | node3 | jdk-8u171-linux-x64.rpm |
关闭防火墙(所有节点全部执行)
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@localhost ~]# systemctl stop firewalld
- [root@localhost ~]# systemctl disable firewalld</span></span>
关闭selinux
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@localhost ~]# sed -i /^SELINUX/s/enforcing/disabled/ /etc/selinux/config
- [root@localhost ~]# reboot </span></span>
修改主机名
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@localhost ~]# hostnamectl set-hostname node1 192.168.10.128
- [root@localhost ~]# hostnamectl set-hostname node2 192.168.10.129
- [root@localhost ~]# hostnamectl set-hostname node3 192.168.10.130</span></span>
修改hosts文件(/etc/hosts),所有节点执行
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# cat >>/etc/hosts <<EOF
- 192.168.10.128 node1
- 192.168.10.129 node2
- 192.168.10.130 node3
- EOF</span></span>
搭建时间同步服务,所有节点全部执行(此处同步的是阿里云服务器时间)
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# yum -y install ntpdate
- [root@node1 ~]# ntpdate ntp.aliyun.com
- 19 Jul 11:48:34 ntpdate[8321]: step time server 203.107.6.88 offset 545406.063268 sec
- [root@node1 ~]# date
- Tue Jul 19 11:49:02 CST 2022</span></span>
二、安装Hadoop 运行环境
1、创建用户,首先在所有节点新建用户 hduser,然后设置权限
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# groupadd hadoop // 创建 hadoop 用户组
- [root@node1 ~]# useradd -g hadoop hduser //创建 hduser 用户
- [root@node1 ~]# passwd hduser //设置 hduser 的密码</span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# vi /etc/sudoers //在root添加hduser ALL=(ALL) ALL</span></span>
2、安装jdk、配置免密登录
1.所有节点都安装jdk-8u171-linux-x64.rpm
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# rpm -vih jdk-8u171-linux-x64.rpm
- [root@node1 ~]# vi /etc/profile //配置环境变量
- export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64 //在末尾添加
- export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH
- export PATH=$JAVA_HOME/bin:$PATH
- [root@node1 ~]# source /etc/profile //加载环境变量
- [root@node1 ~]# java -version //验证jdk
- java version "1.8.0_171"
- Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
- Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)</span></span>
2、配置本机 SSH 免密码登录(只在node1节点执行)
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# ssh-keygen -t rsa //一路回车
- [root@node1 ~]# ssh-copy-id node1
- [root@node1 ~]# ssh-copy-id node2
- [root@node1 ~]# ssh-copy-id node3</span></span>
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# tar zxvf hadoop-2.6.5.tar.gz -C /home/hduser/ //解压文件指定安装目录/home/hduser
- [root@node1 ~]# cd /home/hduser/
- [root@node1 hduser]# mv hadoop-2.6.5/ hadoop //解压后重命名为 hadoop</span></span>
进入“hadoop”目录,其目录结构如下:
bin:执行文件目录。包含 hadoop、hdfs、yarn 等命令,所有用户均可执行。
etc:Hadoop 配置文件都在此目录。
include:包含 C 语言接口开发所需头文件。
lib:包含 C 语言接口开发所需链接库文件。
libexec:运行 sbin 目录中的脚本会调用该目录下的脚本。
logs:日志目录,在运行过 Hadoop 后会生成该目录。
sbin:仅超级用户能够执行的脚本,包括启动和停止 dfs、yarn 等。
share: 包括 doc 和 hadoop 两个目录, 其中 doc 目录包含大量的 Hadoop帮助文档;hadoop 目录包含了运行 Hadoop 所需的所有 jar 文件,在开发中用到的 jar 文件也可在该目录找到
2、配置 hadoop 环境变量,所有节点全部执行
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hduser]# vi /etc/profile
- export HADOOP_HOME=/home/hduser/hadoop //末尾添加
- export PATH=$HADOOP_HOME/bin:$PATH
- [root@node1 hduser]# source /etc/profile</span></span>
3、配置 hadoop
先进入 node1 进行配置,随后将配置文件复制到 node2、node3。配置 Hadoop 主要涉及的配置文件有 7 个,都在 hadoop/etc/hadoop 文件夹下,包括:hadoop-env.sh、 yarn-env.sh、slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。具体配置如下
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# cd /home/hduser/hadoop/etc/hadoop/
- [root@node1 hadoop]# vi hadoop-env.sh //25行添加注释,在26行出入以下内容
- export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64 //插入jdk的路径</span></span>
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# vi yarn-env.sh
- export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64 //开头部分添加此内容</span></span>
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# vi slaves #打开并清空原内容
- node2 #添加
- node3 #添加
- [root@node1 hadoop]# vi core-site.xml #将最后两行删除,插入一下内容
- <configuration>
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://node1:9000</value>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>file:/home/hduser/hadoop/tmp</value>
- </property>
- </configuration></span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# vi hdfs-site.xml 在第19和21行中间插入一下内容 <configuration> <property> <name>dfs.namenode.secondary.http-address</name> #Secondary NameNode 服务器 HTTP 地址和端口 <value>node1:50090</value> </property> <property> <name>dfs.namenode.name.dir</name> #NameNode 存储名字空间及汇报日志的位置 <value>file:/home/hduser/hadoop/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> #DataNode 存放数据块的目录列表 <value> file:/home/hduser/hadoop/dfs/data</value> </property> <property> <name>dfs.replication</name> #冗余备份数量,一份数据可设置多个拷贝 <value>2</value> </property> <property> <name>dfs.webhdfs.enabled</name> #在NameNode 和 DataNode 中启用 WebHDFS <value>true</value> </property> </configuration></span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# cp mapred-site.xml.template mapred-site.xml //从末班文件中复制一个出来 [root@node1 hadoop]# vi mapred-site.xml //在19和21行中间添加以下内容 <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>node1:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>node1:19888</value> </property> </configuration></span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# vi yarn-site.xml //后三行删除添加以下内容 <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>node1:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>node1:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>node1:8035</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>node1:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>node1:8088</value> </property> </configuration></span></span>
![image-20220719152809881](img/image-20220719152809881.png
将这 7 个文件复制到 node2、node3 的同目录下
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# scp -r /home/hduser/hadoop node2:/home/hduser
- [root@node1 hadoop]# scp -r /home/hduser/hadoop node3:/home/hduser</span></span>
4、验证安装配置
(1) 在 node1上格式化 NameNode
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# cd /home/hduser/hadoop/
- [root@node1 hadoop]# bin/hdfs namenode -format
- [root@node1 hadoop]# sbin/start-dfs.sh //启动
-
- 也可以使用
- sbin/start-all.sh 同时启动
- </span></span>
5、查看进程启动YARN
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# jps //查看Java进程
- [root@node1 hadoop]#sbin/start-yarn.sh 启动</span></span>
查看集群状态
<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hadoop]# bin/hdfs dfsadmin -report </span></span>
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 ~]# tar zxvf hbase-1.0.2-bin.tar.gz -C /home/hduser/ //解压指定解压目录/home/hduser/
- [root@node1 ~]# cd /home/hduser/hbase-1.0.2/ //进入解压路径</span></span>
修改hbase配置文件
<span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hbase-1.0.2]# vi conf/hbase-site.xml //删除末尾两行插入以下内容 <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://node1:9000/hbase01</value> <description>配置 HRegionServer 的数据库存储目录</description> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> <description>配置 HBase 为完全分布式</description> </property> <property> <name>hbase.master</name> <value>node1:60000</value> <description>配置 HMaster 的地址</description> </property> <property> <name>hbase.zookeeper.quorum</name> <value>node1,node2,node3</value> <description>配置 ZooKeeper 集群服务器的位置</description> </property> </configuration></span></span>
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hbase-1.0.2]# vi conf/hbase-env.sh //在末尾添加一下内容
- export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64
- export HADOOP_HOME=/home/hduser/hadoop
- export HBASE_HOME=/home/hduser/hbase-1.0.2
- export HBASE_MANAGES_ZK=true
- [root@node1 hbase-1.0.2]# vi conf/regionservers //清空内容
- node2
- node3</span></span>
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hbase-1.0.2]# scp -r /home/hduser/hbase-1.0.2 node2:/home/hduser/
- [root@node1 hbase-1.0.2]# scp -r /home/hduser/hbase-1.0.2 node:/home/hduser/</span></span>
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hbase-1.0.2]# bin/start-hbase.sh //启动Hbase
- [root@node1 hbase-1.0.2]# bin/hbase shell //登入数据库
- hbase(main):001:0> status</span></span>
创建一个表kgc
<span style="background-color:#f8f8f8"><span style="color:#333333">hbase(main):002:0> create 'kgc' ,'nianji','chengji' hbase(main):003:0> list TABLE kgc 1 row(s) in 0.0180 seconds => ["kgc"] hbase(main):004:0> put 'kgc','xiaoyi','chengji:shengwu','100' //插入一条数据,小易 成绩生物100 hbase(main):006:0> describe 'kgc' //查看表的信息 hbase(main):007:0> scan 'kgc' //扫描表 ROW COLUMN+CELL xiaoyi column=chengji:shengwu, timestamp=16582878 01012, value=100 1 row(s) in 0.0440 seconds hbase(main):011:0> put 'kgc','sanjiang','chengji:yingyu','150' //插入数据 hbase(main):023:0> scan 'kgc' 扫描表信息 ROW COLUMN+CELL sanjiang column=chengji:yingyu, timestamp=165828808 3428, value=150 xiaoyi column=chengji:shengwu, timestamp=16582878 01012, value=100 2 row(s) in 0.0070 seconds</span></span>
将 hbase-site.xml 复制到/home/hduser/hadoop/etc/hadoop/ 下
- <span style="background-color:#f8f8f8"><span style="color:#333333">[root@node1 hbase-1.0.2]# cp /home/hduser/hbase-1.0.2/conf/hbase-site.xml /home/hduser/hadoop/etc/hadoop/
- 编辑hadoop-env.sh,增加一行
- [root@node1 hbase-1.0.2]# vi /home/hduser/hadoop/etc/hadoop/hadoop-env.sh //在末尾添加
- export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/hduser/hbase-1.0.2/lib/*
- 最后注意将上述操作的两个文件,复制到 Hadoop 集群中其它节点上
- [root@node1 hbase-1.0.2]# scp /home/hduser/hadoop/etc/hadoop/hbase-site.xml /home/hduser/hadoop/etc/hadoop/hadoop-env.sh node2:/home/hduser/hadoop/etc/hadoop/
- [root@node1 hbase-1.0.2]# scp /home/hduser/hadoop/etc/hadoop/hbase-site.xml /home/hduser/hadoop/etc/hadoop/hadoop-env.sh node3:/home/hduser/hadoop/etc/hadoop/
- [root@node1 hduser]# cd /home/hduser/
- 使用以下命令测试 kgc是hbase里面的表,可以统计出这个表的行数
- [root@node1 hduser]# hadoop/bin/hadoop jar /home/hduser/hbase-1.0.2/lib/hbase-server-1.0.2.jar rowcounter kgc
- </span></span>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。