单机模式:
deepin + hadoop2.6.0 + jdk1.8.0_77
新建组合用户,以后所有操作都在该用户下进行:
sudo addgroup hadoop sudo adduser --ingroup hadoop hduser
1. 配置jdk
(1)下载jdk.tar.gz, 解压到/usr/lib/jvm/, 比如jdk1.8.0_77,那么解压后java最终路径为/usr/lib/jvm/jdk1.8.0_77, 如果使用apt-get安装,则不需要设置java环境变量,但是安装的是openjdk,openjdk的包里面没有jps命令,启动hadoop后的检验需要jps命令(其实没有多大的影响),这里推荐下载压缩包解压的方式
(2)设置java环境变量:sudo gedit ~/.bashrc,添加内容如下:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH然后source ~/.bashrc,在deepin中可能会source失败,将上述内容添加到~/.zshrc,source成功
2. 安装ssh(远程连接工具)
sudo apt-get install openssh-server
ssh-keygen -t rsa -P "" 生成公钥和私钥,可以实现免密码登录
cat $HOME/.ssh/id_rsa.pub >> $Home/.ssh/authorized_keys 复制给本机
(ssh远程:ssh username@hostname,端口情况:+ -p port号,scp的话则使用scp -P port号 路径1 路径2,使用~/.ssh/config文件配置方法,config内容如下:
Host h HostName ip User u Port 端口号将公钥复制到远端机器,之后可直接使用ssh h连接
)
3. 关闭ipv6,hadoop不支持ipv6 ,更改/etc/sysctl.conf文件
# disable ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
4. 配置hadoop
(1)下载hadoop2.6.0,解压到/usr/local/:sudo tar -zxvf hadoop-2.6.0.tar.gz -C /usr/local/,然后将名字改为hadoop:sudo mv hadoop-2.6.0 hadoop
(2)将hadoop文件夹的用户持有更改为hduser:
sudo chown hduser:hadoop -R /usr/local/hadoop/(3)创建hadoop namenode 和 datanode的temp 目录,并将temp文件夹的用户持有者更改为hduser:
sudo mkdir -p /usr/local/hadoop_tmp/hdfs/namenode sudo mkdir -p /usr/local/hadoop_tmp/hdfs/datanode sudo chown hduser:hadoop -R /usr/local/hadoop_tmp/(4)设置hadoop环境变量,sudo gedit $HOME/.bashrc,添加:
# -- HADOOP ENVIRONMENT VARIABLES START -- # export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" # -- HADOOP ENVIRONMENT VARIABLES END -- #然后,source $HOME/.bashrc,hadoop version测试一下是否成功
(5)cd 至/usr/local/hadoop/etc/hadoop/,更改一些配置文件
a. hadoop-env.sh,添加:
## Update JAVA_HOME variable, JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77b. core-site.xml,在configuration标签里添加:
<property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property>c. hdfs-site.xml
<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop_tmp/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop_tmp/hdfs/datanode</value> </property>d. yarn-site.xml
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property>e. cp mapred-site.xml.template mapred-site.xml,sudo gedit mapred-site.xml
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>(6)规范namenode格式
hdfs namenode -format
(7)运行hadoop,分别执行start-dfs.sh和start-yarn.sh会看到一些输出信息
(8)执行jps,如果输出显示如下:
2004 DataNode 2409 NodeManager 1914 NameNode 2442 Jps 2171 SecondaryNameNode 2317 ResourceManager说明hadoop配置成功,有时会出现没有datanode或者namenode的情况,这时删掉hadoop_tmp,然后新建,与之前步骤一样,再format,重新运行就可以了。另外,停止hadoop执行stop-dfs.sh和stop-yarn.sh即可。