Hadoop的安装部署 一、伪分布式模式部署 1、部署模式 单机模式:测试使用 为分布式模型:运行于单机,但运行方式依然是以集群方式运行。 分布式模型:集群模型 2、配置JAVA环境 安装JDK yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 3、在hadoop官网下载hadoop安装包 4、安装解压hadoop到指定目录 # 创建安装hadoop的目录 mkdir /hadoop # 解压hadoop到指定目录 tar -xf hadoop-3.0.1.tar.gz -C /hadoop/ # 创建软链接 ln -sv hadoop-3.0.1/ hadoop # 配置hadoop的环境变量 vim /etc/profile.d/hadoop.sh export HADOOP_HOME=/hadoop/hadoop export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin export HADOOP_COMMON_HOME=${HADOOP_HOME} export HADOOP_HDFS_HOME=${HADOOP_HOME} export HADOOP_MAPRED_HOME=${HADOOP_HOME} export HADOOP_YARN_HOME=${HADOOP_HOME} 5、创建运行hadoop进程的用户和相关目录 # 创建用户 groupadd hadoop useradd -g hadoop yarn useradd -g hadoop hdfs useradd -g hadoop mapred 6、创建数据和日志目录 # 创建数据目录 mkdir -pv /data/hadoop/hdfs/{nn,snn,dn} # 修改hdfs目录的属主、属组 chown -R hdfs:hadoop /data/hadoop/hdfs/ 7、在hadoop目录中创建日志目录,并修改属主、属组 # 创建日志目录 mkdir logs # 修改属组有些权限 chmod g+w logs chown yarn:hadoop ./* 8、配置hadoop的配置文件 # 配置NameNode的主机地址和其监听的RPC端口信息 core-site.xml vim /hadoop/hadoop/etc/hadoop/core-site.xml 注:每一个属性都用用个进行包含 fs.defaultFS hdfs://localhost:9000 true hadoop.tmp.dir /data/hadoop/hdfs # hdfs-site.xml文件,配置hdfs相关属性,复制因子(复制副本的个数)、NameNode和Seconary NameNode存储数据的目录。 数据块的副本数对于伪分布式hadoop集群来说应为1. vim /hadoop/hadoop/etc/hadoop/hdfs-site.xml dfs.replication 1 dfs.name.dir file:///data/hadoop/hdfs/nn dfs.data.dir file:///data/hadoop/hdfs/dn dfs.permissions false 注:如果需要其他用户对hdfs有写入权限,需要在hdfs-site.xml添加另外一项属性定义。 dfs.permissions false # 配置mapred-site.xml文件。用于配置MapReduce framework。可用值可以是yarn、local、classic。 vim mapred-site.xml mapreduce.framework.name yarn # 配置yarn-site.xml文件。用于配置yarn进程和yarn的相关属性。 1、指定ResourceManager守护进程的主机和监听端口,对于伪分布式模型来说,主机为localhost,端口为8032 2、指定ResourceManger使用的scheduler(调度器) 3、指定NodeManger的辅助服务 vim yarn-site.xml yarn.resourcemanager.hostname localhost yarn.nodeemanager.aux-services mapreduce_shuffle yarn.resourcemanager.webapp.address 10.53.50.240:8088 # (视情况配置)hadoop-env.sh 和 yarn-env.sh 配置文件 hadoop的各个守护进程依赖于 JAVA-HOME 环境变量。可以通过 /etc/profile.d/java.sh文件配置全局变量,也可以编辑 这两个文件配置合适的值即可。此外,还可以对各类守护进程的堆内存大小进行调整。 # 配置slaves文件。slaves文件存储当前集群所有slave节点的列表,对于伪分布式模型,其文件内容仅应该为localhost。 3.0版本的slaves文件为workers 9、格式化HDFS文件系统 在HDFS的NN启动之前需要初始化其用于存储数据的目录。如果hdfs-site.xml中的dfs.namenode.name.dir属性指定的目录不存在, 格式化命令会自动创建目录,如果事先存在,则确保权限设置正确。格式化操作会清楚其内部的所有数据并重新建立新的文件系统。 需要一hdfs用户身份执行命令。 # 切换用户 su - hdfs # 配置环境变量 vim hadoop-env.sh export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk # 格式化HDFS文件系统 hdfs namenode -format # 查看namenode节点是否生成元数据 10、启动停止hdfs集群服务 # 启动hadoop NameNode: hadoop-daemon.sh start|stop namenode DataNode: hadoop-daemon.sh start|stop datanode Secondary NameNode: hadoop-daemon.sh start|stop secondarynamenode ResourceManager: tarn-daemon.sh start|stop resourcemanager NodeManager: yarn-daemon.sh start|stop nodemanager # 新版本hadoop 3.0.2 hdfs --daemon start namenode # 启动名称节点 hdfs --daemon start secondarynamenode # 启动第二名称节点 hdfs --daemon start datanode # 启动数据节点 11、查看进程是否正常启动 jps 12、测试存储数据 hdfs dfs -mkdir /data_test # 创建目录 hdfs dfs -ls / # 查看目录 hdfs dfs -put /etc/fstab /data_test # 上传测试文件 hdfs dfs -cat /data_test/fstab # 查看上传的文本文件的内容也可以直接通过本地文件系统查看文本文件的内容 13、启动停止yarn集群 # 切换到yarn用户 su - yarn # 启动resourcemanager yarn --daemon start resourcemanager # 启动nodemanager yarn --daemon start nodemanager 14、web UI接口 HDFS和yarn ResourceManager各自提供了一个web接口,通过这些接口可检查HDFS集群以及yarn集群的相关状态。 HDFS web UI接口:http://10.53.50.240:9870 yarn web UI接口:http://10.53.50.240:8088 15、运行计算任务 # 切换身份 su - hdfs # 运行计算程序 yarn jar hadoop-mapreduce-examples-3.0.1.jar TaskNmae 示例:yarn jar hadoop-mapreduce-examples-3.0.1.jar wordcount /data_test/fstab /data_test/fatab.out