单机模式
1.创建 hadoop 用户
groupadd hadoop # 创建用户组
useradd -g hadoop -m -s /bin/bash hadoop # 创建用户
passwd hadoop # 设置 hadoop 密码为 hadoop
2.为 hadoop 用户增加管理员权限:
vim /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
3.配置 SSH 无密码登陆
apt-get install openssh-clients openssh-server
ssh localhost
exit # 退出刚才的 ssh localhost
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
rm ./id_rsa* # 删除之前生成的公匙(如果有)
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat id_rsa.pub >> authorized_keys # 加入授权
chmod 600 ./authorized_keys # 修改文件权限,否则无法登陆,亲测
4.下载hadoop2.6.5
http://mirrors.hust.edu.cn/apache/hadoop/core/
cd /usr/local/src
wget http://mirrors.hust.edu.cn/apache/hadoop/core/hadoop-2.6.5/hadoop-2.6.5.tar.gz
tar -zxvf hadoop-2.6.5.tar.gz
sudo mv ./hadoop-2.6.5/ ./hadoop # 将文件夹名改为 hadoop
sudo chown -R hadoop:hadoop ./hadoop # 修改文件权限
chown -R hadoop:hadoop ./hadoop
5.hadoop修改配置添加环境变量
#java_home 添加至hadoop-env.sh 中
echo "export JAVA_HOME=/usr/local/src/jdk1.8" >> /usr/local/src/hadoop/etc/hadoop/hadoop-env.sh
vi /etc/profile
#java
export JAVA_HOME=/usr/local/src/jdk/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export TIME_STYLE='+%Y-%m-%d %H:%M:%S'
#hadoop
export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
规划安装用户:hadoop规划安装目录:/usr/local/src/hadoop
规划数据目录:/home/hadoop/data
/home/hadoop/data/hadoopdata/name
/home/hadoop/data/hadoopdata/data
5.1.配置core.site.xml
mkdir -p /home/hadoop/data/hadoopdata/
vi etc/hadoop/core-site.xml
<configuration>
<!-- 配置默认的文件系统,地址最好使用主机名而不是IP -->
<property>
<name>fs.defaultFS</name>
<!-- <value>hdfs://localhost:9090</value> -->
<value>hdfs://sandbox:9090</value>
</property>
<!-- Hadoop 运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/hadoopdata/</value>
</property>
</configuration>
sandbox 小编本机名
vi /etc/hosts 修改
5.2.配置 hdfs-site.xml
vi etc/hadoop/hdfs-site.xml
<configuration>
<!-- 配置 Hadoop 中 HDFS,默认为 3,单机版需要改为 1 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
5.3.配置mapred-site.xml
vi etc/hadoop/mapred-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定 mr 运行在 yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5.4.配置yarn-site.xml
vi etc/hadoop/yarn-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 指定 yarn 的老大(ResourceManager)的地址 -->
<!--
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
-->
<!-- reduce 获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
#环境变量生效
source /etc/profile
hadoop常用命令
#查看版本
hadoop version
#格式化文件系统(执行MapReduce job)
hdfs namenode -format
#启动
start-dfs.sh
start-yarn.sh
http://localhost:50070/
#停止
stop-dfs.sh
stop-yarn.sh
#hadoop启动/停止
#也可以用下面的启动/停止命令,等同于start/stop-dfs.sh + start/stop-yarn.sh
sbin/start-all.sh
sbin/stop-all.sh
netstat -nltp
运行一个haoop官方例子,单词次数计算:
cd /usr/local/src/hadoop
hadoop dfs -mkdir -p /user/hadoop/input
echo "aa aa bb" > test.txt
hadoop dfs -put test.txt /user/hadoop/input
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount input output
#查看结果
hadoop dfs -ls /user/hadoop/output/
hadoop dfs -cat /user/hadoop/output/part-r-00000
#删除目录
hadoop dfs -rm -R /user/hadoop/output
hadoop异常无法解决所以就决定格式化。
找到data和name配置的dir路径,找到 core-site.xml 找到dir路径,删除临时文件
重新执行命令:hadoop namenode -format (hdfs namenode -format )