单机伪分布Hadoop详细配置
目录
- 1. 引言
- 2. 配置单机Hadoop
- 2.1 下载并解压JDK1.8、Hadoop3.3.6
- 2.2 配置环境变量
- 2.3 验证JDK、Hadoop配置
- 3. 伪分布Hadoop
- 3.1 配置ssh免密码登录
- 3.2 配置伪分布Hadoop
- 3.2.1 修改hadoop-env.sh
- 3.2.2 修改core-site.xml
- 3.2.3 修改hdfs-site.xml
- 3.2.4 修改yarn-site.xml
- 3.2.5 修改mapred-site.xml
- 3.2.6 格式化namenode
- 3.3 测试Hadoop
- 参考
1. 引言
不知道是不是Docker的原因,导致我电脑的系统盘健康度急剧减少。
换了一个SSD,安装Docker后发现健康度又掉了1%,所以接下来只能用华为云开发空间的2CPU4G内存云主机来重新配置Hadoop。
2. 配置单机Hadoop
2.1 下载并解压JDK1.8、Hadoop3.3.6
首先在https://adoptium.net/下载jdk1.8,并使用sudo tar -zxvf OpenJDK8U-jdk_x64_linux_hotspot_8u442b06.tar.gz -C /home/developer
解压下载的jdk1.8,接着在/home/developer路径下用mv jdk8u442-b06 jdk-8
对jdk文件夹进行重命名。
(华为云开发空间的云主机ubuntu仓库中有jdk8,直接使用sudo apt install openjdk-8-jdk -y
。如果默认选择Java工具链,云主机内会自带一个jdk17,用sudo update-alternatives --config java
来切换全局默认Java版本。)
使用https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
下载Hadoop-3.3.6。
在/home/developer路径下使用tar -zxvf hadoop-3.3.6.tar.gz -C .
解压Hadoop3.3.6。
2.2 配置环境变量
编辑配置文件的命令:sudo vim /etc/profile
。
在/etc/profile文件的尾部写入如下内容:
export JAVA_HOME=/home/developer/jdk-8
export HADOOP_HOME=/home/developer/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin
(如果是华为云空间主机的话,在/home/developer/.bashrc文件的尾部写入如下内容:
export JAVA_HOME=/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/home/developer/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
)
按ESC键后输入wq!来保存修改,并用source /etc/profile
命令使配置的环境变量生效。
2.3 验证JDK、Hadoop配置
验证JDK:java -version
。
验证Hadoop:hadoop version
。
3. 伪分布Hadoop
3.1 配置ssh免密码登录
安装ssh和pdsh:sudo apt install ssh pdsh -y
。
配置ssh免密码登录:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
测试ssh登录:ssh localhost
。
(安装了pdsh后,可能需要在/etc/pdsh中新建rcmd_default文件,再其中输入ssh。)
3.2 配置伪分布Hadoop
在/home/developer/hadoop-3.3.6/etc/hadoop中使用vim命令配置core-site.xml、hdfs-site.xml、yarn-site.xml和mapred-site.xml。
3.2.1 修改hadoop-env.sh
在其中配置jdk1.8的路径。
3.2.2 修改core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
3.2.3 修改hdfs-site.xml
将dfs.datanode.data.dir和dfs.namenode.name.dir的value修改为你想要存放的位置,注意要保留file://,再连接路径。
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/developer/data/datanode</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/developer/data/namenode</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>localhost:9870</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
3.2.4 修改yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
3.2.5 修改mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
3.2.6 格式化namenode
格式化命令:hdfs namenode -format
。
启动hdfs和yarn:start-dfs.sh && start-yarn.sh
。
使用jps命令验证是否启动:
检验localhost:9870和localhost:8088能否显示。
3.3 测试Hadoop
测试命令:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 10 10
。
参考
https://hadoop.apache.org/docs/r3.3.6/hadoop-project-dist/hadoop-common/SingleCluster.html