代码语言:javascript复制
1.安装前提条件
(1)首先安装jdk,最好安装1.7及1.7以上版本,并且安装jdk的环境变量
vi ~/.bashrc
export JAVA_HOME=/usr/local/software/jdk1.8.0_141
export PATH=$JAVA_HOME/bin:$PATH
(2)检查ssh和sshd是否安装,如果没有安装,
ubuntu下面安装ssh和sshd:
$ sudo apt-get install ssh
$ sudo apt-get install rsync
如果你用的是redhat,fedora,centos等系列linux发行版,那么使用命令,例如安装sshd:
sudo yum install sshd
检查ssh和sshd是否安装:
sudo service sshd status
开启ssh服务:
sudo service sshd start
2.在hadoop的官网下载hadoop版本http://www-eu.apache.org/dist/hadoop/common/,选择相应的版本进行下载,然后使用winscp工具上传hadoop-2.9.1到linux上。
3.解压hadoop
tar -zxvf hadoop-2.9.1
4.配置hadoop的环境变量,方便输入命令,vi ~/.bashrc
export HADOOP_HOME=/usr/local/software/hadoop-2.9.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
5.配置文件
(1)配置etc/hadoop/core-site.xml,hdfs的根路径
<property>
<name>fs.defaultFS</name>
<value>hdfs://slave2:9000</value>
</property>
(2)配置etc/hadoop/hdfs-site.xml,hdfs的副本
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
(3)配置etc/hadoop/slaves,hdfs的datanode节点,直接把localhost改为域名,我这里是slave2
(4)配置免密码登录
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
(5)格式化namenode
$ bin/hdfs namenode -format
只要看见打印的日志里面有一行:18/10/09 14:29:34 INFO common.Storage: Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted.
就表示namenode格式化成功了。
(6)启动hdfs
start-dfs.sh
(6)启动hdfs
start-dfs.sh
(7)jps看一下进程,如果显示下面这样的,表示hdfs启动成功。
[root@slave2 hadoop-2.9.1]# jps
69617 Jps
69312 DataNode
69487 SecondaryNameNode
69198 NameNode
(8)访问http://192.168.2.130:50070,就能看到hadoop的界面
【伪分布式模式下,配置yarn】
(1)配置etc/hadoop/mapred-site.xml
先复制一个cp mapred-site.xml.template mapred-site.xml,然后输入下面的
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(2)配置etc/hadoop/yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
(3)启动yarn
start-yarn.sh
(4)这个时候进程多了两个,一个主节点ResourceManager,一个从节点NodeManager
69312 DataNode
69907 ResourceManager
70354 Jps
69487 SecondaryNameNode
70015 NodeManager
69198 NameNode
(5)测试伪分布式模式下的mapreduce,让mapreduce计算test.txt里面的每个单词出现的次数。
[root@slave2 input]# cat test.txt
hadoop
hdfs
mapreduce
nodemanager
yarn
hadoop
hdfs
nodemanager
hadoop
yarn
hadoop
1. 在hdfs系统上面创建目录input
hdfs dfs -mkdir /input
2.上传test.txt到hdfs
hdfs dfs -put test.txt /input
3. 在hadoop的home目录下输入命令并回车,bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar wordcount /input /output
4.这个时候可以看见hdfs系统上面生成了一个目录output,查看output里面的内容
[root@slave2 hadoop-2.9.1]# hdfs dfs -text /output/*
hadoop 4
hdfs 2
mapreduce 1
nodemanager 2
yarn 2