Hadoop单机和伪分布式安装
用root用户登录
先更新一下 apt
apt-get update
然后安装vim
apt-get install vim
tools 安装
单节点模式都需要用到 SSH 登陆,Ubuntu 默认已安装了 SSH client,此外还
需要安装 SSH server
apt-get install openssh-server
安装后,可以使用如下命令登陆本机:
ssh localhost
此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 root
密码,这样就登陆到本机了。(如果提示错误 请查看 root 进入ssh 出现问题)
但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
exit # 退出刚才的 ssh localhostcd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhostssh-keygen -t rsa # 会有提示,都按回车就可以cat ./id_rsa.pub >> ./authorized_keys # 加入授权
此时再用 ssh localhost
命令,无需输入密码就可以直接登陆
命令如下:
apt-get install default-jre default-jdk
上述安装过程需要访问网络下载相关文件,请保持联网状态。安装结束以后,需要配置JAVA_HOME环境变量,请在Linux终端中输入下面命令打开当前登录用户的环境变量配置文件.bashrc:
vim ~/.bashrc
在文件最前面添加如下单独一行(注意,等号“=”前后不能有空格),然后保存退出:
export JAVA_HOME=/usr/lib/jvm/default-java
接下来,要让环境变量立即生效,请执行如下代码:
source ~/.bashrc # 使变量设置生效
执行上述命令后,可以检验一下是否设置正确:
echo $JAVA_HOME # 检验变量值
java -version
$JAVA_HOME/bin/java -version # 与直接执行java -version一样
用root用户建立文件 /install-package(放压缩包) /apps (解压缩目的地)
本文用的是hadoop-2.7.5.tar.gz 百度云如下
链接:https://pan.baidu.com/s/1C9ba84axxH_KuYC8-1e70w
提取码:r9ew
将 Hadoop 安装至 /apps 中:
tar -zxf /install-package/hadoop-2.7.5.tar.gz -C /apps # 解压到/apps中
cd /apps
mv ./hadoop-2.7.5/ ./hadoop # 将文件夹名改为hadoop
Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:
cd /apps/hadoop
./bin/hadoop version
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于 /apps/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
修改配置文件 core-site.xml,将当中的
<configuration>
</configuration>
修改为下面配置:
<configuration><property><name>hadoop.tmp.dir</name><value>file:/apps/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://xls-fxm:9000</value></property>
</configuration>
同样的,修改配置文件 hdfs-site.xml:
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:/apps/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/apps/hadoop/tmp/dfs/data</value></property>
</configuration>
配置完成后,执行 NameNode 的格式化:
/apps/hadoop/bin/hdfs namenode -format
成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。
接着开启 NameNode 和 DataNode 守护进程。
/apps/hadoop/sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
若出现SSH提示,输入yes即可。
启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。
首先修改配置文件 mapred-site.xml,这边需要先进行重命名:
mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
然后再进行编辑
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>
接着修改配置文件 yarn-site.xml:
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>
然后就可以启动 YARN 了
/apps/hadoop/sbin/start-yarn.sh # 启动YARN
/apps/hadoop/sbin/start-yarn.sh/sbin/mr-jobhistory-daemon.sh start historyserver # 开启历史服务器,才能在Web中查看任务运行情况
开启后通过 jps 查看,可以看到多了 NodeManager 和 ResourceManager 两个后台进程,如下图所示。
上面的教程中,都是先进入到 /apps/hadoop
目录中,再执行 sbin/hadoop
,实际上等同于运行 /apps/hadoop/sbin/hadoop
。可以将 Hadoop 命令的相关目录加入到 PATH 环境变量中,这样就可以直接通过 start-dfs.sh
开启 Hadoop,也可以直接通过 hdfs
访问 HDFS 的内容,方便平时的操作。
在 ~/.bashrc
中进行设置(vim ~/.bashrc
,与 JAVA_HOME 的设置相似),在文件最前面加入如下单独一行:
export PATH=$PATH:/apps/hadoop/sbin:/apps/hadoop/bin
添加后执行 source ~/.bashrc
使设置生效,生效后,在任意目录中,都可以直接使用 hdfs
等命令了。
全部启动hadoop start-all.sh
关闭hadoop stop-all.sh
****zookeeper单节点部署