通过api查询hadoop的数据分页查询 查看hadoop_查看hadoop生效配置


前言

由于我写的上一篇blog,《hadoop开发环境配置手册》,在环境变量的配置方便出现了问题,导致hadoop用户与主用户的环境变量出现了问题,甚至出现重启之后无法登陆ubuntu图形化界面的情况,所以重新更新了配置手册,来解决这个bug。

设置ssh免密登陆

安装SSH,设置SSH无密码登陆


$ sudo apt-get install openssh-server   #安装SSH server
$ ssh localhost                         #登陆SSH,第一次登陆输入yes
$ exit                                  #退出登录的ssh localhost
$ cd ~/.ssh/                            #如果没法进入该目录,执行一次ssh localhost
$ ssh-keygen -t rsa  			#之后联系敲击三次回车
$ cat ./id_rsa.pub >> ./authorized_keys #加入授权
$ ssh localhost                         #此时已不需密码即可登录localhost
$ exit 					#退出登录的ssh localhost


安装jdk1.8

jdk的下载

下载官网:

Java SE Development Kit 8www.oracle.com


如果因为网络问题下载失败的话,可以通过百度云下载:

链接:


https://pan.baidu.com/s/1CbHV1Ly2nxGeu3Mx-eSiAApan.baidu.com

提取码: zt7a

jdk的安装


$ mkdir /usr/local/jvm                           				#创建jvm文件夹
$ sudo tar zxvf jdk-8u241-linux-x64.tar.gz  -C /usr/local/jvm 	#解压到/usr/lib/jvm目录下
$ cd /usr/local/jvm                                 			#进入该目录
$ mv  jdk1.8.0_241 java                         				#重命名为java


环境变量的配置


$ vim ~/.bashrc                                			#给JDK配置环境变量


在.bashrc文件添加如下指令:


export JAVA_HOME=/usr/local/jvm/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH


在文件修改完毕以后,输入代码:


$ source ~/.bashrc                       #使新配置的环境变量生效
$ java -version                          #检测是否安装成功,查看java版本


安装hadoop 2.9.2

hadoop的下载

下载网址:

404 Not Foundmirrors.hust.edu.cn


hadoop的安装


$ sudo tar -zxvf  hadoop-2.9.2.tar.gz -C /usr/local     #解压到/usr/local目录下
$ cd /usr/local
$ sudo mv  hadoop-2.9.2    hadoop                      	#重命名为hadoop
$ sudo chown -R flynn./hadoop                        	#修改文件权限


环境变量的配置


$ vim ~/.bashrc                                  	#给JDK配置环境变量


在.bashrc文件添加如下指令:


export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin


在文件修改完毕以后,输入代码:


$ source ~/.bashrc                        #使新配置的环境变量生效
$ hadoop version                          #检测是否安装成功,查看hadoop版本


###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 的方式来实现。

jdk路径添加

首先将jdk1.8的路径添(export JAVA_HOME=/usr/lib/jvm/java )加到hadoop-env.sh文件


cd /usr/local/hadoop/etc/hadoop
sudo vim hadoop-env.sh


core-site.xml文件修改

修改core-site.xml文件为下:


<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文件修改

修改 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>


说明(二)

Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件)。

因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。

此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(可参考官方教程)。

不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。

所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。

hadoop启动


$ cd /usr/local/hadoop		
$ ./bin/hdfs namenode -format	#namenode格式化
$ ./sbin/start-dfs.sh			#启动namenode和datanode进程,并查看启动结果
$ jps


成功启动后,可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

hadoop启动之疑难杂症

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your plat

解决方法:

在环境变量中添加


expor tHADOOP_OPTS = "-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"


root@localhost's password:localhost:permission denied,please try again

解决方法:

1. 安装 open ssh


$ sudo apt-get install openssh-server


2. 修改root密码


$ sudo passwd root


3. 编辑配置文件,允许以 root 用户通过 ssh 登录


$ sudo vi /etc/ssh/sshd_config


4. 找到:PermitRootLogin prohibit-password禁用

添加:PermitRootLogin yes

5. 重启ssh


$ sudo service ssh restart


安装mysql

mysql的下载与安装

使用以下命令即可进行mysql安装,注意安装前先更新一下软件源以获得最新版本:


$ sudo apt-get update  #更新软件源
$ sudo apt-get install mysql-server  #安装mysql


上述命令会安装以下包:

apparmor

mysql-client-5.7

mysql-common

mysql-server

mysql-server-5.7

mysql-server-core-5.7

因此无需再安装mysql-client等。

mysql登录之疑难杂症

报错

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

原因

Ubuntu18 下安装新版本mysql,安装时root密码是随机的,因此会出现上述错误。

解决办法

1. 查看账户信息

在我们下载安装MySQL的时候系统给我们创建了一个用户,打开 /etc/mysql/debian.cnf查看账户信息,找到client的user和password。

2. 在终端输入


mysql -u debian-sys-maint -p


然后回车输入 password的内容,这样就能进入了mysql。

3. 查看user表

在mysql中输入


select user, plugin from mysql.user;


查看user表

4. 修改root密码

输入以下命令


update mysql.user set authentication_string=PASSWORD('123'), plugin='mysql_native_password' where user='root';


然后刷新


flush privileges;


安装hive

hive的下载

1. 下载hive

地址:

Index of /apache/hivemirror.bit.edu.cn


2. 下载mysql-connector-java

地址:


https://dev.mysql.com/downloads/connector/j/dev.mysql.com

配置mysql


mysql -u root -p;                                                       #以root权限登陆mysql
create database hive;
use hive;
create table user(Host char(20),User char(10),Password char(20));
insert into user(Host,User,Password) values("localhost","hive","hive"); #建立hive用户密码为hive
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.*  TO 'hive'@'localhost' IDENTIFIED BY 'hive';
FLUSH PRIVILEGES;


hive安装配置


$ tar –zxvf  apache-hive-2.3.4-bin.tar.gz /usr/local/
$ sudo mv apache-hive-2.3.4-bin.tar.gz hive


环境变量的配置


$ vim ~/.bashrc                                                 #给hive配置环境变量


在.bashrc文件添加如下指令:


export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin


在文件修改完毕以后,输入代码:


$ source ~/.bashrc                        #使新配置的环境变量生效


修改hive/conf下的几个模板


cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml


更改hive-env.sh文件,指定hadoop的安装路径


HADOOP_HOME=/usr/local/hadoop


更改hive-site.xml文件,指定数据库的相关信息


<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hive</value>
  <description>username to use against metastore database</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hive</value>
  <description>password to use against metastore database</description>
</property>


更改hive/bin下的hive-config.sh文件


export JAVA_HOME=/usr/java/jdk1.8.0_201
export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive


mysql-connector-java 配置

解压mysql-connector-java-5.1.47.tar.gz


tar -zxvf mysql-connector-java-5.1.47.tar.gz /usr/local


将文件中mysql-connector-java-5.1.47.jar 包copy到hive/lib目录下

初始化hive数据库


schematool -dbType mysql -initSchema