记录一下做分布式作业的过程
在jdk-8u162-linux-x64.tar.gz
所在的文件夹下右键,在终端打开
输入命令
tar xvzf jdk-8u162-linux-x64.tar.gz
此时可以看到文件夹下面有一个jdk1.8.0_162
文件夹,我们将这个文件夹移动到主目录下,直接拖拽即可。
在hadoop-3.3.4.tar.gz
所在的文件夹下右键,在终端中打开
输入命令
tar xvzf hadoop-3.3.4.tar.gz
此时可以看到文件夹下面有一个hadoop-3.3.4
文件夹,我们将这个文件夹移动到主目录下,直接拖拽即可。
打开hadoop-3.3.4
文件夹,打开etc
文件夹,打开hadoop
文件夹,找到hadoop-env.sh
文件
双击打开hadoop-env.sh
文件,在文件末尾输入
# set to the root of your Java installation
export JAVA_HOME=/home/xiaojia/jdk1.8.0_162
保存退出。
(四) 查看hadoop
脚本的使用文档
输入命令切换到hadoop-3.3.4
文件夹下
cd ~/hadoop-3.3.4
输入命令查看使用文档
bin/hadoop
Hadoop也可以以伪分布式模式运行在单节点上,其中每个Hadoop守护进程运行在单独的Java进程中。
输入命令
vim /home/xiaojia/hadoop-3.3.4/etc/hadoop/core-site.xml
在打开文件中按i
进行编辑,输入如下配置
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
按ESC
键,然后按shift + :
,然后输入wq
保存退出。
该文件表示HDFS中每个文件有1个备份
输入命令
vim /home/xiaojia/hadoop-3.3.4/etc/hadoop/hdfs-site.xml
在打开的文件中按i
进行编辑,输入如下配置
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
按ESC
键,然后按shift + :
,然后输入wq
保存退出。
输入命令
ssh localhost
输入命令
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
输入命令
ssh localhost
输入命令切换目录
cd /home/xiaojia/hadoop-3.3.4
输入命令格式化文件系统
bin/hdfs namenode -format
输入命令
sbin/start-dfs.sh
输入命令
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/myHadoop
输入命令
bin/hdfs dfs -mkdir input
报错
mkdir: `hdfs://localhost:9000/user/xiaojia': No such file or directory
输入命令
bin/hdfs dfs -mkdir -p input
bin/hdfs dfs -put etc/hadoop/*.xml input
输入命令
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar grep input output 'dfs[a-z.]+'
输入命令
bin/hdfs dfs -get output output
cat output/*
输入命令
bin/hdfs dfs -cat output/*
输入命令
sbin/stop-dfs.sh
输入命令
vim /home/xiaojia/hadoop-3.3.4/etc/hadoop/mapred-site.xml
在打开的文件中按i
进行编辑,输入如下配置
<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>
按ESC
键,然后按shift + :
,然后输入wq
保存退出。
输入命令
vim /home/xiaojia/hadoop-3.3.4/etc/hadoop/yarn-site.xml
在打开的文件中按i进行编辑,输入如下配置
<configuration>
<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</value>
</property>
<!-- Site specific YARN configuration properties -->
</configuration>
按ESC键,然后按shift + :
,然后输入wq
保存退出。
输入命令
sbin/start-yarn.sh
输入命令
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar grep input output 'dfs[a-z.]+'
拒绝连接,输入命令
sbin/start-dfs.sh
再次输入命令
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar grep input output 'dfs[a-z.]+'
hadoop dfsadmin -safemode leave
vim ~/.bashrc
打开文件按i
添加内容
export PATH=$PATH:/home/xiaojia/hadoop-3.3.4/sbin:/home/xiaojia/hadoop-3.3.4/bin
按ESC
键,然后按shift + :
,然后输入wq
保存退出。
输入命令重新执行。
source ~/.bashrc
输入命令
hadoop dfsadmin -safemode leave
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar grep input output 'dfs[a-z.]+'
找不到或无法加载主类,输入命令
hadoop classpath
保存返回的地址
输入命令
vim /home/xiaojia/hadoop-3.3.4/etc/hadoop/yarn-site.xml
打开yarn-site.xml
文件,按i
输入以下内容
<configuration>
<property>
<name>yarn.application.classpath</name>
<value>输入刚才返回的Hadoop classpath路径</value>
</property>
</configuration>
再次输入命令
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar grep input output 'dfs[a-z.]+'
sudo rm -rf output/
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar grep input output 'dfs[a-z.]+'
输入命令
bin/hdfs dfs -get output output
cat output/*
输入命令
bin/hdfs dfs -cat output/*
输入命令
sbin/stop-yarn.sh
sbin/stop-dfs.sh