1、下载3.1.1
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.1/
2、上传Linux服务器(目录:/usr/local/big_data/hadoop)
tar -zxvf hadoop-3.1.1.tar.gz
3、配置Hadoop环境变量
vim /etc/profile
export HADOOP_HOME=/usr/local/big_data/hadoop/hadoop-3.1.1
PATH=$PATH:$HADOOP_HOME/bin
source /etc/profile
4、启动HDFS环境需要配置文件(http://archive.cloudera.com/cdh5)
core-site.xml
<!-- NameNode URI -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ip:9000</value>
<description>hdfs://host:port/</description>
</property>
<!-- <property>
<name>io.file.buffer.size</name>
<value>131072</value>
<description>SequenceFiles文件中.读写缓存size设定(该属性值单位为KB,131072KB即为默认的64M)</description>
</property> -->
hdfs-site.xml
<!-- 配置NameNode -->
<property>
<name>dfs.replication</name>
<value>1</value>
<description>分片数量,伪分布式将其配置成1即可</description>
</property>
<!-- <property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/big_data/hadoop/tmp/dfs/namenode</value>
<description>命名空间和事务在本地文件系统永久存储的路径</description>
</property>
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
<description>大文件系统HDFS块大小为256M,默认值为64M</description>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
<description>更多的NameNode服务器线程处理来自DataNodes的RPCS</description>
</property> -->
<!-- 配置DataNode -->
<!-- <property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/big_data/hadoop/tmp/dfs/datanode</value>
<description>DataNode在本地文件系统中存放块的路径</description>
</property> -->
<name>dfs.permissions.enabled</name>
<value>false</value>
<description>文件权限</description>
</property>
hadoop-env.sh(启动HDFS报错可以根据报错配置一下内容)
# 给定 Java 安装的根目录hadoop-env.sh配置文件
export JAVA_HOME=/usr/local/jdk1.8.0_172
# hadoop-env.sh配置文件添加如下环境变量
export HDFS_DATANODE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
启动HDFS各个进程
4.1、格式化NameNode(作用: 清空NameNode目录下的所有数据,生成目录结构,初始化一些信息文件
)
./hdfs namenode -format
进入cd /tmp/hadoop-root查看项目生成的内容
4.2、启动NameNode、DataNode、SecondaryNameNode
./start-dfs.sh
或
./sbin/hadoop-daemon.sh start namenode
./sbin/hadoop-daemon.sh start datanode
./sbin/hadoop-daemon.sh start secondarynamenode
4.3、访问
9870是http协议的端口号,9000是Rpc tcp协议端口号
5、启动Yarn环境需要配置文件
mapred-site.xml
<!-- 使用哪个环境来进行分布式计算的,默认是local-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<!-- 跑什么样的作业 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
启动Yarn进程
5.1、启动ResoureManager、NodeManager
./start-yarn.sh
或
./yarn-daemon.sh start resouremanager
./yarn-daemon.sh start nodemanager
5.2、访问
注意:8032是RPC tcp协议端口号,8088是Http协议端口号
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1、查看免密码的ssh
ssh localhost
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
2、免密码登录 cd /root/.ssh/
生成公私钥对
ssh-keygen -t rsa
生成 id_rsa id_rsa.pub
拷贝公钥到远程主机或本机authorized_keys文件
ssh-copy-id <主机名> 生成authorized_keys
可以直接连接第二个服务器无需密码,回来需要密码
ssh 主机名2
3、HDFS命令行
3.1、bin/hdfs dfs 命令
-help:显示命令的帮助信息
-mkdir【-p】:创建目录,p可以创建不存在的父路径
-ls(r):显示当前目录下的所有文件
-put: 本地文件上传到HDFS上
-copyFromLocal:本地文件复制到HDFS
-moveFromLocal:本地文件移动到HDFS
-du(s):显示目录中所有文件大小;只指定一个文件时,显示此文件大小
-count(p):显示当前目录下的所有文件大小
------------------------------------------------------------------------------------------------
-mv:移动文件/到目标目录
-cp:复制文件/目录到目标目录
-rm(r):删除文件/目录
-get[-ignoreCrc]:复制文件到本地,可以忽悠crc校验
-cat:在终端显示文件内容
-text:在终端显示文件内容,将源文件输出为文本格式
-copyToLocal[-ignoreCrc]:复制文件到本地
-moveToLocal:移动文件到本地
3.2、bin/hdfs dfsadmin 管理命令(主要用于运维开发不重要)
-report:查看文件系统的基本信息和统计信息
-safemode enter | leave | get |wait:安全模式命令
-refreshNodes:重新读取host和exclude文件,在新增节点或者注销节点时用
-finalizeUpgrade:终结HDFS的升级操作
-setQuota <quota> <dirname> :为每个目录<dirname>设定配额<quota>
-clrQuota <dirname> :为每个目录<dirname>清除配额设定
---------------------------------------------------------------------------------问题----------------------------------------------------------------------------------
1、./bin/hadoop jar /usr/local/big_data/hadoop/hadoop-3.1.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar wordcount file:/usr/local/big_data/hadoop/hadoop-3.1.1/LICENSE.txt file:/usr/local/big_data/hadoop/output报错
错误: 找不到或无法加载主类org.apache.hadoop.mapreduce.v2.app.MRAppMaster
命令行输入:hadoop classpath
vim etc/hadoop/yarn-site.xml
<property>
<name>yarn.application.classpath</name>
<value>hadoop classpath返回的值</value>
</property>
重启./sbin/start-yarn.sh