hadoop的核心:HDFS(负责数据存储)、MapReduce(计算模型)、YARN(资源调度管理)
事先需要安装JDK 和 ssh
-
安装ssh
sudo apt install openssh-server
-
配置ssh无密登陆
ssh-keygen -t rsa # 一直回车 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
-
测试ssh无密登陆
ssh localhost # 如果不提示输入密码则配置成功
1、下载
http://mirrors.hust.edu.cn/apache/hadoop/core/stable/
2、解压
tar -zxvf hadoop-2.7.4.tar.gz
3、配置环境变量
export HADOOP_HOME=/usr/panteng/hadoop-2.7.4
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
使生效:source /etc/profile
测试:hadoop version
输出对应的版本号
4、配置
进入到配置目录: cd etc/hadoop/ 修改配置文件
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property>
5、nameNode初始化
进入bin目录:
hdfs namenode -format
如果出现环境问题,可以在 etc/hadoop/hadoop-env.sh里面修改 比如JAVA_HOME等
6、启动
进入sbin目录:
执行start-dfs.sh
涉及到ssh 密码,可以进行如下配置,取消密码:
1 cd ~/.ssh # 如果找不到这个文件夹,先执行一下 "ssh localhost"
2 ssh-keygen -t rsa
3 cp id_rsa.pub authorized_keys
通过jps 查看进程
其中有9853 DataNode 和 9723 NameNode进程就OK
http://10.38.164.80:50070 查看WEB
至此hadoop算是启动了
7、配置YARN
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
8、启动
start-all.sh
# 启动历史服务器,以便在Web中查看任务运行情况
mr-jobhistory-daemon.sh start historyserver
测试:http://10.38.164.80:8088/cluster 查看运行情况
HDFS本身是一个系统,有自己的操作与管理方式,可能与linux的命令是不一样的,一般通过hdfs命令;具体可以使用hdfs --help查看
建立用户空间:hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/panteng
查看用户空间:hadoop fs -ls / hadoop fs -ls /user
上传文件到用户空间:hdfs dfs -put etc/hadoop/ /user/panteng/input
在share/hadoop/mapreduce
目录下,执行:hadoop jar hadoop-mapreduce-examples-2.7.4.jar grep /user/panteng/input output 'dfs[a-z.]+'
产生ERROR: Permission denied: user=panteng, access=WRITE, inode="/user/root":root:supergroup:drwxr-xr-x 执行如下命令
hdfs dfs -chmod 777 /user/root