hadoop版本:3.3.4
或者: 下载 3.3.4
环境准备
- Java 8环境
sudo apt-get install openjdk-8-jdk
java -version
# 配置环境变量
sudo echo export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64" >> ~/.bashrc
source ~/.bashrc
echo $JAVA_HOME
- 其他软件
sudo apt-get install ssh
sudo apt-get install pdsh
hadoop环境配置
- 变量设置
# 解压文件,如果出现文件名过长,则放在根目录下
# 修改 etc/hadoop/hadoop-env.sh,设置java_home
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
# 运行命令,判断环境变量是否正确
bin/hadoop
单机节点
# 单机简单示例,将配置xml文件拷贝到input文件夹,通过正则表达式,筛选文件放在output文件夹
mkdir input
cp etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar grep input output 'dfs[a-z.]+'
cat output/*
伪集群节点
 单机伪集群部署
- 变量设置
# 修改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>
</configuration>
- 启动 passphraseless ssh
# 检查本地环境
ssh localhost
# 如果不能免密登录,则执行命令:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
- 执行mapreduce任务
# 格式化文件系统
bin/hdfs namenode -format
# 启动NameNode和DataNode
sbin/start-dfs.sh
# 查看NodeName
http://localhost:9870/
# 创建mapreduce任务所需hdfs目录
bin/hdfs dfs -mkdir /home
bin/hdfs dfs -mkdir /home/test
# 拷贝文件的到input文件夹
bin/hdfs dfs -mkdir input
bin/hdfs dfs -put etc/hadoop/*.xml input
# 执行样例
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar grep input output 'dfs[a-z.]+'
# 计算结果
bin/hdfs dfs -get output output
cat output/*
# 结束节点
sbin/stop-dfs.sh
如果使用root用户登录,则需要在start-dfs.sh,stop-dfs.sh中设置
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
网友评论