设置配置文件
etc/hadoop/core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
etc/hadoop/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/dreamcs/hadoopdata/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/dreamcs/hadoopdata/data</value>
</property>
</configuration>
Dfs.replication为复本的数量。这里设置为1。dfs.namenode.name.dir为保存namenode数据的地方。dfs.datanode.data.dir为保存datanode数据的地方。
在初始化时,最好保证这两个目录为空。不然可能会出错。官方给出的例子中,并没有配置这两个字段。但在ubuntu上,会有问题(其它系统未测试)。如果没有配置这两个目录,hadoop会在/tmp目录下,生成这两个目录。如下图:
当系统重启后,ubuntu可能会清除/tmp。导致hadoop数据丢掉。所以,这里指定了这两个目录。
设置免密码登录
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
测试一下,是否能免密码登录。
ssh localhost
格式化NameNode
bin/hdfs namenode -format
配置JAVA_HOME
在etc/hadoop/hadoop-env.sh文件中添加
export JAVA_HOME=/usr/lib/jvm/jdk...
具体原因参见此文。
启动NameNode和DataNode
$ sbin/start-dfs.sh
其实会起动三个进程:namenode、datanode、secondarynamenode。
查看NameNode和DataNode
通过浏览器查看NameNode
http://NameNodeIP机器IP地址:50070/
结果如下:
通过浏览器查看DataNode
http://NameNodeIP机器IP地址:50070/
简单的文件操作
创建文件夹。
$ bin/hdfs dfs -mkdir /user
复制文件到/usr目录中。
$ bin/hdfs dfs -put etc/hadoop /user
停止NameNode和DataNode
$ sbin/stop-dfs.sh