0%

安装Hadoop

下载Hadoop安装包

我们选择安装hadoop cdh5版本,hadoop-2.6.0-cdh5.7.0

下载并解压

1
2
3
4
5
cd /usr/local/hadoop

wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.tar.gz

tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz

添加环境变量

1
vi ~/.bash_profile

添加如下内容

1
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.6.0-cdh5.7.0

执行source命令让其配置生效

1
source ~/.bash_profile

设置ssh免密登录

1
2
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub simon@localhost

以上设置成功后,我们可以发现ssh登录时不需要密码了。

1
2
ssh simon@localhost
Last login: Mon Jan 08 10:45:10 2019

其他Linux配置

我目前所有的大数据组件都是用于开发验证,所以都是安装在本地的macOS环境下。如果在真实的Linux集群环境下安装,还需要配置hostname等信息

Linux下修改hostname

1
vi /etc/sysconfig/network

添加如下内容

1
2
NETWORKING=yes
HOSTNAME=hadoop001

修改/etc/hosts文件,配置主机和ip的映射关系

Hadoop配置文件修改

etc/hadoop/hadoop-env.sh

1
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home

etc/hadoop/core-site.xml

伪分布式配置

Hadoop 2.x版本默认端口为8020而非1.x版本的9000。

1
2
3
4
5
6
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
</property>
</configuration>

设置tmp文件夹,默认地址为/tmp/hadoop-${user.name}

1
2
3
4
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>

etc/hadoop/hdfs-site.xml

设置文件系统复本系数。

1
2
3
4
5
6
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

格式化HDFS

这一步操作只需要执行一次,格式化后,HDFS上的数据会被清空。

1
bin/hdfs namenode -format

注:bin目录存放客户端命令,sbin存放服务端命令。

启动HDFS

启动NameNode和DataNode

1
2
3
4
5
6
7
8
9
sbin/start-dfs.sh

19/01/08 13:11:40 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [localhost]
localhost: starting namenode, logging to /usr/local/hadoop/hadoop-2.6.0-cdh5.7.0/logs/hadoop-simon-namenode-localhost.out
localhost: starting datanode, logging to /usr/local/hadoop/hadoop-2.6.0-cdh5.7.0/logs/hadoop-simon-datanode-localhost.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/hadoop-2.6.0-cdh5.7.0/logs/hadoop-simon-secondarynamenode-localhost.out
19/01/08 13:11:55 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

我们注意到这一句localhost: starting datanode,这句里面的localhost,是和slaves从节点中的名字相同的。

1
2
cat etc/hadoop/slaves
localhost

验证是否启动成功

1
2
3
4
jps
18242 SecondaryNameNode
18150 DataNode
18079 NameNode

拥有这三个进程就说明已经启动成功。

同时我们还可以通过Web UI查看

http://localhost:50070/