环境说明:
1、Linux系统为centos6.5
2、Hadoop为hadoop-2.8.1.tar.gz
3、JDK为jdk-8u45-linux-x64.gz
软件包地址
Linux:链接:https://pan.baidu.com/s/1c2jinQC 密码:qvb4
Hadoop:链接:https://pan.baidu.com/s/1kV3Tn07 密码:7hyv
JDK:链接:https://pan.baidu.com/s/1pLR10mR 密码:t2de
下面开始安装
官方软件包地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.8.2/hadoop-2.8.2.tar.gz
官方安装教程:http://hadoop.apache.org/docs/r2.8.2/hadoop-project-dist/hadoop-common/SingleCluster.html
申明:当前用户为root,或者拥有管理员权限
1、安装jdk
声明:请使用Oracle jdk,可去Oracle官网下载最新
解压jdk
创建/usr/java目录
mkdir -p /usr/java
移动jdk到/usr/java目录下解压
tar -zxvf jdk-8u45-linux-x64.gz
解压后查看用户和用户组是否变化
ll
若变化,手动更改用户和用户组权限 chown -R root:root jdk1.8.0_45
配置环境变量
编辑/etc/profile
vi /etc/profile
在最下面添加如下信息
-----以下------
#jdk存放的路径,根据自身情况可修改
export JAVA_HOME=/usr/java/jdk1.8.0_45
export PATH=$JAVA_HOME/bin:$PATH
-----以上-------
保存退出后生效配置文件
source /etc/profile
验证是否配置成功
java -version
若输出对应版本号,则成功
2.创建hadoop用户,并赋予管理员权限
申明:是什么服务,就用什么用户管理。
创建用户
useradd hadoop
修改密码
passwd hadoop
输入密码,并确认密码
添加管理员权限
修改sudoers配置文件
vi /etc/sudoers
添加如下内容,强制保存退出
hadoop ALL=(root) NOPASSWD:ALL
3.部署ssh
确认当前系统是否存在ssh服务
service ssh status
若不存在,安装ssh服务,并启动
yum install -y ssh
安装完成后,启动
service ssh statrt
4.解压hadoop
创建/opt/software目录
mkdir -p /opt/software
移动hadoop的tar包到该目录后解压
tar -zxvf hadoop-2.8.1.tar.gz
解压后查看用户和用户组是否变化
ll
若变化,手动更改用户和用户组权限 chown -R root:root hadoop-2.8.1
修改文件名为hadoop,并将权限赋给hadoop用户
mv hadoop-2.8.1 hadoop
chown -R hadoop:hadoop hadoop
chown -R hadoop:hadoop hadoop/*
5.修改core-site.xml
切换到hadoop用户
su - hadoop
进入hadoop目录
cd /opt/software/hadoop
修改./etc/hadoop/core-site.xml文件
vi etc/hadoop/core-site.xml
添加以下内容保存退出
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
6.修改hdfs-site.xml
修改./etc/hadoop/hdfs-site.xml文件
vi etc/hadoop/hdfs-site.xml
添加以下内容保存退出
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
7.配置ssh信任关系
进入hadoop用户家目录
su - hadoop
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
添加公钥到authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
更改authorized_keys权限
chmod 600 ~/.ssh/authorized_keys
8.配置hadoop环境变量
切换到root用户
su - root
修改/etc/profile文件内容
vi /etc/pforile
添加以下内容保存退出
export HADOOP_HOME=/opt/software/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
生效环境变量
source /etc/profile
9.启动hadoop的hdfs服务
切换到hadoop用户
su - hadoop
格式化hdfs
cd /opt/software/hadoop
执行格式化命令
bin/hdfs namenode -format
创建文件目录
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/hadoop
执行hdfs启动命令
sbin/start-dfs.sh
【错误】0.0.0.0: Warning: Permanently added '0.0.0.0' (RSA) to the list of known hosts.
0.0.0.0: Error: JAVA_HOME is not set and could not be found.
若发生以上错误,则执行如下操作:
1.编辑hadoop-env.sh
vi /etc/hadoop/hadoop-env.sh
修改JAVA_HOME保存退出
export JAVA_HOME=/usr/java/jdk1.8.0_45
验证hdfs是否启动
ps -ef | grep 50070
若进程存在,则启动成功,否则失败。
进入web页面查看
在浏览器输入http://{你的机器IP}:50070/
若出现界面,则成功。
10.修改服务对应的IP访问(可不操作,该步骤可以跳过)
1、停止hdfs服务
sbin/stop-dfs.sh
2、修改core-site.xml
vi /etc/hadoop/core.site.xml
修改为如下:
<property>
<name>fs.defaultFS</name>
<value>hdfs://{你的机器IP}:9000</value>
</property>
3、格式化hdfs
bin/hdfs namenode -format
4、修改hdfs-site.xml
vi /etc/hadoop/hdfs-site.xml
添加如下内容:【修改机器名及IP地址】
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>{你的机器名}:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>{你的机器名}:50091</value>
</property>
5、修改slaves
vi etc/hadoop/slves
添加如下内容保存退出:
{你的主机名}
6、启动hdfs服务
sbin/start-dfs.sh
出现如下信息则成功
Starting namenodes on [{你的机器名}]
{你的机器名}]: starting namenode, logging to /opt/software/hadoop-2.8.1/logs/hadoop-hadoop-namenode-{你的机器名}].out
{你的机器名}]: starting datanode, logging to /opt/software/hadoop-2.8.1/logs/hadoop-hadoop-datanode-{你的机器名}].out
Starting secondary namenodes [{你的机器名}]]
rzdatahadoop002: starting secondarynamenode, logging to /opt/software/hadoop-2.8.1/logs/hadoop-hadoop-secondarynamenode-{你的机器名}].out
11.测试hdfs是否可以正常使用
新建一个log文件
echo "hadoop" >> test.log
添加log文件到hdfs
bin/hdfs dfd -put test.log /user/
【错误】ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in
若发生如上错误,执行以下操作:
①停止hdfs服务
/sbin/stop-dfs.sh
②删除hdfs的data目录下所有文件
rm -rf /tmp/hadoop-hadoop/dfs/data/*
或者rm -rf /tmp/hadoop-{你的Linux用户名}/dfs/data/*
③重新格式化hdfs
bin/hdfs namenode -format
④启动hdfs服务
sbin/start-dfs.sh
⑤重新上传log文件
查看log文件
bin/hdfs dfs -ls /user
正确输出信息则成功
12.启动hadoop的yarn服务
创建mapred-site.xml
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
编辑mapred-site.xml
vi /etc/hadoop/mapred-site.xml
添加如下内容保存退出:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
编辑yarn-site.xml
vi /etc/hadoop/yarn-site.xml
添加如下内容保存退出:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
启动yarn服务
sbin/start-yarn.sh
验证yarn服务是否启动
在浏览器输入http://{你的机器IP}:8088/
若出现界面则成功
mapreduce测试
bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar pi 5 10
若出现计算结果则成功
若泽数据: www.ruozedata.com
交流群: 707635769