前提:需要安装好JDK,需要配置ssh免密(可参考问题2的设置)
1、下载Hadoop
打开Hadoop下载地址,下载3.3.1版本
下载:wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
2、Hadoop安装
配置域名vin /etc/hosts
例如:10.1.1.196 hadoop001
重启系统(重启生效)
2.1、解压缩和移动到/usr/local目录
tar -zxvf hadoop-3.3.1.tar.gz
2.2、执行如下命令,在 /data 目录下创建hadoop数据存储的目录
mkdir -p /home/hadoop/hdfs/tmp /home/hadoop/hdfs/data /home/hadoop/hdfs/name
2.3、配置环境变量vim /etc/profile
export HADOOP_HOME=/home/hadoop/hadoop-3.3.1 export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin |
2.4、修改hadoop的hadoop-env.sh配置
修改${hadoop_home}/etc/hadoop/hadoop-env.sh文件,设置JAVA_HOME和HADOOP_HOME变量
设置为root用户
所有的用户配置:
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.5、配置core-site.xml
${hadoop_home}/etc/hadoop/core-site.xml
如下,两个位置分别为虚拟机主机名和上述步骤中创建的 tmp目录
<configuration> <!-- 指定 NameNode 的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop001:9000</value> </property> <!-- 指定 hadoop 数据的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hdfs/tmp</value> </property> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> </configuration> |
2.6、修改hdfs-site.xml
${hadoop_home}/etc/hadoop/hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> <description>副本个数,配置默认是3,应小于datanode机器数量</description> </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/hdfs/name</value> <final>true</final> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/hdfs/data</value> <final>true</final> </property> <property> <name>dfs.http.address</name> <value>0.0.0.0:50070</value> <description>将绑定IP改为0.0.0.0,而不是本地回环IP,这样,就能够实现外网访问本机的50070端口了</description> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration> |
2.7、修改:mapre-site.xml
${hadoop_home}/etc/hadoop/mapre-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> |
2.8、修改yarn-site.xml
${hadoop_home}/etc/hadoop/yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> |
3、启动HDFS
首先执行如下命令格式化hdfs
$hdfs namenode -format
依次执行命令
$hadoop-daemon.sh start namenode $hadoop-daemon.sh start datanode $hadoop-daemon.sh start secondarynamenode |
或者sbin目录下,执行./start-all.sh
查询端口:
停止服务和启动服务:
sbin/stop-all.sh
Sbin/start-all.sh
4、访问
浏览器访问http://10.1.1.196:50070/ ,如下,表示单机版已经安装OK
参考:https://blog.csdn.net/redrose2100/article/details/117922189
问题列表:
问题1:start-dfs.sh命令执行时,报错(需要配置ssh免密)
hadoop001: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
原因:hadoop001这台机器没有配置ssh免密登录
解决办法:
配置ssh免密登录: 1、先进入到~/.ssh/路径 cd ~/.ssh/ 2、创建公钥/私钥 ssh-keygen -t rsa 按三下Enter键即可 3、复制公钥id到hadoop001 ssh-copy-id hadoop001 4、查看能否免密登录成功 ssh hadoop001 出现以下信息,免密登录 |
其他参考:start-all.sh或stop-all.sh命令执行时,报错
ERROR: Attempting to operate on yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
出现以上报错信息需要到 sbin 目录下 更改 start-yarn.sh 和 stop-yarn.sh 信息,在两个配置文件的第一行添加
YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root |