1. 安装 JDK

  1. 安装 Java

Hadoop Java 版本支持

  1. # centos
  2. yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
  3. java -version
  1. 配置环境变量
  1. cat <<EOF | sudo tee /etc/profile.d/java8.sh
  2. export JAVA_HOME=/usr/lib/jvm/jre-openjdk
  3. export PATH=\$PATH:\$JAVA_HOME/bin
  4. export CLASSPATH=.:\$JAVA_HOME/jre/lib:\$JAVA_HOME/lib:\$JAVA_HOME/lib/tools.jar
  5. EOF
  6. source /etc/profile.d/java8.sh

3 Java 安装路径

  1. update-alternatives --display java

2. 配置 SSH 免密登陆

  1. 安装 SSH
  1. yum install open-ssh
  1. 安装 rsync
  1. yum install rsync
  1. 生成 SSH Key
  1. ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  1. 测试

第一次会提示输入密码,第二次则无需密码登陆

  1. ssh root@localhost

3. Hadoop 安装

  1. 下载 Hadoop
  1. wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
  1. 安装 Hadoop
  1. tar -zxvf hadoop-3.3.1.tar.gz
  2. sudo mv hadoop-3.3.1 /usr/local/hadoop
  1. 设置环境变量
  1. sudo vim ~/.bashrc
  2. # HADOOP 路径
  3. export HADOOP_HOME=/usr/local/hadoop
  4. # 设置 PATH
  5. export PATH=$PATH:$HADOOP_HOME/bin
  6. export PATH=$PATH:$HADOOP_HOME/sbin
  7. # 设置 HADOOP 其他环境变量
  8. export HADOOP_MAPRED_HOME=$HADOOP_HOME
  9. export HADOOP_COMMAN_HOME=$HADOOP_HOME
  10. export HADOOP_HDFS_HOME=$HADOOP_HOME
  11. # 链接库相关设置
  12. export YARN_HOME=$HADOOP_HOME
  13. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
  14. export HADOOP_OPTS="-DJava.library.path=$HADOOP_HOME/lib"
  15. export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
  16. source ~/.bashrc

4. 修改 Hadoop 配置文件

  1. 编辑 Hadoop-env.sh
  1. sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
  2. export JAVA_HOME=/usr/lib/jvm/jre-openjdk
  1. 编辑 core-site.xml
  1. sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml
  1. <configuration>
  2. <!-- 设置 HDFS 默认名称-->
  3. <property>
  4. <name>fs.default.name</name>
  5. <value>hdfs://localhost:9000</value>
  6. </property>
  7. </configuration>
  1. 设置 YARN-site.xml
  1. sudo vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
  1. <configuration>
  2. <property>
  3. <name>yarn.nodemanager.aux-services</name>
  4. <value>mapreduce_shuffle</value>
  5. </property>
  6. <property>
  7. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  8. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  9. </property>
  10. </configuration>
  1. 设置 mapred-site.xml
  1. sudo vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. </configuration>
  1. 设置 hdfs-site.xml
  1. sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
  1. <configuration>
  2. <!-- 设置 blocks 副本备份数量 -->
  3. <property>
  4. <name>dfs.replication</name>
  5. <value>3</value>
  6. </property>
  7. <!-- 设置 NameNode 数据存储目录 -->
  8. <property>
  9. <name>dfs.namenode.name.dir</name>
  10. <value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
  11. </property>
  12. <!-- 设置 DataNode 数据存储目录 -->
  13. <property>
  14. <name>dfs.datanode.data.dir</name>
  15. <value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
  16. </property>
  17. <!-- 任意网卡均可访问 -->
  18. <property>
  19. <name>dfs.http.address</name>
  20. <value>0.0.0.0:50070</value>
  21. </property>
  22. </configuration>

5. 格式化 HDFS 目录

  1. 创建 namenode datanode 存储目录
  1. mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
  2. mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
  1. 修改目录所有者为 hduser(单节点使用 root用户则无需该步骤)
  1. chown hduser:hduser -R /usr/local/hadoop
  1. 格式化 HFDFS
  1. hadoop namenode -format

6. 启动 Hadoop

  1. start-dfs.sh
  2. start-yarn.sh
  3. start-all.sh

使用 jps 命令查看运行进程:

  1. > jps
  2. #HDFS
  3. 1683 DataNode
  4. 1877 SecondaryNameNode
  5. 1545 NameNode
  6. # YARN
  7. 2121 ResourceManager
  8. 2271 NodeManager

7. 测试

  1. Hadoop ResourceManager Web:本机访问 localhost:8088 或 服务器IP:8088 ;
  2. HDFS Web: 本机访问 localhost:50070 或 服务器IP:50070 ;

8. 注意事项

  1. Start-all.sh 启动,错误信息为there is no HDFS_NAMENODE_USER defin:
    在 hadoop/sbin 目录下
    • start-dfs.sh 和 stop-dfs.sh 中添加参数:
      1. HDFS_DATANODE_USER=root
      2. HDFS_DATANODE_SECURE_USER=hdfs
      3. HDFS_NAMENODE_USER=root
      4. HDFS_SECONDARYNAMENODE_USER=root
  • start-yarn.sh 和 stop-yarn.sh 中添加参数:
    1. YARN_RESOURCEMANAGER_USER=root
    2. HDFS_DATANODE_SECURE_USER=yarn
    3. YARN_NODEMANAGER_USER=root
  1. 若本机无法访问,可检查防火墙是否关闭或将8088 50070端口加入白名单;
  2. 端口转发,若不能访问,可开启端口转发,设置8088和50070端口;