1.创建hadoop用户名
#sudo useradd -m hadoop -s /bin/bash
#sudo passwd hadoop
#sudo adduser hadoop sudo
2.更新apt
#sudo apt-get update
#sudo apt-get install vim //安装vim编辑器
3.安装SSH、配置SSH无密码登陆
#sudo apt-get install openssh-server
#ssh localhost
4.进入家目录.ssh生成密钥
#cd ~/.ssh
#ssh-keygen -t rsa
#cat ./id_rsa.pub >> ./authorized_keys
#ssh localhost
5.安装Java环境
#cd /usr/lib
#sudo mkdir jvm
#sudo tar -zxvf ./jdk.tar.gz -C /usr/lib/jvm
6.配置Java环境变量
#cd ~
#vim ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
7.重新生成
#source ~/.bashrc
#java -version
8.解压hadoop安装包
#sudo tar -zxf ~/下载/hadoop-3.1.3.tar.gz -C /usr/local //解压到/usr/local中
#cd /usr/local/
#sudo mv ./hadoop-3.1.3/ ./hadoop //将文件夹名改为hadoop
#sudo chown -R hadoop ./hadoop //修改文件权限
#cd /usr/local/hadoop
#./bin/hadoop version //查看版本
9.Hadoop单机配置(非分布式)
Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。
现在我们可以执行例子来感受下 Hadoop 的运行。Hadoop 附带了丰富的例子(运行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。
在此我们选择运行 grep 例子,我们将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。
#cd /usr/local/hadoop
#mkdir ./input
#cp ./etc/hadoop/*.xml ./input //将配置文件作为输入文件
#./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./input ./output 'dfs[a-z.]+'
#cat ./output/* //查看运行结果
rm -r ./output //Hadoop 默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将 ./output 删除
10.Hadoop伪分布式配置
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: gedit ./etc/hadoop/core-site.xml),将当中的
同样的,修改配置文件 hdfs-site.xml
Hadoop配置文件说明
Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。
此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。
11.配置完成后,执行 NameNode 的格式化
#cd /usr/local/hadoop
#./bin/hdfs namenode -format
12.接着开启 NameNode 和 DataNode 守护进程
#cd /usr/local/hadoop
#./sbin/start-dfs.sh //start-dfs.sh是个完整的可执行文件,中间没有空格
13.启动完成后,可以通过命令 jps 来判断是否成功启动
#jps
14.运行Hadoop伪分布式实例
#./bin/hdfs dfs -mkdir -p /user/hadoop
#./bin/hdfs dfs -mkdir input
#./bin/hdfs dfs -put ./etc/hadoop/*.xml input
#./bin/hdfs dfs -ls input
#./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'
#./bin/hdfs dfs -cat output/*
#rm -r ./output # 先删除本地的 output 文件夹(如果存在)
#./bin/hdfs dfs -get output ./output # 将 HDFS 上的 output 文件夹拷贝到本机
#cat ./output/*
#./sbin/stop-dfs.sh
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)