赞
踩
无法在一定的时间范围内,使用常规的工具存储、处理的大数据量的集合,需要新型的存储方式来处理海量的数据,可以从各式各样的数据中发掘有价值的信息。
大体量,TB 级的数据存储
存储单位:
1byte = 8bit
1KB = 1024byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB =1024TB
1EB = 1024PB
多样性,种类多,来源多
时效性,很多数据需在一定时间内处理
准确性,处理的结果保证一定的准确性
大价值,挖掘有价值的信息
1.一份数据分四份,分别存到四个服务器磁盘
2.存数据的服务器节点—>datanode
3.管理
数
据
节
点
数据节点
数据节点的---->namenode
namemode–
1.存储文件的元信息,如大小、分块等。
2.心跳机制,检测datanode的状态
防止datanode挂掉,提高hadoop的高可用性,引入副本冗余机制,却降低了磁盘的利用率。
防止namenode挂掉,建立secondary namenode,不断与namenode保持同步,一旦namenode挂掉,secondary namenode立即取代
防止路由器挂掉,建立多个机架,如下:
多个集群
以上为HDFS,hadoop distributed file system
纵向扩展:在一台服务器上,升级硬件,如增加磁盘阵列
横向扩展:增加多个服务器,构建集群,hadoop思想
lauf@master:~$ sudo tar -zxvf jdk-xxxx.tar.gz -C /usr/local
lauf@master:~$ cd /usr/local
lauf@master:~$ sudo mv jdk1.8.0_251/ jdk8 #重命名为jdk8
lauf@master:~$ cd /home/lauf #用户的家目录 lauf@master:~$ sudo vim .bashrc #输入G -->跳到文件末尾 #添加配置 export JAVA_HOME=/usr/local/jdk8 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=.:$JAVA_HOME/bin:$PATH #保存,退出编辑状态 #Esc键---返回命令模式 #shift + zz 保存退出 lauf@master:~$ source .bashrc #使用配置生效
lauf@master:~$ java -version #查看版本
伪分布式就是Hadoop集群主从节点进程均在同一台机器同一JVM
lauf@master:~$ sudo apt-get install ssh #或者openssh-server #安装完成后,使用ssh 登录本地系统 lauf@master:~$ ssh localhost #此时需要输入当前用户密码 #使用其他用户登录 lauf@master:~$ ssh tom@localhost #此时输入tom 的密码 tom@localhost's password: #查看ssh服务的状态 lauf@master:~$ sudo /etc/init.d/ssh status lauf@master:~$ sudo /etc/init.d/ssh start/stop/restart #开启服务、停止服务、重启服务 #配置ssh免密登录 lauf@master:~$ ssh-keygen -t rsa #生成rsa密钥,存储在家目录下的.ssh目录 lauf@master:~$ cd /home/lauf lauf@master:~$ cd .ssh lauf@master:~/.ssh$ ls authorized_keys id_rsa id_rsa.pub known_hosts #将公钥id_rsa.pub内容放到服务端的/home/lauf/.ssh/authorized_keys中 #登录localhost时,localhost就是服务端 lauf@master:~/.ssh$ sudo scp id_rsa.pub lauf@ip:/home/lauf/.ssh/authorized_keys #重新登录远程服务端 lauf@master:~/.ssh$ ssh ip #不再需要密码
如果以上操作无效,可以配置其他的一些配置项:
/etc/ssh–>ssh_config PasswordAuthentication yes 取消注释
/etc/ssh–>sshd_config PermitRootLogin yes
重启服务
sudo /etc/init.d/ssh restart
2.将下载的hadoop-xxx.tar.gz解压到/usr/local
lauf@master:~$ tar -zxvf hadoop-xxx.tar.gz -C /usr/local
#重命名
lauf@master:~$ cd /usr/local
lauf@master:~$ sudo mv hadoop-2.10.0 hadoop2.10 #重命名
#改所属用户、组
lauf@master:~$ sudo chown -R lauf:lauf hadoop2.10/
lauf@master:~$ cd /usr/local/hadoop2.10/bin
lauf@master:~$ ./hadoop version
lauf@master:~$ cd /usr/local/hadoop2.10/etc/hadoop
lauf@master:~$ sudo vim hadoop-env.sh
#/java 搜索 并更改JAVA_HOME如下
export JAVA_HOME=/usr/local/jdk8
其他两个采用同样的方式配置JDK。
lauf@master:~$ cd /home/lauf
lauf@master:~$ sudo vim .bashrc
#shift+g跳到文件的末尾
#末尾添加
export HADOOP_HOME=/usr/local/hadoop2.10
export CLASSPATH=.:${JAVA_HOME}/lib:${HADOOP_HOME}/sbin:$PATH
export PATH=.:${HADOOP_HOME}/bin:${HADOOOP_HOME}/sbin:$PATH
#保存退出
#使配置生效
lauf@master:~$ source .bashrc
#验证Hadoop 是否配置成功
hadoop version
#配置core-site.xml lauf@master:~$ cd /usr/local/hadoop2.10/etc/hadoop lauf@master:~$ sudo vim core-site.xml #增加配置 <configuration> <property> <name>hadoop.tmp.dir</name>#配置Hadoop临时文件保存路径 <value>file:/usr/local/hadoop2.10/tmp</value> </property> <property> <name>fs.defaultFS</name>#配置Hadoop默认端口 <value>hdfs://localhost:9000</value> #完全分布式时,则为NameNode节点地址,不能再使用localhost </property> </configuration> #配置hdfs-site.xml lauf@master:~$ sudo vim hdfs-site.xml #增加配置 <configuration> <property> #副本数量 <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop2.10/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop2.10/tmp/dfs/data</value> </property> </configuration>
#配置mapred-site.xml lauf@master:~$ cd /usr/local/hadoop2.10/etc/hadoop lauf@master:~$ cp mapred-site.xml.template mapred-site.xml #复制一份 lauf@master:~$ sudo vim mapred-site.xml #添加配置 <property> <name>mapreduce.framework.name</name>#mapReduce的资源调度框架采用yarn <value>yarn</value> <name>mapreduce.jobhistory.address</name>#jobhistory服务器端地址 <value>master:10020</value> <name>mapreduce.jobhistory.webapp.address</name>#jobhistory的Web端地址 <value>master:19888</value> </property> #配置yarn-site.xml lauf@master:~$ sudo vim yarn-site.xml #增加配置 <property> <name>yarn.resourcemanager.hostname</name> <value>master</value>#配置担当resourcemanager的节点 <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value>#reduce获取数据方式为shuffle </property>
lauf@master:~$ cd /usr/local/hadoop2.10/bin
lauf@master:~$ ./hdfs namenode -format
#异常问题
#java.io.IOException: Cannot create directory /usr/local/hadoop/hdfs/name/current
#解决:sudo chmod -R u+w /usr/local/hadoop2.10/
#Storage directory /usr/local/hadoop2.10/tmp/dfs/name has been successfully formatted. 则成功格式化
lauf@master:~$ start-all.sh #deprecated
#也可以使用如下方式
lauf@master:~$ start-dfs.sh
lauf@master:~$ start-yarn.sh
lauf@master:~$ jps #查看相关组件进程
lauf@master:~$ hadoop fs -put test.mp4 / #将test.mp4上传至根目录下
lauf@master:~$ hadoop fs -ls / #查看根目录下的文件
#也可在浏览器中查看utilities
配置基本与伪分布式相同,在各节点遵循伪分布式安装与配置的基础上,执行如下:
1.配置/etc/hosts
在master上配置所有的集群节点IP hostname,然后将该文件同步到所有其他节点。
sudo vim /etc/hosts
192.168.43.107 master #需配置静态IP地址
192.168.43.108 slave1
192.168.43.109 slave2
xsync /etc/hosts #xsync是自己封装的rsync
注意:
在同步文件夹的时候,可能出现当前用户在远端服务器无法创建目录的情况,必须使当前用户一登录就具有root权限。
方案:
将/etc/passwd中当前用户的uid改为0
此时ssh user@remoteserver相当于root的远程登录
需要修改服务器sshd服务的配置文件
sudo vim /etc/ssh/sshd_config
PermitRootLogin yes
#重启服务
sudo service sshd restart
解决!!一般不建议这样做
2.更改集群中每个主机的名字
sudo vim /etc/hostname
master/slave1/slave2
3.配置文件slaves
在master上配置conf/slaves(列出所有的从节点),然后同步到其他节点
sudo vim slaves
slave1
slave2
#列出所有的从节点
xsync /usr/local/hadoop2.10/etc/hadoop/slaves #必须给绝对路径
4.配置master到slave的SSH免密登录
5.在master上开启集群
start-all.sh
#或者
start-dfs.sh
start-yarn.sh
#从节点的进程会被开启
hdfs dfsadmin -report
Configured Capacity: 19942490112 (18.57 GB)
Present Capacity: 11407425536 (10.62 GB)
DFS Remaining: 11407400960 (10.62 GB)
DFS Used: 24576 (24 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0
Pending deletion blocks: 0
Live datanodes (1):
Name: 192.168.43.108:50010 (slave1)
Hostname: slave1
Decommission Status : Normal
Configured Capacity: 19942490112 (18.57 GB)
DFS Used: 24576 (24 KB)
Non DFS Used: 7498444800 (6.98 GB)
DFS Remaining: 11407400960 (10.62 GB)
DFS Used%: 0.00%
DFS Remaining%: 57.20%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Fri Aug 06 11:30:09 CST 2021
Last Block Report: Fri Aug 06 11:29:30 CST 2021
查看不到集群信息,则没有配置好
yarn node -list #yarn-site.xml 必须配置yarn.resourcemanager.hostname-->master
sudo vim /usr/local/hadoop2.10/etc/hadoop/slaves
slave1
slave2 #加入新节点
将slaves配置文件同步到集群中的所有机器
xsync /usr/local/hadoop2.10/etc/hadoop/slaves
sudo vim /etc/hosts
ip1 slave1
ip2 slave2 #加入新节点
将hosts同步到集群中的所有机器
hadoop-daemon.sh start datanode
jps
#若未启动,则删除hadoop2.10/tmp 目录
#重试
yarn-daemon.sh start nodemanager
hdfs dfsadmin -report
可以查看到新的从节点,表示添加节点成功!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。