3台:
名称 | IP |
hadoop01 | 192.168.204.130 |
hadoop02 | 192.168.204.131 |
hadoop03 | 192.168.204.132 |
目录
1:解压jdk-8u161-linux-x64.tar.gz
3:把/data/hadoop 下面hadoop-3.3.0重命名为app
1:在执行scp命令之前,请确保目标目录存在或根据需要进行创建。可以使用以下命令创建目录如果有就没有必要执行
1:下载jdk,镜像:
2:创建文件夹
1:在/创建mwd文件夹放压缩包
mkdir /mwd
2:在/usr/lib/目录下创建jvm文件放jdk
mkdir /usr/lib/jvm
3:创建/data/hadoop目录放hadoop
mkdir -p /data/hadoop
3:解压安装包更改haoop名字
1:解压jdk-8u161-linux-x64.tar.gz
cd /mwd
tar -zxvf jdk-8u161-linux-x64.tar.gz -C/usr/lib/jvm
2:解压hadoop3.3.0
cd /mwd
tar -zxvf hadoop-3.3.0.tar.gz -C/data/hadoop
3:把/data/hadoop 下面hadoop-3.3.0重命名为app
cd /data/hadoop/
mv /data/hadoop/hadoop-3.3.0 app
4:配置jdk,hadoop环境
1:编辑/etc/profile文件添加
vim /etc/profile
#配置java路径
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$PATH
#配置hadoop路径
export HADOOP_HOME=/data/hadoop/app
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
#指定进程的用户名字
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
2:刷新一下用户配置
source /etc/profile
3:查看配置
java -version
hadoop version
5:hadoop配置
1:进入hadoop配置目录
cd /data/hadoop/app/etc/hadoop/
2:配置hadoop-env.sh
vim hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_161
3:配置core-site.xml
vim core-site.xml
<configuration>
<!--设置默认使用的文件系统Hadoop支持file,HDFS,GFS,ali|Amazon云等文件系统 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>
<!--于指定文件读写时的缓冲区大小。缓冲区是一块内存区域,用于临时存储文件数据,以提高文件读写的性能-->
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<!--文件系统垃圾桶保存时间-->
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<!--设置Hadoop本地保存数据路径-->
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/temp</value>
</property>
<!-- 设置HDFS web UI用户身份-->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!--整合hive用户代理设置-->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<!--配置Hadoop代理用户(proxyuser)的用户组(groups)权限-->
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
4:配置vim hdfs-site.xml文件
vim hdfs-site.xml
<configuration>
<!--设置SNN进程运行机器位置信息-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:9868</value>
</property>
</configuration>
5:配置mapred-site.xml
vim mapred-site.xml
<configuration>
<!--设置MR程序默认运行模式:YARN集群模式 local本地模式-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--MR程序历史服务地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:10020</value>
</property>
<!--MR程序历史服务器web端地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
<!---->
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!---->
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!---->
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
</configuration>
6:配置yarn-site.xml
vim yarn-site.xml
<configuration>
<!--设置YARN集群主角色运行机器位置-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<!---->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--是否对容器实施物理内存限制-->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--开启日志聚集-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!--设置yare历史服务器地址-->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop01:1988/jobnistory/logs</value>
</property>
</configuration>
7:配置workers文件
vim workers
hadoop01
hadoop02
hadoop03
6:分发目录
1:在执行scp命令之前,请确保目标目录存在或根据需要进行创建。可以使用以下命令创建目录如果有就没有必要执行
ssh root@hadoop02 "mkdir -p /data/hadoop"
ssh root@hadoop02 "mkdir -p usr/lib/jvm/jdk1.8.0_161/"
ssh root@hadoop03 "mkdir -p /data/hadoop"
ssh root@hadoop03 "mkdir -p usr/lib/jvm/jdk1.8.0_161/"
2:分发环境目录
scp -r /etc/profile root@hadoop02:/etc/profile
scp -r /etc/profile root@hadoop03:/etc/profile
3:分发jdk目录
scp -r /usr/lib/jvm/jdk1.8.0_161/ root@hadoop02:/usr/lib/jvm/
scp -r /usr/lib/jvm/jdk1.8.0_161/ root@hadoop03:/usr/lib/jvm/
4:分发hadoop目录
scp -r /data/hadoop/app/ root@hadoop02:/data/hadoop/
scp -r /data/hadoop/app/ root@hadoop03:/data/hadoop/
5:刷新一下hadoop02 hadoop03用户配置
source /etc/profile
6:查看hadoop02 hadoop03配置
java -version
hadoop version
7:格式化NameNode
规划中是hadoop01
作为NameNode
,在该机器下进行格式化:
hadoop namenode -format
格式化NameNode
成功的控制台日志如下:
8:启动和停止hadoop
1:全部启动和停止HDFS 和YARN
start-all.sh
stop-all.sh
2:jps查看进程
jps
[root@hadoop01 ~]# jps
4691 DataNode #从角色 HDES
5494 NodeManager #从角色 YNRN
7190 Jps
5294 ResourceManager
4495 NameNode #主角色 HDFS
[root@hadoop02 ~]# jps
6275 Jps
4313 DataNode #从角色 HDES
4476 SecondaryNameNode # 主角色辅助角色 HDFS
4733 NodeManager #从角色 YNRN
[root@hadoop03 ~]# jps
6266 Jps
4315 DataNode #从角色 HDES
4668 NodeManager #从角色 YNRN
9:通过WEB管理界面查看集群状态
访问入口如下:
-
HDFS
入口:http://192.168.204.130:9870
或者 hdoop01:9870(来自于hdfs-site.xml
的dfs.http.address
配置项)(如果hadoop01:9870访问不了可能是没有在主机上添加IP win(在主机上可以ping hadoop01)) -
-
YARN
入口:http://192.168.204.130:8088/cluster
或者 hdoop01:8088(ResourceManager
所在节点的8088
端口) -
10:HDFS shell 命令
1:查看
hadoop fs -ls file:/// #查看本地文件系统
hadoop fs -ls hdfs://hadoop01:50070/ #读取HDFS里面目录
hadoop fs -ls / #读取HDFS里面目录core-site.xml配置好了
hadoop fs -ls -h /
hadoop fs -ls -R / #递归查看目录和子目录
2:创建文件夹
hadoop fs -mkdir /itcast #在hdfs更目录下创建itcast目录
hadoop fs -mkdir -p /itcast/iter #在hdfs上递归创建目录
3:上传文件到HDFS
hadoop fs -put anaconda-ks.cfg /itcast #上传文件到HDFS下的itcast目录下
4:查看HDFS文件内容
hadoop fs -cat /1.txt
5:向HDFS下载文件到当前文件夹下
hadoop fs -get anaconda-ks.cfg ./
6:追加数据到HDFS文件中(小文件合并)
hadoop fs -appendToFile 2.txt 3.txt /1.txt
7:HDFS删除文件
hdfs dfs -rm <文件路径>
hdfs dfs -rm -r <文件夹路径>
11:MapReduce程序
示例程序路径
cd /data/hadoop/app/share/hadoop/mapreduce/
示例程序
hadoop-mapreduce-examples-3.3.0.jar
MapReduce程序提交命令
hadoop jar hadoop-mapreduce-examples-3.3.0.jar..
1:评估pi的值
cd /data/hadoop/app/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-3.3.0.jar pi 100 200
2:WordCoun概述
上传1.txt文件(里面是一些单词)到HDFS
hadoop jar hadoop-mapreduce-examples-3.3.0.jar wordcount /input /outp