下载
- 打开官方下载链接:http://www.apache.org/dyn/closer.cgi/hadoop/common/,打开页面上推荐的最上面的那个链接。显示的内容如下:
- 打开上图中红框选中的
hadoop-2.7.7
文件夹,下载后缀名为tar.gz
的文件
软件要求
- 必须安装jdk,且版本在java7以上。
- 必须安装ssh,而且sshd服务需要在运行中,这样hadoop脚本就可以远程管理hadoop进程了。
安装
- 将下载好的文件放到对应目录,linux系统一般将该文件放在
/user/local
下面 - 解压文件:
tar xzvf hadoop-2.7.7.tar.gz
- 编辑
etc/hadoop/hadoop-env.sh
# 设置你的java安装目录
export JAVA_HOME=/usr/java/latest
# 推荐设置pid文件目录,默认的/tmp目录会导致文件丢失进而无法正常通过脚本停止应用
export HADOOP_PID_DIR=/var/hadoop/pids
- 尝试下面的指令:
bin/hadoop
控制台将输出hadoop脚本的使用文档。
部署
伪分布式部署
配置
编辑etc/hadoop/core-site.xml
<configuration>
<!-- NameNode URI -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- A base for other temporary directories. -->
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop</value>
</property>
</configuration>
编辑etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
设置免密ssh
检查是否能够免密ssh到本机:
ssh localhost
假如不行,那么执行下面的指令,实现免密ssh到本机:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
如果ssh默认端口不是22,修改.ssh/config
文件中的配置即可
启动
- 格式化namenode
bin/hdfs namenode -format
- 启动NameNode进程和DataNode进程
sbin/start-dfs.sh
-
使用浏览器打开地址:http://localhost:50070/,可以看到namenode的web界面
停止这些进程,使用下列命令:
sbin/stop-dfs.sh
分布式部署
配置
可以选择在系统范围内配置一个环境变量HADOOP_PREFIX
,方便之后命令的执行。在/etc/profile.d
目录新建一个文件hadoop.sh
,文件内容如下:
export HADOOP_PREFIX=/path/to/hadoop
NameNode和DataNode都需要的配置,编辑etc/hadoop/core-site.xml
<configuration>
<!-- NameNode URI -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://NameNodeHost:9000</value>
</property>
<!-- A base for other temporary directories. -->
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop</value>
</property>
</configuration>
NameNode的配置,编辑etc/hadoop/hdfs-site.xml
<configuration>
<!--
Names a file that contains a list of hosts that are permitted to connect to the
namenode. The full pathname of the file must be specified. If the value is empty,
all hosts are permitted.
-->
<property>
<name>dfs.hosts</name>
<value>/usr/local/hadoop/etc/hadoop/slaves</value>
</property>
</configuration>
编辑/usr/local/hadoop/etc/hadoop/slaves
,填写所有被允许连接到NameNode的DataNode节点
host1
host2
DataNode的配置,编辑etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
启动
- 若是初次启动,必须在NameNode所在机器上进行格式化
bin/hdfs namenode -format
- 在NameNode所在机器上,启动NameNode
sbin/hadoop-daemon.sh --script hdfs start namenode
- 在所有DataNode所在的机器上,启动DataNode
sbin/hadoop-daemon.sh --script hdfs start datanode
- 打开前面提过的地址:http://localhost:50070/,查看NameNode和DataNode的情况,验证集群是否配置成功。
停止
- 在NameNode所在机器上,停止NameNode
sbin/hadoop-daemon.sh --script hdfs stop namenode
- 在所有DataNode所在的机器上,停止DataNode
sbin/hadoop-daemon.sh --script hdfs stop datanode
常用配置
dfs.datanode.max.transfer.threads
编辑etc/hadoop/hdfs-site.xml
,修改dfs.datanode.max.transfer.threads
<configuration>
<!-- Specifies the maximum number of threads to use for transferring data in and out of the DN. -->
<property>
<name>dfs.datanode.max.transfer.threads</name>
<value>8192</value>
</property>
</configuration>