赞
踩
Java | Hadoop | 意义 |
---|---|---|
Long | LongWritable | 整数型 |
String | Text | 字符串 |
大数据4V特征
我们生活在一个数据大爆炸的时代,数据飞快的增长,急需解决海量数据的存储和计算问题
Hadoop适合海量数据分布式存储和分布式计算。
目前Hadoop已经演变为大数据的代名词,形成了一套完整的大数据生态系统,所以针对Hadoop就出现了很多发行版
Apache Hadoop:官方版本,开源
Cloudera Hadoop(CDH):商业版本,对官方版本做了一些优化,提供收费技术支持,提供界面操作,方便集群运维管理
HortonWorks(HDP):开源,提供界面操作,方便运维管理
注意:目前HDP已经被CDH收购,都属于一个公司的产品
建议在实际工作中搭建大数据平台时选择CDH或者HDP,方便运维管理。
Hadoop1.x ——Hadoop2.x——Hadoop3.x
Hadoop3.x的细节优化
Java改为支持8及以上
HDFS支持纠删码
HDFS支持多NameNode
MR任务级本地优化
多重服务默认端口变更
Hadoop主要包括三大组件:HDFS+MapReduce+YARN
# 进入网口目录 [root@master network-scripts]# cd /etc/sysconfig/network-scripts/ # 编辑ifcfg-ens33文件 [root@master network-scripts]# vim ifcfg-ens33 # 修改文件内容为 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static # 设置静态IP DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=ff5bf7ab-9679-4a06-bfc6-e2c91ed99c06 DEVICE=ens33 ONBOOT=yes # 是否开机启用 IPADDR=192.168.128.130 # IP地址 GATEWAY=192.168.128.2 # 网关 DNS1=192.168.128.2 # DNS服务器地址
# 编辑hostname文件
[root@master network-scripts]# vim /etc/hostname
# 文件内容即为主机名,例如:
mater
# 重启就生效
# 查看防火墙状态
[root@master network-scripts]# systemctl status firewalld
# 永久关闭防火墙
[root@master network-scripts]# systemctl disable firewalld.service
ssh-keygen -t rsa
cp ~/.ssh/xxx.pub ~/.ssh/authorized_keys
在目录~/.ssh/下会生成3个文件,其中.pub结尾的文件为ssh公钥,将该文件复制到需要远程登录机器的
~/.ssh/authorized_keys该目录下。
# 解压
tar -xzvf jdk-8u202-linux-x64.tar.gz
# 修改名字
mv jdk1.8.0_202/ jdk1.8
设置环境变量
[root@master network-scripts]# vim /etc/profile
# 在底部加上
export JAVA_HOME=/data/soft/jdk1.8
export PATH=.:$JAVA_HOME/bin:$PATH
# 重新载入profile文件
source /etc/profile
查看java是否安装成功
[root@slave1 soft]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
bin和sbin目录需要配置到环境变量中。
etc/hadoop:hadoop中的配置文件,安装hadoop需要修改该目录下的文件。
1 . hadoop-env.sh
export JAVA_HOME=/data/soft/jdk1.8
export Hadoop_LOG_DIR=/data/hadoop_repo/logs/hadoop
2 . core_site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop_repo</value>
</property>
</configuration>
3 . hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> #只有一台集群
</property>
</configuration>
4 . mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5 . yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
6 . workers
master
bin/hdfs namenode -format # 只能执行一次,类似于格式化硬盘,如果要重装需要先删掉/data/hadoop_repo这个目录
sbin/start-all.sh # 启动所有服务
消除错误信息(缺失很多用户信息)
1 . start-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
2 . stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
3 . start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
4 . stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
重新启动集群
sbin/start-all.sh # 启动所有服务
输入jps查看启动的服务
jps
14560 ResourceManager
15700 Jps
14058 DataNode
14282 SecondaryNameNode
14714 NodeManager
13885 NameNode
如果看到6大组件都启动成功说明,集群启动成功。
此时在本地主机内输入http://master:8088/cluster 和 http://master:9870/dfshealth.html#tab-overview 可查看hadoop中的YEAR和HDFS服务页面。
设置主机名访问
修改主机hosts文件,加上
192.168.128.130 master
[root@master hadoop-3.2.0]# sbin/stop-all.sh
Stopping namenodes on [master]
上一次登录:二 11月 30 15:02:43 CST 2021从 192.168.128.1pts/2 上
Stopping datanodes
上一次登录:二 11月 30 15:47:32 CST 2021pts/1 上
Stopping secondary namenodes [master]
上一次登录:二 11月 30 15:47:34 CST 2021pts/1 上
Stopping nodemanagers
上一次登录:二 11月 30 15:47:36 CST 2021pts/1 上
Stopping resourcemanager
上一次登录:二 11月 30 15:47:38 CST 2021pts/1 上
[root@master hadoop-3.2.0]# jps
16638 Jps
所有机器完成2.5.1.1~2.5.1.5步骤。
也可以一台机器完成后再克隆2台,修改hostname和ip即可。
# 进入网口目录 [root@master network-scripts]# cd /etc/sysconfig/network-scripts/ # 编辑ifcfg-ens33文件 [root@master network-scripts]# vim ifcfg-ens33 # 修改文件内容为 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static # 设置静态IP DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=ff5bf7ab-9679-4a06-bfc6-e2c91ed99c06 DEVICE=ens33 ONBOOT=yes # 是否开机启用 IPADDR=192.168.128.130 # IP地址,不同机器IP地址不能相同 GATEWAY=192.168.128.2 # 网关 DNS1=192.168.128.2 # DNS服务器地址
# 编辑hostname文件
[root@master network-scripts]# vim /etc/hostname
# 文件内容即为主机名,例如:
mater
# 重启就生效
# 查看防火墙状态
[root@master network-scripts]# systemctl status firewalld
# 永久关闭防火墙
[root@master network-scripts]# systemctl disable firewalld
ssh-keygen -t rsa
在目录~/.ssh/下会生成3个文件,其中.pub结尾的文件为ssh公钥,将该文件复制到需要远程登录机器的
~/.ssh/authorized_keys该目录下。
# 解压
tar -xzvf jdk-8u202-linux-x64.tar.gz
# 修改名字
mv jdk1.8.0_202/ jdk1.8
设置环境变量
export JAVA_HOME=/data/soft/jdk1.8
export PATH=.:$JAVA_HOME/bin:$PATH
查看java是否安装成功
[root@slave1 soft]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
作用:使得机器之间能够相互识别
192.168.128.130 master
192.168.128.131 slave1
192.168.128.132 slave2
192.168.128.1 win
使得三台机器时间一致,避免在工作的时候出现问题(三台机器都要做)
# 下载ntpdate命令
yum install -y ntpdate
同步时间服务器(ntp.sjtu.edu.cn
)
ntpdate -u ntp.sjtu.edu.cn
添加到定时任务,使得每次开启集群自动同步时间
vim /etc/crontab
* * * * * root /usr/sbin/ntpdate -u ntp.sjtu.edu.cn
使用
scp工具将主节点的公钥信息发送给从节点
scp ~/.ssh/authorized_keys slave1:~/
scp ~/.ssh/authorized_keys slave2:~/
然后进入从节点将主节点的公钥追加到自己公钥后面
[root@slave1 ~]# cat authorized_keys >> ~/.ssh/authorized_keys
[root@slave2 ~]# cat authorized_keys >> ~/.ssh/authorized_keys
实现无密码登录
[root@master /]# ssh slave1
Last login: Tue Nov 30 17:20:35 2021 from master
[root@slave1 ~]# exit
登出
Connection to slave1 closed.
[root@master /]# ssh slave2
Last login: Tue Nov 30 17:17:54 2021 from master
[root@slave2 ~]#
export JAVA_HOME=/data/soft/jdk1.8
export Hadoop_LOG_DIR=/data/hadoop_repo/logs/hadoop
2 . core_site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop_repo</value>
</property>
</configuration>
3 . hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value> #多台机器
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
</configuration>
4 . mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5 . yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
6 . workers
slave1
slave2
消除错误信息(缺失很多用户信息)
1 . start-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
2 . stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
3 . start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
4 . stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
[root@master soft]# scp -rq hadoop-3.2.0 slave1:/data/soft/
[root@master soft]# scp -rq hadoop-3.2.0 slave2:/data/soft/
bin/hdfs namenode -format # 只能执行一次,类似于格式化硬盘,如果要重装需要先删掉/data/hadoop_repo这个目录
只需要在主节点中运行下面代码即可
[root@master hadoop-3.2.0]# sbin/start-all.sh
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。