站长之家html模板,wordpress对php版本,h5自适应网站模板,wordpress login form0. 写在前面
0.1 软件版本
hadoop2.10.2 ubuntu20.04 openjdk-8-jdk
0.2 hadoop介绍
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下#xff0c;开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个…0. 写在前面
0.1 软件版本
hadoop2.10.2 ubuntu20.04 openjdk-8-jdk
0.2 hadoop介绍
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统 Distributed File System其中一个组件是HDFSHadoop Distributed File System。HDFS有高容错性的特点并且设计用来部署在低廉的low-cost硬件上而且它提供高吞吐量high throughput来访问应用程序的数据适合那些有着超大数据集large data set的应用程序。HDFS放宽了relaxPOSIX的要求可以以流的形式访问streaming access文件系统中的数据。Hadoop的框架最核心的设计就是HDFS和MapReduce。HDFS为海量的数据提供了存储而MapReduce则为海量的数据提供了计算 .—百度词条hadoop
1. 创建hadoop用户
lynnlynn:~$ sudo useradd -m hduser -s /bin/bash # 创建用户hduser 并指定使用bash终端作为shell
lynnlynn:~$ cd /home
lynnlynn:~$ ls
hduser lynn # 代表用户创建成功
lynnlynn:~$ sudo passwd hduser # 设置密码
lynnlynn:~$ sudo adduser hduser sudo # 为hduser增加管理员权限
Adding user hduser to group sudo ...
Adding user hduser to group sudo
Done.
# 然后切换用户登录2. 安装java
注意已经切换到了hduser用户,lynn主机下
hduserlynn:~$ sudo apt-get update # 更新包
# The unable to lock directory /var/lib/apt/lists/ error on Ubuntu typically occurs when the APT package management system is already running or has crashed.如果出现unable to lock,多数是因为APT包管理系统正在运行或崩溃可尝试重启
# hduserlynn:~$ ps aux | grep -i apt # 可使用此命令查看哪些安装在使用apt如果有则等待这些安装完成
# The error in Ubuntu may be displayed below:
# /var/lib/dpkg/lock
# /var/lib/dpkg/lock-frontend
# /var/lib/apt/lists/lock
# /var/cache/apt/archives/lock
# These are lock files, which could prevent two instances of apt or dpkg from using the same files simultaneously.
# This could occur if an installation is needed or did not finish. Just remove the lock files.
# To delete or erase the lock files, use the rm command:
# sudo rm /var/lib/dpkg/lock
# sudo rm /var/lib/apt/lists/lock
# sudo rm /var/cache/apt/archives/lock
hduserlynn:~$ sudo apt search jdk # 查找jdk包也可以直接运行下一条命令# 安装openjdk-8-jdk版本
hduserlynn:~$ sudo apt install openjdk-8-jdk
# 安装完成之后查看一下版本号确认安装成功
hduserlynn:~$ java -version
hduserlynn:~$ javac -version
hduserlynn:~$ update-alternatives --display java # 查看已安装的java版本列表hduserlynn:~$ sudo gedit .bashrc # 设置环境变量
# 在弹出的窗口最后增加如下语句
# export JAVA_HOME/usr/lib/jvm/java-8-openjdk-amd64/bin/java # 设置Java的运行程序
# export JRE_HOME$JAVA_HOME/jre
# export CLASSPATH.:$JAVA_HOME/lib:$JRE_HOME/lib
# export PATH$PATH:$JAVA_HOME/bin
hduserlynn:~$ source .bashrc # 使环境变量生效
3. 安装hadoop
从清华镜像源网站下载hadoop2.10.2版本
hduserlynn:~$ sudo tar -zxvf hadoop-2.10.2.tar.gz
hduserlynn:~$ sudo mv hadoop-2.10.2 /usr/local/hadoop
hduserlynn:~$ sudo gedit ~/.bashrc # 设置hadoop环境变量如果gedit打开失败试试重启终端
export JAVA_HOME/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME/usr/local/hadoop
export PATH$PATH:$HADOOP_HOME/bin
export PATH$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME$HADOOP_HOME
export HADOOP_COMMON_HOME$HADOOP_HOME
export HADOOP_HDFS_HOME$HADOOP_HOME
export YARN_HOME$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR$HADOOP_HOME/lib/native
export HADOOP_OPTS-Djava.library.path$HADOOP_HOME/lib
export JAVA_LIBRARY_PATH$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
hduserlynn:~$ source ~/.bashrc # 使环境变量生效3.0 配置SSH
# 安装ssh
hduserlynn:~$ sudo apt-get install ssh
hduserlynn:~$ ssh-keygen -t rsa -P -f ~/.ssh/id_rsa
# -t 指定要生成的密钥类型
# -P 表示密码表示不指定密码进行连接
# -f 是密钥生成之后保存的位置
hduserlynn:~$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys # 拷贝公钥到要进行免密登录的机器上
hduserlynn:~$ ssh localhost # 登录本机
hduserlynn:~$ ll ~/.ssh # 查看相关文件3.1 单机伪分布模式
在一台运行linux的单机上用伪分布方式用不同的进程模拟分布运行下的NameNode、DataNode、JobTracker、TaskTracker等各类节点。
3.1.1 配置hadoop-env
hduserlynn:~$ sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh修改JAVA_HOME 原来是export JAVA_HOME${JAVA_HOME} 修改为export JAVA_HOME/usr/lib/jvm/java-8-openjdk-amd65
3.1.2 配置core-site.xml
设置HDFS的默认名称
hduserlynn:~$ sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xmlconfigurationpropertynamefs.default.name/namevaluehdfs://localhost:9000/value/property
/configuration3.1.3 设置yarn-site.xml
hduserlynn:~$ sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xmlconfiguration
!-- Site specific YARN configuration properties --
property nameyarn.nodemanager.aux-services/name valuemapreduce_shuffle/value
/property
property nameyarn.nodemanager.aux-services.mapreduce.shuffle.class/name valueorg.apache.hadoop.mapred.ShuffleHandler/value
/property
/configuration3.1.4 编辑mapred-site.xml
hduserlynn:~$ sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
hduserlynn:~$ sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xmlconfiguration
propertynamemapreduce.framework.name/namevalueyarn/value
/property
/configuration3.1.5 设置hdfs-site.xml
hdfs-site.xml 用于设置HDFS分布式文件系统的相关配置。Single Node Cluster中只有一台服务器所以需要身兼NameNode和DataNode.
hduserlynn:~$ sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xmlconfigurationproperty!--设置备份数量为3--namedfs.replication/namevalue3/value /propertypropertynamedfs.namenode.name.dir/namevaluefile:/usr/local/hadoop/hadoop_data/hdfs/namenode/value/propertypropertynamedfs.datanode.data.dir/namevaluefile:/usr/local/hadoop/hadoop_data/hdfs/datanode/value/property
/configuration3.1.6 创建hdfs目录并格式化HDFS文件系统
# 创建NameNode数据存储目录
hduserlynn:~$ sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
# 创建DataNode数据存储目录
hduserlynn:~$ sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
# 将hadoop目录的所有者更改为hduser
hduserlynn:~$ sudo chown hduser:hduser -R /usr/local/hadoop
# 格式化namenode-将HDFS格式化
hduserlynn:~$ hadoop namenode -format3.1.7 启动HDFS
# 启动hdfs
hduserlynn:~$ start-dfs.sh
# 启动YARN
hduserlynn:~$ start-yarn.sh# jps可以列出运行的所有java虚拟机进程
hduserlynn:~$ jps3.1.8 查看集群状态
http://localhost:8088 http://localhost:50070
3.2 集群分布方式
在真实的集群环境下安装运行hadoop系统集群的每个节点可以运行linux. 将在VMware上创建4台虚拟机分别是master,data1,data2,data3
将在每一台虚拟机设置两张网卡
网卡1设置为NAT网卡可以通过host主机连接到外部网络internet网卡2设置为“仅主机模式”用于创建内部网络内部网络连接4台虚拟主机与Host主机IP地址master 192.168.56.100 data1 192.168.56.101 data2 192.168.56.102 data3 192.168.56.103
3.2.1 创建data1节点
从刚才创建的Single node clutch节点克隆出data1节点。选择创建完整克隆命名为data1. 添加网卡
3.2.1.1 设置固定IP
# 查看data1中的网卡
hduserlynn:/$ ifconfig
# 显示分别是ens33,ens37
# ens33是ubuntu默认的NAT的网卡
# 对应我们集群使用的网卡为ens37
# 配置静态IP
hduserlynn:/$ sudo gedit /etc/netplan/01-network-manager-all.yaml
network:ethernets:ens37:addresses: [192.168.56.101/24] # 注意冒号后面需要有空格dhcp4: nooptional: truegateway4: 192.168.56.1nameservers:addresses: [192.168.56.1,114.114.114.114] # 114.114.114.114是电信的version: 2renderer: NetworkManager
hduserlynn:/$ sudo netplan apply
hduserlynn:/$ ifconfig3.2.1.2 编辑主机名和hosts文件
# 编辑hostname主机名 设置data1
hduserlynn:/$ sudo gedit /etc/hostname
data1
# 编辑hosts文件
hduserlynn:/$ sudo gedit /etc/hosts
192.168.56.100 master
192.168.56.101 data1
192.168.56.102 data2
192.168.56.103 data33.2.1.3 编辑core-site.xml,yarn-site.xml,mapred-site.xml,hdfs-site.xml
hduserlynn:/$ sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xmlconfigurationpropertynamefs.default.name/namevaluehdfs://master:9000/value/property
/configurationhduserlynn:/$ sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml configuration
!--设置ResouceManager主机与NodeManager的连接地址NodeManager通过这个地址向ResourceManager汇报运行情况--
propertynameyarn.resourcemanager.resource-tracker.address/namevaluemaster:8025/value/property!--设置ResourceManager与ApplicationMaster的连接地址ApplicationMaster通过这个地址向ResourceManager申请资源、释放资源等--propertynameyarn.resourcemanager.scheduler.address/namevaluemaster:8030/value/property
!--设置ResourceManager与客户端的连接地址客户端通过该地址ResourceManger注册应用程序、删除程序等--propertynameyarn.resourcemanager.address/namevaluemaster:8050/value/property
/configurationhduserlynn:/$ sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml
# mapred-site.xml用于设置监控Map与Reduce程序的JobTracker任务分配情况以及TaskTracker任务运行状况
# 修改设置mapreduce.job.tracker的连接地址为master:54311configuration
propertynamemapred.job.tracker/namevaluemaster:54311/value
/property
/configurationhduserlynn:/$ sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
configurationpropertynamedfs.replication/namevalue3/value /propertypropertynamedfs.datanode.data.dir/namevaluefile:/usr/local/hadoop/hadoop_data/hdfs/datanode/value/property
/configuration3.2.2 创建data2,data3,master节点
克隆data1到data2,data3,master
3.2.2.1 分别设置每个主机的固定IP
hduserdata1:/$ sudo gedit /etc/netplan/01-network-manager-all.yamlens37:# 只需要更改此处的IP地址,data2为192.168.56.102# data3为192.168.56.103# master为192.168.56.100addresses: [192.168.56.102/24]dhcp4: nooptional: true
# 使设置生效
hduserdata1:/$ sudo netplan apply
# 查看网卡信息确认ip地址无误
hduserdata1:/$ ifconfig 3.2.2.2 设置每个主机的主机名
# data2设置为data2;data3设置为data3,master设置为master
hduserdata1:/$ sudo gedit /etc/hostname3.2.3 设置master服务器
3.2.3.1 设置hdfs-site.xml
因为master现在只是单纯的NameNode,删除DataNode的HDFS设置
hdusermaster:~$ sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
configurationpropertynamedfs.replication/namevalue3/value /propertypropertynamedfs.namenode.name.dir/namevaluefile:/usr/local/hadoop/hadoop_data/hdfs/namenode/value/property
/configuration3.2.3.2 编辑masters文件和slaves文件
masters文件主要是告诉hadoop系统哪一台服务器是NameNode.
slaves文件主要是告诉hadoop系统哪些服务器是DataNode.
hdusermaster:~$ sudo gedit /usr/local/hadoop/etc/hadoop/masters
master
hdusermaster:~$ sudo gedit /usr/local/hadoop/etc/hadoop/slaves
data1
data2
data33.2.4 测试
启动master,data1,data2,data3四个节点从master主机连接到data1
hdusermaster:~$ ssh data1创建HDFS目录datanode,对data2及data3重复此操作.
hduserdata1:~$ sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs/
[sudo] password for hduser:
hduserdata1:~$ mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
hduserdata1:~$ sudo chown -R hduser:hduser /usr/local/hadoop
hduserdata1:~$ exit
logout
Connection to data1 closed.重新创建并格式化NameNode HDFS目录
# 创建NameNode目录
hdusermaster:~$ sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
[sudo] password for hduser:
hdusermaster:~$ mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
hdusermaster:~$ sudo chown -R hduser:hduser /usr/local/hadoop
# 格式化
hdusermaster:~$ hdfs namenode -format启动hadoop multinode cluster
hdusermaster:~$ start-dfs.sh
hdusermaster:~$ start-yarn.sh
hdusermaster:~$ jps可以看见master服务器的状态 HDFS功能Namenode,SecondaryNameNode MapReduce2(YARN): ResourceManager 查看数据服务器节点data1(DataNode)进程的状态 在data1的终端上输入jps HDFS:DataNode MapReduce2(YARN : NodeManager 打开Hadoop ResouceManager Web界面 http://master:8088 打开NameNode Web界面 http://master:50070/