为了进行远程调试,在基本的Hadoop配置上修改几个点:
首先修改主机名映射,修改/etc/hostname中的主机名,例如hadoop,然后在/etc/hosts文件中定定义ip地址 和主机名映射,例如 114.223.33.3 hadoop。
然后在配置一般配置过程中的localhost修改为0.0.0.0,后面具体说明。
添加新的hadoop用户。注意Ubuntu下是adduser不是useradd否则/home下没有对应的家目录。 并通过sudo adduser hadoop sudo为其添加管理员权限。
切换至hadoop用户:su - hadoop(- 表示同时切换环境,切换回root使用 sudo su)。
更新apt: sudo apt-get update
安装jdk: sudo apt-get install openjdk-8-jdk
查看路径:dpkg -L openjdk-8-jdk
配置环境变量: sudo vi ~/.bashrc 修改系统配置,添加如下(javahome的值看上图):
# java,:表示追加内容
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
source /etc/profile启用
java -version查看版本,成功显示即配置成功。
安装SSH、配置SSH无密码登陆 Hadoop是分布式系统,通过网络操作,需要配置ssh。集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server
安装: sudo apt-get install openssh-server
登陆:ssh 主机名
退出:exit
现在设置免密登陆。
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh 主机
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys # 加入授权
安装Hadoop:
建立新文件夹:mkdir /usr/localhost/hadoop
转到:cd /usr/localhost/hadoop
下载
wget http://mirrors.hust.edu.cn/apache/hadoop/common/stable2/hadoop-2.7.4.tar.gz
解压:tar -zxvf hadoop-2.7.4.tar.gz
Hadoop配置
Hadoop2.7的配置文件都放在 hadoop-2.7.4/etc/hadoop 中,下面需要修改几个配置文件。
vim ./etc/hadoop/hadoop-env.sh ,进入修改配置文件 将其中的export JAVA_HOME的注释取消,并修改成java安装路径(可以使用; $JAVA_HOME查看)
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
hdfs-site.xml ,在新建目录dfs/name和dfs/data,作为namenode和datanode的路径,这里是设置namenode和datanode两个节点的路径,来模拟分布式.
mkdir dfs
mkdir dfs/data
mkdir dfs/name
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/localhost/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/localhost/hadoop/dfs/data</value>
</property>
core.site.xml,在/myhadoop目录下建立tmp文件夹,配置默认设置,否则每次启动Hadoop都要重新配置。。
# 注意这里其他人一般配置为localhost,但是我们要设置为0.0.0.0,否则无法连接
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/myhadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://0.0.0.0:9000</value>
</property>
若要全局使用Hadoop,需要设置一下hadoop的环境变量 同样的 进入/etc/profile 修改如下(记得通过source ~/.bashrc生效):
# java, the : is Signify that add operation
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
# hadoop
export HADOOP_HOME=/usr/local/hadoop/hadoop2.7.4
export PATH=$PATH:$HADOOP_HOME/bin
格式化并启动Hadoop:格式化namenode 在hadoop安装目录下执行。
完成之后,可以看到exit 0 就表示成功格式化
./bin/hdfs namenode -format
./sbin/start-all.sh
通过jps查看,显示下图成功。
ps:如果格式化不成功或者需要重新格式化会导致namenode和datanode中的clusterID数值不一致,将namenode中的编号复制到datanode中。