赞
踩
本教程采用的是Ubuntu18.04.4+hadoop2.7.7+jdk1.8
打开命令行终端(ctrl+alt+t),输入如下命令创建hadoop用户:sudo useradd -m hadoop -s /bin/bash
为hadoop用户设置密码:sudo passwd hadoop
(连续输入两次)
hadoop用户增加管理员权限:sudo adduser hadoop sudo
。
sudo apt-get update
若出现如下错误:
可以使用以下语句进行解决sudo rm /var/lib/apt/lists/lock
(亲测有效,可以用)
检查ssh是否已经安装启动,有sshd说明已经启动。
sudo ps -ef | grep ssh
Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:
sudo apt-get install openssh-server
登录ssh(首次登录会有提示,按提示输入yes):
ssh localhost
紧接着退出登录,设置无密码登录,使用ssh-keygen 生成密钥,并将密钥加入到授权中:
exit
cd ~/.ssh/
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys
之后便可直接利用ssh localhost
进行无密码登录。
JDK的安装我采用的是手动安装,将压缩的jdk安装包jdk-8u261-linux-x64.tar.gz先进行下载,假设保存在“/home/zheng/Downloads/”目录下,之后执行如下代码:
cd /usr/lib
sudo mkdir jvm #用来存放jdk文件夹,如果已有该文件夹,则跳过此步骤
cd ~ #进入主目录
cd Downloads
sudo tar -zxvf ./jdk-8u262-linux-x64.tar.gz -C /usr/lib/jvm #解压jdk文件
mv jdk1.8.0_262 java #修改jdk文件名为java,如果出错,请先用“ls”查看该路径是否有该文件夹
紧接着为jdk设置环境变量:
cd ~
vi ~/.bashrc
在编辑器中添加以下几行代码:
export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存.bashrc文件并退出编辑器,使用source ~/.bashrc
让文件配置生效。
使用java -version
检查安装是否完成,如果显示版本信息,则安装已经完成。
通过Hadoop镜像进行下载,选择tar.gz格式的文件,本教程采用hadoop-2.7.7.tar.gz版本进行安装。
将安装包下载并安装在/usr/local下:
sudo tar -zxvf /usr/local/hadoop-2.7.7.tar.gz -C /usr/local
cd /usr/local/
sudo mv ./hadoop-2.7.7/ ./hadoop #将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop #修改文件夹权限
解压完使用以下代码验证是否可用,如果出现版本信息则表示已成功:
cd /usr/local/hadoop
./bin/hadoop version
使用Hadoop自带例子进行调试,创建input文件夹,将输出数据存放在output文件夹下。
cd /usr/local/hadoop
mkdir ./input
cp ./etc/hadoop/*.xml ./input # 将配置文件作为输入文件拷贝到input文件夹下
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/* # 查看output文件夹下运行结果
若出现以下结果,则代表执行成功。
再次运行上面例子会出错,需要先将output文件夹删除。rm -r ./output
伪分布式需要修改 /usr/local/hadoop/etc/hadoop/ 下的core-site.xml 和 hdfs-site.xml 文件。
修改配置文件 core-site.xml:vi ./etc/hadoop/core-site.xml
为xml中的configuration 标签添加如下内容:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
同样的,修改配置文件 hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
配置完成后,即可进行NameNode 的格式化:
cd /usr/local/hadoop
./bin/hdfs namenode -format
如果倒数第五行有“Exitting with status 0” 的提示,即表示成功。
然后开启 NameNode 和 DataNode 守护进程。
cd /usr/local/hadoop
./sbin/start-dfs.sh
此处会有ssh提示,按照提示输入yes即可。
若出现如图错误,找到"/usr/local/hadoop/etc/hadoop/hadoop-env.sh”该文件,在里面找到“export JAVA_HOME= J A V A H O M E ” 这 行 , 将 其 中 的 “ {JAVA_HOME}”这行,将其中的“ JAVAHOME”这行,将其中的“{JAVA_HOME}”改为具体地址,比如,“export JAVA_HOME=/usr/lib/jvm/java”,然后,再次启动Hadoop即可。
启动完成后,可以通过命令 jps
来判断是否成功启动。若成功,则会出现下图类似结果。
成功启动后,可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。