本博客有多处参考,出处附在文末。
因为Hadoop后续需要使用jdk,所以我们需要先把它下载下来。
下载jdk
进入后选择适合自己的版本,我选择的是jdk-8u291-linux-x64.tar.gz
下载好之后,把它解压并放到你选择的文件下。因为我用的是Parallel Desktop, 所以我存放在/home/parallels/java文件下,使用其他虚拟机或者是自选文件夹的朋友,后续注意一下路径问题。如果不知道怎么查看文件路径的话,直接选中你想查看的文件,把它拖到终端下,就可以查看路径了。
进入/home/parallels/java/jdk1.8.0_291/bin文件夹,也就是你的jdk的bin文件,然后运行以下指令:
./java -version
如果出现以下画面就安装成功了
配置环境变量PATH
首先打开profile文件进行编辑,有些第一次使用vi指令的小伙伴可能需要先进行下载,不用紧张,根据终端跳出的提示去下载就行了。
sudo vi /etc/profile
进去之后先不要动,使用方向键把光标移到最后一行的最后一个字母,然后按a或i进入编辑模式,i是在光标前插入文本,a是在光标后插入文本,不熟悉这个的小伙伴可以去补一下编辑器vi的基本知识。总之这里我是使用的a,然后在末尾添加了这几行
export JAVA_HOME=/home/parallels/java/jdk1.8.0_291
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
编辑完之后按esc退出编辑模式,然后输入:wq,保存退出。如果无法保存退出也可以用:wq!强制退出。
注意第一个路径是填写你的jdk包坐在的位置,后面两条你照着复制粘贴就行了。
安装Hadoop
Hadoop下载地址:Index of /dist/hadoop/common
下载Hadoop2.8.0,然后解压到你喜欢的位置,我是直接解压到的桌面。
进入解压后的文件,打开hadoop-2.8.0/etc/hadoop,然后对一下文件进行配置
配置hadoop-env.sh
vi hadoop-env.sh,
修改 JAVA_HOME 为之前配置的路径
配置 core-site.xml
打开core-site.xml,然后编辑以下内容。或者你用vi编辑器也可以。
第二段是在指定hadoop进程运行中产生的数据存放的工作目录,注意你hadoop存放的路径。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://veture:9000/</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/parallels/Desktop/hadoop-2.8.0/data/</value>
</property>
</configuration>
配置 hdfs-site.xml
打开 hdfs-site.xml,编辑以下内容。
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
配置 mapred-site.xml
打开mapred-site.xml,编辑以下内容。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置 yarn-site.xml
打开yarn-site.xml,编辑以下内容
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>veture</value>
</property>
<property>
<name>yarn.nodemanager.aux-servies</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
在第一个property中,我们配置的是yarn群的主机,如果不清楚自己的主机名,可以打开命令台查看。
配置环境变量PATH
依旧是打开profile文件进行编辑。
sudo vi /etc/profile
和之前配置java路径的操作类似,依旧是在末尾加入如下路径。
export HADOOP_HOME=/home/parallels/Desktop/hadoop-2.8.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
编辑完之后保存退出,然后输入命令source /etc/profile更新配置。
这样做是为了方便在任意位置使用hadoop命令。
使用SSH免密登陆
创建公钥/私钥
输入以下命令,然后一路确认
ssh-keygen -t rsa
出现以下画面即为成功
创建authorized_keys文件并修改权限为600
cd .ssh
touch authorized_keys
chmod 600 authorized_keys
ll
完成后画面如下
将公钥追加到authorized_keys文件中去
cat id_rsa.pub >> authorized_keys
cat authorized_keys
然后我们来试一下能否免密登陆,ssh 后输入你的主机名。
ssh veture
启动Hadoop
初始化
hadoop namenode -format
如果出现了successfully formatted字样就初始化成功了。
在这里有的小伙伴可能会出现Cannot create directory的问题,原因是对文件的权限不够,我们修改一下权限就可以了。
sudo chmod -R a+w /home/parallels/Desktop/hadoop-2.8.0/data
或者你也可以直接使用su命令,转入管理员身份来运行初始化命令,之后切回普通用户来启动进程就可以了。
注意不要多次进行初始化,如果后面找不到datanode,很大可能就是多次初始化造成的。
启动进程
start-dfs.sh
start-yarn.sh
然后输入jps来查看已经启动的进程
如果前面操作正确的话,这里应该是六个都有的。
多次初始化导致没有datanode的解决办法
找到我们之前设置的,用来存放产生的数据的工作目录,然后进入以下路径查看
然后输入以下命令,进入name文件夹下的current文件
cd name/current
cat VERSION
把namenode的clusterID复制下来。
然后回到data文件夹下的current文件夹
vi VERSION
我们可以看到这里的clusterID和之前复制的不一样,我们把之前复制的那一串粘贴到这里就可以了。
然后
stop-all.sh
之后我们再重新启动一遍所有进程就没有问题了。